feat: 重构知识库系统,移除Hermes集成,增强RAG和同步功能
主要变更: - 移除Hermes智能体及相关回调服务 - 新增知识库RAG、同步、调度、规范化和索引任务服务 - 重构orchestrator服务,增强运行时聊天功能 - 更新前端聊天、政策制度、设置等页面样式和逻辑 - 更新expense_claims和document_intelligence服务 - 删除llm_wiki相关服务和测试文件 - 更新docker-compose配置和启动脚本
This commit is contained in:
@@ -10,8 +10,9 @@ import yaml
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import Session, sessionmaker
|
||||
|
||||
from app.core import admin_secret
|
||||
from app.core import secret_box
|
||||
from app.core import admin_secret
|
||||
from app.core import secret_box
|
||||
from app.core.secret_box import encrypt_secret
|
||||
from app.db.base import Base
|
||||
from app.models.system_model_setting import SystemModelSetting
|
||||
from app.models.system_setting import SystemSetting
|
||||
@@ -245,3 +246,55 @@ def test_blank_secret_input_keeps_synced_hermes_api_key(monkeypatch) -> None:
|
||||
hermes_config = yaml.safe_load(get_hermes_config_path().read_text(encoding="utf-8"))
|
||||
assert hermes_config["model"]["default"] == "gpt-5.4-mini"
|
||||
assert hermes_config["model"]["api_key"] == "persisted-main-key"
|
||||
|
||||
|
||||
def test_settings_service_migrates_legacy_vlm_slot_to_reranker(monkeypatch) -> None:
|
||||
temp_dir = build_temp_secret_dir()
|
||||
monkeypatch.setattr(secret_box, "SECRET_KEY_FILE", temp_dir / "settings.key")
|
||||
monkeypatch.setattr(Base.metadata, "create_all", lambda *args, **kwargs: None)
|
||||
monkeypatch.setenv("HERMES_HOME", str(temp_dir / ".hermes"))
|
||||
|
||||
with build_session(temp_dir / "settings.db") as db:
|
||||
service = SettingsService(db)
|
||||
service.get_settings_snapshot()
|
||||
|
||||
settings_row = db.get(SystemSetting, "default")
|
||||
secrets_row = db.get(SystemSettingSecret, "default")
|
||||
reranker_row = db.get(SystemModelSetting, "reranker")
|
||||
|
||||
assert settings_row is not None
|
||||
assert secrets_row is not None
|
||||
assert reranker_row is not None
|
||||
|
||||
db.delete(reranker_row)
|
||||
settings_row.reranker_provider = ""
|
||||
settings_row.reranker_model = ""
|
||||
settings_row.reranker_endpoint = ""
|
||||
settings_row.vlm_provider = "Gemini"
|
||||
settings_row.vlm_model = "legacy-reranker"
|
||||
settings_row.vlm_endpoint = "https://legacy.example.com/v1"
|
||||
secrets_row.reranker_api_key_encrypted = ""
|
||||
secrets_row.vlm_api_key_encrypted = encrypt_secret("legacy-reranker-key")
|
||||
db.add(
|
||||
SystemModelSetting(
|
||||
slot="vlm",
|
||||
provider="Gemini",
|
||||
model_name="legacy-reranker",
|
||||
endpoint="https://legacy.example.com/v1",
|
||||
capability="chat",
|
||||
priority=30,
|
||||
enabled=True,
|
||||
api_key_encrypted=encrypt_secret("legacy-reranker-key"),
|
||||
)
|
||||
)
|
||||
db.commit()
|
||||
|
||||
snapshot = service.get_settings_snapshot()
|
||||
|
||||
assert snapshot.llmForm.rerankerProvider == "Gemini"
|
||||
assert snapshot.llmForm.rerankerModel == "legacy-reranker"
|
||||
assert snapshot.llmForm.rerankerEndpoint == "https://legacy.example.com/v1"
|
||||
assert snapshot.llmForm.rerankerApiKeyConfigured is True
|
||||
assert db.get(SystemModelSetting, "vlm") is None
|
||||
assert db.get(SystemModelSetting, "reranker") is not None
|
||||
assert service.load_saved_model_api_key("reranker") == "legacy-reranker-key"
|
||||
|
||||
Reference in New Issue
Block a user