//! df-ai: AI 编排 — LLM Provider、模型路由、Agent 协调、上下文管理、流式处理、工具注册 pub mod ai_tools; pub mod anthropic_compat; pub mod context; pub mod coordinator; pub mod openai_compat; pub mod provider; pub mod router; pub mod stream; use provider::LlmProvider; /// 按 provider_type 构建 LLM Provider 实例(统一选择逻辑,消除调用方重复 match) /// /// `anthropic` 协议走 AnthropicCompatProvider(GLM 订阅端点 / Claude 官方), /// 其余(openai / glm / deepseek 等 OpenAI 兼容)走 OpenAICompatProvider。 /// 调用方(AI Chat 的 run_agentic_loop、df-nodes 的 AiNode)统一引用此工厂, /// 新增 provider 只改这一处。 pub fn build_provider( provider_type: &str, base_url: &str, api_key: &str, model: &str, ) -> Box { match provider_type { "anthropic" => Box::new(anthropic_compat::AnthropicCompatProvider::new( base_url, api_key, model, )), _ => Box::new(openai_compat::OpenAICompatProvider::new( base_url, api_key, model, )), } }