Skip to main content

foundry_local_sdk/
lib.rs

1//! Foundry Local Rust SDK
2//!
3//! Local AI model inference powered by the Foundry Local Core engine.
4
5mod catalog;
6mod configuration;
7mod error;
8mod foundry_local_manager;
9mod item;
10mod item_queue;
11mod request;
12mod response;
13mod session;
14mod types;
15
16pub(crate) mod detail;
17pub mod openai;
18
19pub use self::catalog::Catalog;
20pub use self::configuration::{FoundryLocalConfig, LogLevel, Logger};
21pub use self::detail::model::{DownloadBuilder, Model};
22pub use self::error::{FoundryLocalError, NativeErrorCode};
23pub use self::foundry_local_manager::{EpDownloadBuilder, FoundryLocalManager};
24pub use self::item::{
25    Audio, Image, Item, ItemType, MediaSource, Message, MessageRole, SpeechResult, SpeechSegment,
26    SpeechSegmentKind, SpeechWord, Tensor, TensorDataType, TextKind, ToolCall, ToolResult,
27};
28pub use self::item_queue::ItemQueue;
29pub use self::request::{Request, RequestOptions, SearchOptions, ToolChoice};
30pub use self::response::{FinishReason, Response, Usage};
31pub use self::session::{
32    AudioSession, ChatSession, EmbeddingsSession, ItemStream, Session, ToolDefinition,
33};
34pub use self::types::{
35    ChatResponseFormat, ChatToolChoice, DeviceType, EpDownloadResult, EpInfo, ModelInfo,
36    ModelSettings, Parameter, PromptTemplate, Runtime,
37};
38
39// Re-export OpenAI request types so callers can construct typed messages.
40pub use async_openai::types::chat::{
41    ChatCompletionNamedToolChoice, ChatCompletionRequestAssistantMessage,
42    ChatCompletionRequestMessage, ChatCompletionRequestSystemMessage,
43    ChatCompletionRequestToolMessage, ChatCompletionRequestUserMessage,
44    ChatCompletionToolChoiceOption, ChatCompletionTools, FunctionObject,
45};
46
47// Re-export OpenAI response types for convenience.
48#[allow(deprecated)] // re-export includes the deprecated `LiveAudioTranscriptionSession`
49pub use crate::openai::{
50    AudioTranscriptionResponse, AudioTranscriptionStream, ChatCompletionStream, ContentPart,
51    CoreErrorResponse, LiveAudioTranscriptionOptions, LiveAudioTranscriptionResponse,
52    LiveAudioTranscriptionSession, LiveAudioTranscriptionStream, TranscriptionSegment,
53    TranscriptionWord,
54};
55// Re-export OpenAI response types for convenience. The OpenAI `FinishReason` is
56// re-exported as `ChatFinishReason` to avoid colliding with the core inference
57// [`FinishReason`]; it remains available as `async_openai::types::chat::FinishReason`.
58pub use async_openai::types::chat::{
59    ChatChoice, ChatChoiceStream, ChatCompletionMessageToolCall,
60    ChatCompletionMessageToolCallChunk, ChatCompletionMessageToolCalls,
61    ChatCompletionResponseMessage, ChatCompletionStreamResponseDelta, CompletionUsage,
62    CreateChatCompletionResponse, CreateChatCompletionStreamResponse,
63    FinishReason as ChatFinishReason, FunctionCall, FunctionCallStream,
64};