修复: 知识工具检索接分词与晋升补嵌入
knowledge_search 整句 LIKE 改分词检索,自然语言查询可命中 晋升(手动/复用达标)后补 spawn 嵌入,进入向量检索面 本地截断改调 audit truncate_chars 配置加载下沉 load_knowledge_config 供工具路径共用
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use df_storage::crud::SettingsRepo;
|
||||
use df_storage::db::Database;
|
||||
|
||||
// ============================================================
|
||||
// 知识库配置(提取 + 注入)
|
||||
// ============================================================
|
||||
@@ -80,6 +85,24 @@ fn default_auto_publish_reuse_threshold() -> i64 {
|
||||
5
|
||||
}
|
||||
|
||||
/// 从 Settings KV 加载知识库配置,缺 KV/读失败/反序列化失败一律回退 default(不阻断调用方)。
|
||||
///
|
||||
/// AppState::reload_knowledge_config(启动恢复)与只持 db 的调用方(AI 工具 handler 无
|
||||
/// AppState 上下文)共用,保证两条路径同一真相源、同一降级语义。
|
||||
pub async fn load_knowledge_config(db: &Arc<Database>) -> KnowledgeConfig {
|
||||
match SettingsRepo::new(db).get(KNOWLEDGE_CONFIG_KEY).await {
|
||||
Ok(Some(json)) => serde_json::from_str::<KnowledgeConfig>(&json).unwrap_or_else(|e| {
|
||||
tracing::warn!("[KNOWLEDGE-CONFIG] KV 反序列化失败,保持 default: {}", e);
|
||||
KnowledgeConfig::default()
|
||||
}),
|
||||
Ok(None) => KnowledgeConfig::default(),
|
||||
Err(e) => {
|
||||
tracing::warn!("[KNOWLEDGE-CONFIG] 读 KV 失败,保持 default: {}", e);
|
||||
KnowledgeConfig::default()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for KnowledgeConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
|
||||
Reference in New Issue
Block a user