mod anthropic#
- module anthropic#
Built-in codec for the Anthropic Messages API.
Implements
LlmCodec(request decode/encode) andLlmResponseCodec(response decode) for the Anthropic Messages API format.Anthropic-specific patterns handled
Content blocks: Heterogeneous array of
text,tool_use,thinking,redacted_thinking,mcp_tool_use,server_tool_useblocksTop-level system: System prompt is a top-level field, not inside messages
stop_reason: Maps to
FinishReason(notfinish_reason)Tool definitions: Uses
input_schemainstead ofparametersTool choice:
{"type":"auto"}/{"type":"any"}/{"type":"tool","name":"..."}Cache tokens:
cache_read_input_tokens/cache_creation_input_tokens
Structs and Unions
- struct AnthropicMessagesCodec#
Built-in codec for the Anthropic Messages API.
Traits implemented
- impl LlmResponseCodec for AnthropicMessagesCodec#
- impl LlmCodec for AnthropicMessagesCodec#
- struct AnthropicMessagesStreamingCodec#
Streaming counterpart to
AnthropicMessagesCodec.Replays the Anthropic Messages SSE event sequence into the same JSON shape Anthropic returns for a non-streaming request (
{id, type, role, model, content, stop_reason, stop_sequence, usage}). Once finalized, the assembled JSON can be fed back throughAnthropicMessagesCodec::decode_responseto produce anAnnotatedLlmResponse— meaning streaming and non-streaming Anthropic requests converge on the same observability output.Internal state lives behind
Arc<Mutex<...>>so the&self-produced collector and finalizer closures share access. Each instance is single-use becauseLlmFinalizerFnconsumes the finalize step.Implementations
- impl AnthropicMessagesStreamingCodec#
Functions
- fn new() -> Self#
Creates a fresh streaming codec with empty accumulator state.
Traits implemented
- impl Default for AnthropicMessagesStreamingCodec#
- impl super::streaming::StreamingCodec for AnthropicMessagesStreamingCodec#