Skip to main content

Crate serdes_ai_core

Crate serdes_ai_core 

Source
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 instrumentation
  • otel: Enable OpenTelemetry integration
  • full: 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;

Modules§

errors
Error types for serdes-ai.
format
Format data as XML for LLM prompts.
identifier
ID generation utilities.
messages
Message types for model interactions.
prelude
Prelude module for common imports.
settings
Model settings and configuration.
usage
Token usage tracking for model requests.