Installation¶
Install with your provider¶
Smelt uses LangChain under the hood, so you need the provider-specific LangChain package. Install smelt with the extra for your provider:
Set your API key:
Or pass it directly:
Set your API key:
Or pass it directly:
Multiple providers¶
Install multiple extras at once:
Using uv¶
If you use uv as your package manager:
Requirements¶
- Python 3.10 or higher
pydantic >= 2.0langchain >= 0.3langchain-core >= 0.3
Verify installation¶
Test that your provider is configured correctly:
from pydantic import BaseModel
from smelt import Model, Job
class TestOutput(BaseModel):
message: str
model = Model(provider="openai", name="gpt-4.1-mini")
job = Job(prompt="Return a greeting message", output_model=TestOutput)
result = job.test(model, data=[{"input": "hello"}])
print(result.data[0]) # TestOutput(message='Hello! How can I help you today?')
Supported models¶
Any model supported by LangChain's init_chat_model works with smelt. Tested with:
| Provider | provider value |
Example models | Install extra |
|---|---|---|---|
| OpenAI | "openai" |
gpt-5.2, gpt-4.1-mini, gpt-4.1, gpt-4o, o4-mini |
[openai] |
| Anthropic | "anthropic" |
claude-sonnet-4-6, claude-opus-4-6, claude-haiku-4-5-20251001 |
[anthropic] |
| Google Gemini | "google_genai" |
gemini-3-flash-preview, gemini-3-pro-preview, gemini-2.5-flash |
[google] |
Using other providers
Any LangChain chat model provider works — just install the corresponding langchain-* package manually. For example, for Azure OpenAI:
API key precedence¶
Smelt resolves API keys in this order:
- Explicit
api_keyparameter —Model(api_key="sk-...") - Environment variable — provider-specific (e.g.
OPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_API_KEY) - LangChain config — any provider-level configuration LangChain supports
Warning
Never hardcode API keys in source code. Use environment variables or a secrets manager (e.g. .env files with python-dotenv).