Skip to main content

Crate pi_ai

Crate pi_ai 

Source
Expand description

pi-ai — Unified multi-provider LLM API.

Rust port of the TypeScript package @earendil-works/pi-ai. The original project supports many providers; this port focuses on the two most common agent backends: Anthropic Messages and OpenAI Chat Completions. Both share the same Message/Tool/AssistantMessageEvent types so the agent loop is provider-agnostic.

Re-exports§

pub use error::Error;
pub use error::Result;
pub use providers::anthropic::AnthropicProvider;
pub use providers::google::GoogleProvider;
pub use providers::openai::OpenAiProvider;
pub use providers::Provider;
pub use stream::AssistantMessageEventStream;
pub use types::now_ms;
pub use types::AssistantMessage;
pub use types::AssistantMessageEvent;
pub use types::Content;
pub use types::Context;
pub use types::Message;
pub use types::Model;
pub use types::StopReason;
pub use types::StreamOptions;
pub use types::ThinkingLevel;
pub use types::Tool;
pub use types::ToolResultMessage;
pub use types::Usage;

Modules§

error
providers
retry
Shared retry helper used by HTTP-backed providers.
stream
types

Functions§

stream_simple
Entry point that mirrors streamSimple() in pi-ai TS: pick the provider implementation from model.api and return a stream of message events.