Skip to main content

Crate open_ai_rust

Crate open_ai_rust 

Source
Expand description

Comprehensive, idiomatic Rust SDK for the OpenAI API.

§Quick start

use open_ai_rust::{ChatMessage, Client, OpenAiModel, PayLoadBuilder};

let client = Client::from_env()?;            // reads OPENAI_API_KEY
let payload = PayLoadBuilder::new(OpenAiModel::GPT4oMini)
    .messages(vec![
        ChatMessage::system("You are helpful."),
        ChatMessage::user("Say hi."),
    ])
    .temperature(0.2)
    .build();

let resp = client.chat().create(payload).await?;
println!("{}", resp.get_last_msg_text().unwrap_or_default());

§Resources

The Client type exposes every OpenAI endpoint via short accessors:

§Features

  • rustls-tls (default) — TLS via rustls
  • native-tls — TLS via system OpenSSL
  • stream (default) — streaming helpers
  • tool_registrylinkme-backed dispatch slice for the #[tool] macro
  • tracingdebug!/warn! on every HTTP request + retry, spans on each call
  • utoipa — derive ToSchema on enums

Azure is supported without any feature flag — use Client::azure.

§Migration

See MIGRATION.md for 0.2 → 1.0 codemods.

Re-exports§

pub use client::ApiKind;
pub use client::Client;
pub use client::ClientBuilder;
pub use client::DEFAULT_BASE_URL;
pub use error::OpenAiError;
pub use error::Result;
pub use request_options::RequestOptions;
pub use logoi::input::payload::builder::PayLoadBuilder;
pub use logoi::input::payload::templates::PayLoadTemplates;
pub use logoi::input::payload::templates::QuickChatTemplate;
pub use logoi::input::payload::templates::QuickFunctionCallTemplate;
pub use logoi::input::payload::ChatPayLoad;
pub use logoi::input::payload::ChatToolChoice;
pub use logoi::input::payload::ChatToolChoiceFunction;
pub use logoi::input::payload::ChatToolChoiceType;
pub use logoi::input::payload::JsonSchemaSpec;
pub use logoi::input::payload::ReasoningEffort;
pub use logoi::input::payload::ResponseFormat;
pub use logoi::input::payload::StreamOptions;
pub use logoi::input::tool::raw_macro::fn_macro::FunctionCallRaw;
pub use logoi::input::tool::raw_macro::fn_macro::FunctionParamRaw;
pub use logoi::input::tool::raw_macro::FunctionCallable;
pub use logoi::input::tool::EnumValues;
pub use logoi::input::tool::FunctionCall;
pub use logoi::input::tool::FunctionParameter;
pub use logoi::input::tool::FunctionType;
pub use logoi::input::tool::FunctionVariant;
pub use logoi::input::tool::ToolChoice;
pub use logoi::input::tool::ToolType;
pub use logoi::message::ChatContent;
pub use logoi::message::ChatMessage;
pub use logoi::message::ChatMessageRole;
pub use logoi::message::ContentPart;
pub use logoi::message::FileRefSpec;
pub use logoi::message::ImageUrlSpec;
pub use logoi::message::InputAudioSpec;
pub use logoi::message::ToolCall;
pub use logoi::message::ToolCallFunction;
pub use logoi::message::ToolCallType as MessageToolCallType;
pub use logoi::models::OpenAiModel;
pub use logoi::output::AiMsgResponse;
pub use logoi::output::AiResponseMessage;
pub use logoi::output::AssistantDelta;
pub use logoi::output::ChatCompletionChunk;
pub use logoi::output::Choice;
pub use logoi::output::ChunkChoice;
pub use logoi::output::CompletionTokensDetails;
pub use logoi::output::FunctionCallRes;
pub use logoi::output::FunctionDelta;
pub use logoi::output::PromptTokensDetails;
pub use logoi::output::ToolCallDelta;
pub use logoi::output::ToolCallRes;
pub use logoi::output::Usage;
pub use resources::chat_stream_ext::collect_chat_stream;
pub use resources::chat_stream_ext::CollectedChatStream;
pub use resources::chat_stream_ext::CollectedToolCall;

Modules§

client
error
Error type returned by every fallible call in the crate.
logoi
request_options
Per-request overrides applied on top of Client defaults.
resources
responses
Responses API — OpenAI’s stateful agentic flagship endpoint (/v1/responses).