pi-ai
Unified multi-provider LLM API. Part of the pi
agent runtime — a Rust port of
@earendil-works/pi-ai.
Providers
| API string | Implemented by | Endpoints |
|---|---|---|
anthropic-messages |
AnthropicProvider |
Anthropic Messages SSE |
openai-completions |
OpenAiProvider |
OpenAI Chat Completions + any OpenAI-compatible base URL (OpenRouter, Together, Groq, Cerebras, DeepSeek, Fireworks, xAI, etc.) |
google-generative-ai |
GoogleProvider |
Gemini streamGenerateContent?alt=sse |
All three stream via SSE, emit per-block text_delta / thinking_delta /
toolcall_delta events, share a retry helper with Retry-After parsing,
and honor a CancellationToken for mid-stream abort.
Quick start
use ;
use StreamExt;
# block_on;
ANTHROPIC_API_KEY (or OPENAI_API_KEY / GOOGLE_API_KEY /
GEMINI_API_KEY) is read from the environment unless
StreamOptions::api_key is set.
OpenAI-compatible passthrough
use Model;
let m = openai_compat;
Set OPENAI_API_KEY to the provider's key, or pass api_key directly.
License
MIT