basetenlabs / truss

The simplest way to serve AI/ML models in production
https://truss.baseten.co
MIT License
857 stars 61 forks source link

Fix statuses in truss chains deploy #1003

Closed squidarth closed 3 weeks ago

squidarth commented 3 weeks ago

:rocket: What

Fix two issues here:

  1. Added retries to get_info to prevent issue where we 502 and then exit
  2. Issue where entrypoint assumed that it was the first chainlet listed

    :computer: How

:microscope: Testing

Deployed locally, made sure it works:

 $ poetry run truss chains deploy hello.py 
Using chain workspace dir: `/workspaces/truss/truss-chains/examples/helloworld` (files under this dir will be included as dependencies in the remote deployments and are importable).
Generating truss chainlet model for `RandInt`.
Truss not found in pip requirements, auto-adding: `truss==0.9.17rc3`.
Deploying chainlet `HelloWorld2.RandInt` as a truss model on Baseten (publish=False, promote=False).
Compressing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Uploading... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Service created for `RandInt` @ https://model-8w64d5q4.api.staging.baseten.co/development/predict.
Generating truss chainlet model for `HelloWorld2`.
Truss not found in pip requirements, auto-adding: `truss==0.9.17rc3`.
Deploying chainlet `HelloWorld2.HelloWorld2` as a truss model on Baseten (publish=False, promote=False).
Compressing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Uploading... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Service created for `HelloWorld2` @ https://model-4w5o8pq2.api.staging.baseten.co/development/predict.

                                              ⛓️   HelloWorld2 - Chainlets  ⛓️                                               
╭──────────────────────┬──────────────────────────┬───────────────────────────────────────────────────────────────────────╮
│ Status               │ Name                     │ Logs URL                                                              │
├──────────────────────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ 💚  ACTIVE           │ HelloWorld2 (entrypoint) │ https://app.staging.baseten.co/chains/j8w62345/logs/j8w672q4/62qj7lqd │
├──────────────────────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ 💚  ACTIVE           │ RandInt (dep)            │ https://app.staging.baseten.co/chains/j8w62345/logs/j8w672q4/1lqzrp34 │
╰──────────────────────┴──────────────────────────┴───────────────────────────────────────────────────────────────────────╯
Deployment succeeded.
You can run the chain with:
curl -X POST 'https://model-4w5o8pq2.api.staging.baseten.co/development/predict' \
    -H "Authorization: Api-Key $BASETEN_API_KEY" \
    -d '<JSON_INPUT>'