LlamaIndex Llms Integration: Baseten
This integration allows you to use Baseten's hosted models with LlamaIndex.
Installation
Install the required packages:
pip install llama-index-llms-baseten
pip install llama-index
Model APIs vs. Dedicated Deployments
Baseten offers two main ways for inference.
-
Model APIs are public endpoints for popular open source models (GPT-OSS, Kimi K2, DeepSeek etc) where you can directly use a frontier model via slug e.g.
deepseek-ai/DeepSeek-V3-0324and you will be charged on a per-token basis. You can find the list of supported models here: https://docs.baseten.co/development/model-apis/overview#supported-models. -
Dedicated deployments are useful for serving custom models where you want to autoscale production workloads and have fine-grain configuration. You need to deploy a model in your Baseten dashboard and provide the 8 character model id like
abcd1234.
By default, we set the model_apis parameter to True. If you want to use a dedicated deployment, you must set the model_apis parameter to False when instantiating the Baseten object.
Usage
Basic Usage
To use Baseten models with LlamaIndex, first initialize the LLM:
# Model APIs, you can find the model_slug here: https://docs.baseten.co/development/model-apis/overview#supported-models
llm = Baseten(
model_id="MODEL_SLUG",
api_key="YOUR_API_KEY",
model_apis=True, # Default, so not strictly necessary
)
# Dedicated Deployments, you can find the model_id by in the Baseten dashboard here: https://app.baseten.co/overview
llm = Baseten(
model_id="MODEL_ID",
api_key="YOUR_API_KEY",
model_apis=False,
)
Basic Completion
Generate a simple completion:
response = llm.complete("Paul Graham is")
print(response.text)
Chat Messages
Use chat-style interactions:
from llama_index.core.llms import ChatMessage
messages = [
ChatMessage(
role="system", content="You are a pirate with a colorful personality"
),
ChatMessage(role="user", content="What is your name"),
]
response = llm.chat(messages)
print(response)
Streaming
Stream completions in real-time:
# Streaming completion
response = llm.stream_complete("Paul Graham is")
for r in response:
print(r.delta, end="")
# Streaming chat
messages = [
ChatMessage(
role="system", content="You are a pirate with a colorful personality"
),
ChatMessage(role="user", content="What is your name"),
]
response = llm.stream_chat(messages)
for r in response:
print(r.delta, end="")
Async Operations
Baseten supports async operations for long-running inference tasks. This is useful for:
- Tasks that may hit request timeouts
- Batch inference jobs
- Prioritizing certain requests
The async implementation uses webhooks to deliver results.
Note: Async is only available for dedicated deployments and not for model APIs. achat is not supported because chat does not make sense for async operations.
async_llm = Baseten(
model_id="your_model_id",
api_key="your_api_key",
webhook_endpoint="your_webhook_endpoint",
)
response = await async_llm.acomplete("Paul Graham is")
print(response)
To check the status of an async request:
import requests
model_id = "your_model_id"
request_id = "your_request_id"
api_key = "your_api_key"
resp = requests.get(
f"https://model-{model_id}.api.baseten.co/async_request/{request_id}",
headers={"Authorization": f"Api-Key {api_key}"},
)
print(resp.json())
For async operations, results are posted to your provided webhook endpoint. Your endpoint should validate the webhook signature and handle the results appropriately. The results are NOT stored by Baseten.
Additional Resources
For more examples and detailed usage, check out the Baseten Cookbook.
Metadata
Release files for llama-index-llms-baseten 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| llama_index_llms_baseten-0.3.0.tar.gz | 8.3 kB | Without provenance | Details for llama_index_llms_baseten-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| llama_index_llms_baseten-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for llama_index_llms_baseten-0.3.0-py3-none-any.whl |
Total release size: 17.0 kB
Release files / llama_index_llms_baseten-0.3.0.tar.gz
| Download URL | llama_index_llms_baseten-0.3.0.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
082495541dcc2cc7722fee4048e5fd9ef3db0b7592e41c18ac15a54997cb2493
|
|
BLAKE2b-256 checksum How to use checksums |
16320dd8ed870e4522b1a19179eb37ad3f1570b665089db09413cad10e6fb408
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / llama_index_llms_baseten-0.3.0-py3-none-any.whl
| Download URL | llama_index_llms_baseten-0.3.0-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f447244da2eec85c85587350f5d7e7440b8da962b1436e7d7617b6f17e035c55
|
|
BLAKE2b-256 checksum How to use checksums |
095b46e3e9dd947799c5a001de8aef20f2df79b4a45572ab4fdee623c509fe48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for llama-index-llms-baseten 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.