crabmate 0.5.0

Rust AI agent: OpenAI-compatible chat/completions, function calling, HTTP serve, ops CLI
Documentation
//! 可插拔的 **chat/completions** 调用后端 trait。
//!
//! 默认 OpenAI 兼容 HTTP 实现由根包 **`crabmate::llm`** 提供([`OpenAiCompatBackend`])。

use async_trait::async_trait;

use crate::cm_types::{ChatRequest, Message};

use super::chat_params::StreamChatParams;

/// 单次 chat/completions 调用(流式 SSE 或 `stream: false` JSON),返回 assistant [`Message`] 与 `finish_reason` 字符串。
#[async_trait]
pub trait ChatCompletionsBackend: Send + Sync {
    async fn stream_chat(
        &self,
        params: &StreamChatParams<'_>,
        req: &mut ChatRequest,
    ) -> Result<(Message, String), Box<dyn std::error::Error + Send + Sync>>;
}