Expand description
§serdes-ai-core
Core types, messages, and error handling for the serdes-ai framework.
This crate provides the foundational types used throughout the serdes-ai ecosystem:
- Messages: Request/response message types for LLM interactions
- Errors: Comprehensive error types with context
- Usage: Token usage tracking and limits
- Settings: Model configuration options
- Identifiers: Type-safe IDs for conversations, messages, runs
§Feature Flags
tracing-integration: Enable tracing instrumentationotel: Enable OpenTelemetry integrationfull: Enable all optional features
§Example
use serdes_ai_core::{
messages::{ModelRequest, ModelResponse, UserContent},
usage::{RequestUsage, RunUsage, UsageLimits},
settings::ModelSettings,
identifier::{generate_run_id, now_utc},
};
// Build a request
let mut request = ModelRequest::new();
request.add_system_prompt("You are a helpful assistant.");
request.add_user_prompt("Hello!");
// Configure settings
let settings = ModelSettings::new()
.max_tokens(1000)
.temperature(0.7);
// Track usage
let mut usage = RunUsage::new();
usage.add_request(RequestUsage::with_tokens(100, 50));
// Check limits
let limits = UsageLimits::new().max_total_tokens(10000);
limits.check(&usage).expect("Within limits");Re-exports§
pub use errors::Result;pub use errors::SerdesAiError;pub use format::format_as_xml;pub use format::format_as_xml_with_options;pub use format::XmlFormatError;pub use format::XmlFormatOptions;pub use identifier::now_utc;pub use identifier::ConversationId;pub use identifier::RunId;pub use identifier::ToolCallId;pub use messages::BinaryContent;pub use messages::BuiltinToolCallPart;pub use messages::BuiltinToolReturnContent;pub use messages::BuiltinToolReturnPart;pub use messages::CodeExecutionResult;pub use messages::FilePart;pub use messages::FileSearchResult;pub use messages::FileSearchResults;pub use messages::FinishReason;pub use messages::ModelRequest;pub use messages::ModelRequestPart;pub use messages::ModelResponse;pub use messages::ModelResponsePart;pub use messages::ModelResponsePartDelta;pub use messages::ModelResponseStreamEvent;pub use messages::PartDeltaEvent;pub use messages::PartEndEvent;pub use messages::PartStartEvent;pub use messages::SystemPromptPart;pub use messages::TextPart;pub use messages::ThinkingPart;pub use messages::ToolCallPart;pub use messages::ToolReturnPart;pub use messages::UserContent;pub use messages::UserContentPart;pub use messages::UserPromptPart;pub use messages::WebSearchResult;pub use messages::WebSearchResults;pub use settings::ModelSettings;pub use usage::RequestUsage;pub use usage::RunUsage;pub use usage::UsageLimits;