1#![forbid(unsafe_code)]
30#![deny(missing_docs)]
31
32mod alias;
33mod builder;
34mod tool_loop;
35
36pub use alias::ModelAliases;
37pub use builder::{LlmClient, LlmClientBuilder};
38pub use tool_loop::ChatBuilder;
39
40pub use llmkit_core::{
42 pricing, ChatRequest, ChatRequestBuilder, ChatResponse, ChatStream, ContentPart, CostEstimate,
43 EmbedRequest, EmbedResponse, FinishReason, LlmError, LlmProvider, LlmResult, Message,
44 MessageContent, ModelPricing, Role, StreamDelta, TokenUsage, Tool, ToolCall, ToolChoice,
45 ToolResult, ToolSchema,
46};
47
48pub use llmkit_macros::ToolSchema;
50
51pub use llmkit_tower::{
53 CostTracking, CostTrackingLayer, FallbackProvider, LlmLayer, RateLimit, RateLimitLayer, Retry,
54 RetryLayer, SessionCost, Tracing, TracingLayer,
55};
56
57#[cfg(feature = "openai")]
59pub use llmkit_openai::OpenAiProvider;
60
61#[cfg(feature = "anthropic")]
62pub use llmkit_anthropic::AnthropicProvider;
63
64#[cfg(feature = "ollama")]
65pub use llmkit_ollama::OllamaProvider;
66
67pub mod prelude {
69 pub use crate::{
70 ChatRequest, ChatResponse, CostTrackingLayer, LlmClient, LlmClientBuilder, LlmError,
71 LlmProvider, LlmResult, Message, RateLimitLayer, RetryLayer, StreamDelta, Tool, ToolSchema,
72 TracingLayer,
73 };
74
75 #[cfg(feature = "openai")]
76 pub use crate::OpenAiProvider;
77 #[cfg(feature = "anthropic")]
78 pub use crate::AnthropicProvider;
79 #[cfg(feature = "ollama")]
80 pub use crate::OllamaProvider;
81}