修复: 知识工具检索接分词与晋升补嵌入

knowledge_search 整句 LIKE 改分词检索,自然语言查询可命中
晋升(手动/复用达标)后补 spawn 嵌入,进入向量检索面
本地截断改调 audit truncate_chars
配置加载下沉 load_knowledge_config 供工具路径共用
This commit is contained in:
lxy
2026-10-01 08:27:48 +08:00
parent cfccba863c
commit 7c62d8dbe7
4 changed files with 76 additions and 36 deletions
+5 -10
View File
@@ -23,6 +23,7 @@ pub use allowed_dirs::{
};
pub use knowledge_config::{
ExtractTrigger, KnowledgeConfig, KNOWLEDGE_CONFIG_KEY, APPROVAL_TIMEOUT_KEY,
load_knowledge_config,
};
pub use llm_concurrency::{LlmConcurrency, ProviderAcquire};
@@ -379,17 +380,11 @@ impl AppState {
///
/// 原纯内存 knowledge_config 启动 default() 覆盖致用户配置重启全丢;save_config 落
/// KNOWLEDGE_CONFIG_KEY KV,本方法启动恢复。失败(读 KV/反序列化)不阻断启动,保持 default。
/// 加载与降级逻辑下沉 [`load_knowledge_config`](knowledge_config::load_knowledge_config),
/// 与只持 db 的 AI 工具路径共用。
pub async fn reload_knowledge_config(&self) {
match self.settings.get(KNOWLEDGE_CONFIG_KEY).await {
Ok(Some(json)) => match serde_json::from_str::<KnowledgeConfig>(&json) {
Ok(cfg) => *self.knowledge_config.lock().await = cfg,
Err(e) => tracing::warn!(
"[KNOWLEDGE-CONFIG] KV 反序列化失败,保持 default: {}", e
),
},
Ok(None) => {} // 首次启动无持久化,保持 default
Err(e) => tracing::warn!("[KNOWLEDGE-CONFIG] 读 KV 失败,保持 default: {}", e),
}
let cfg = knowledge_config::load_knowledge_config(&self.db).await;
*self.knowledge_config.lock().await = cfg;
}
/// 从 Settings KV 恢复审批超时分钟数(默认 15 分钟,0=禁用)。