重构:删 5 零引用 crate(df-evolve/plugin/stages/task/traceability)+ 清死模块、ai.rs 拆 11 子 module、ai.ts 拆 6 composable、i18n 拆目录 功能:知识库全栈(df-project/scan + CRUD + 时间线 + 前端)、Settings 拆分、appSettings KV 迁移、模型池、LLM 并发 Semaphore 修复:审批持久化根治、ConditionEngine 默认拒绝、NodeRegistry unimplemented 清除、promote 补偿删除、工具结果截断 50KB、路径校验防 symlink 逃逸 文档:B-03 人工审批设计、决策记录三分档、规格契约自检、经验记录、todo 看板、PROGRESS 更新 详见 PROGRESS.md。src-tauri/儿童每日打卡应用/ 与本项目无关,已排除。
35 lines
1.1 KiB
Rust
35 lines
1.1 KiB
Rust
//! 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<dyn LlmProvider> {
|
||
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,
|
||
)),
|
||
}
|
||
}
|