Crate aidale

Crate aidale 

Source
Expand description

§Aidale

Elegant Rust AI SDK inspired by OpenDAL’s architecture.

Aidale provides a unified, composable interface for interacting with multiple AI providers (OpenAI, Anthropic, etc.) with support for middleware layers and extensible plugins.

§Features

  • Zero-cost abstractions: Static dispatch during building, single type erasure at runtime
  • Composable layers: Stack multiple layers (logging, retry, caching, etc.)
  • Plugin system: Extend runtime behavior with hooks
  • Type safety: Leverage Rust’s type system for correctness
  • Async/await: Full async support with tokio

§Quick Start

[dependencies]
aidale = { version = "0.1", features = ["openai", "layers"] }
use aidale::{RuntimeExecutor, Message, TextParams};
use aidale::provider::OpenAiProvider;
use aidale::layer::LoggingLayer;

// Create provider
let provider = OpenAiProvider::builder()
    .api_key("your-api-key")
    .build()?;

// Build executor with layers
let executor = RuntimeExecutor::builder(provider)
    .layer(LoggingLayer::new())
    .finish();

// Generate text
let params = TextParams::new(vec![
    Message::user("What is Rust?"),
]);

let result = executor.generate_text("gpt-3.5-turbo", params).await?;
println!("{}", result.content);

§Feature Flags

  • default: Includes openai provider
  • openai: OpenAI provider support
  • providers: All available providers
  • layers: Built-in layers (logging, retry, caching, etc.)
  • plugins: Built-in plugins (tool use, etc.)
  • full: All features enabled

Modules§

error
Error types for AI Core operations.
layer
Built-in middleware layers.
plugin
Built-in runtime plugins.
prelude
Prelude module for convenient imports Prelude module containing the most commonly used types and traits.
provider
AI provider implementations.
runtime
Runtime layer for AI Core.
strategy
Strategy layer for provider-specific behaviors.
types
Core types for AI operations.

Macros§

impl_layered_provider
Macro to implement Provider trait by forwarding to LayeredProvider methods.

Structs§

ChatCompletionChunk
Chat completion streaming chunk
ChatCompletionRequest
Chat completion request
ChatCompletionResponse
Chat completion response
Choice
Single choice in chat completion response
ChoiceDelta
Delta choice in streaming response
JsonModeStrategy
JSON Mode strategy for providers that only support basic JSON object mode.
JsonSchemaStrategy
JSON Schema strategy for providers that support strict JSON Schema.
Message
Message in a conversation
MessageDelta
Message delta for streaming
ObjectParams
Object generation parameters
ObjectRequest
Object request
ObjectResponse
Object response
ObjectResult
Object generation result
PluginEngine
Plugin execution engine.
ProviderInfo
Provider information
RequestContext
Request context for plugins
RuntimeExecutor
Runtime executor with plugin support.
TextChunk
Streaming text chunk
TextParams
Text generation parameters
TextRequest
Text request with provider info
TextResponse
Response metadata from streaming
TextResult
Text generation result
Tool
Tool definition
Usage
Usage statistics

Enums§

AiError
The main error type for AI operations.
ContentPart
Message content part
FinishReason
Finish reason
PluginPhase
Plugin execution phase
ResponseFormat
Response format for chat completions
Role
Message role

Traits§

JsonOutputStrategy
Strategy for handling JSON output in chat completion requests.
Layer
Layer trait for wrapping providers.
LayeredProvider
Helper trait for layered providers.
Plugin
Plugin trait for runtime-level hooks.
Provider
Core provider trait for AI services.

Type Aliases§

Result
Result type alias for AI operations