config_config替换成memory_config
This commit is contained in:
@@ -1021,3 +1021,59 @@ async def search_chunk_by_chunk_id(
|
||||
return {"chunks": chunks}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# 测试混合检索功能
|
||||
from app.schemas.memory_config_schema import MemoryConfig
|
||||
from app.db import get_db
|
||||
from app.services.memory_config_service import MemoryConfigService
|
||||
|
||||
# 从数据库获取真实配置
|
||||
db = next(get_db())
|
||||
try:
|
||||
config_service = MemoryConfigService(db)
|
||||
|
||||
# 使用 config_id=17 获取配置
|
||||
memory_config = config_service.load_memory_config(config_id=17)
|
||||
|
||||
if not memory_config:
|
||||
print("错误:找不到 config_id=17 的配置")
|
||||
print("请先在数据库中创建配置,或修改 config_id")
|
||||
exit(1)
|
||||
|
||||
print(f"✓ 成功加载配置: {memory_config.config_name}")
|
||||
print(f" - Workspace: {memory_config.workspace_name}")
|
||||
print(f" - LLM Model: {memory_config.llm_model_name}")
|
||||
print(f" - Embedding Model: {memory_config.embedding_model_name}")
|
||||
print(f" - Storage Type: {memory_config.storage_type}")
|
||||
print()
|
||||
|
||||
# 修改这里的参数进行测试
|
||||
test_end_user_id = "021886bc-fab9-4fd5-b607-497b262e0381" # 修改为你的 end_user_id
|
||||
test_query = "小明擅长什么?" # 修改为你的查询
|
||||
|
||||
print(f"开始测试检索...")
|
||||
print(f" - Query: {test_query}")
|
||||
print(f" - End User ID: {test_end_user_id}")
|
||||
print(f" - Search Type: hybrid")
|
||||
print()
|
||||
|
||||
results = asyncio.run(run_hybrid_search(
|
||||
query_text=test_query,
|
||||
search_type="hybrid", # 可选: "keyword", "embedding", "hybrid"
|
||||
end_user_id=test_end_user_id,
|
||||
limit=10,
|
||||
include=["statements", "entities", "chunks", "summaries"],
|
||||
output_path=None,
|
||||
memory_config=memory_config,
|
||||
rerank_alpha=0.6,
|
||||
use_forgetting_rerank=False,
|
||||
use_llm_rerank=False
|
||||
))
|
||||
|
||||
except Exception as e:
|
||||
print(f"错误: {e}")
|
||||
import traceback
|
||||
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
db.close()
|
||||
@@ -569,32 +569,32 @@ class ExtractionOrchestrator:
|
||||
if dialog_data_list and hasattr(dialog_data_list[0], 'config_id'):
|
||||
config_id = dialog_data_list[0].config_id
|
||||
|
||||
# 加载DataConfig
|
||||
data_config = None
|
||||
# 加载MemoryConfig
|
||||
memory_config = None
|
||||
if config_id:
|
||||
try:
|
||||
from app.db import SessionLocal
|
||||
from app.repositories.data_config_repository import DataConfigRepository
|
||||
from app.repositories.memory_config_repository import MemoryConfigRepository
|
||||
|
||||
db = SessionLocal()
|
||||
try:
|
||||
data_config = DataConfigRepository.get_by_id(db, config_id)
|
||||
memory_config = MemoryConfigRepository.get_by_id(db, config_id)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
if data_config and not data_config.emotion_enabled:
|
||||
if memory_config and not memory_config.emotion_enabled:
|
||||
logger.info("情绪提取已在配置中禁用,跳过情绪提取")
|
||||
return [{} for _ in dialog_data_list]
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"加载DataConfig失败: {e},将跳过情绪提取")
|
||||
logger.warning(f"加载MemoryConfig失败: {e},将跳过情绪提取")
|
||||
return [{} for _ in dialog_data_list]
|
||||
else:
|
||||
logger.info("未找到config_id,跳过情绪提取")
|
||||
return [{} for _ in dialog_data_list]
|
||||
|
||||
# 如果配置未启用情绪提取,直接返回空映射
|
||||
if not data_config or not data_config.emotion_enabled:
|
||||
if not memory_config or not memory_config.emotion_enabled:
|
||||
logger.info("情绪提取未启用,跳过")
|
||||
return [{} for _ in dialog_data_list]
|
||||
|
||||
@@ -608,7 +608,7 @@ class ExtractionOrchestrator:
|
||||
total_statements += 1
|
||||
# 只处理用户的陈述句 (role 为 "user")
|
||||
if hasattr(statement, 'speaker') and statement.speaker == "user":
|
||||
all_statements.append((statement, data_config))
|
||||
all_statements.append((statement, memory_config))
|
||||
statement_metadata.append((d_idx, statement.id))
|
||||
filtered_statements += 1
|
||||
|
||||
@@ -617,7 +617,7 @@ class ExtractionOrchestrator:
|
||||
# 初始化情绪提取服务
|
||||
from app.services.emotion_extraction_service import EmotionExtractionService
|
||||
emotion_service = EmotionExtractionService(
|
||||
llm_id=data_config.emotion_model_id if data_config.emotion_model_id else None
|
||||
llm_id=memory_config.emotion_model_id if memory_config.emotion_model_id else None
|
||||
)
|
||||
|
||||
# 全局并行处理所有陈述句
|
||||
|
||||
@@ -13,7 +13,7 @@ import logging
|
||||
from typing import Optional, Dict, Any
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.repositories.data_config_repository import DataConfigRepository
|
||||
from app.repositories.memory_config_repository import MemoryConfigRepository
|
||||
from app.core.memory.storage_services.forgetting_engine.actr_calculator import ACTRCalculator
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ def load_actr_config_from_db(
|
||||
"""
|
||||
从数据库加载 ACT-R 配置参数
|
||||
|
||||
从 PostgreSQL 的 data_config 表读取配置参数,
|
||||
从 PostgreSQL 的 memory_config 表读取配置参数,
|
||||
并计算派生参数(如 forgetting_rate)。
|
||||
|
||||
Args:
|
||||
@@ -99,7 +99,7 @@ def load_actr_config_from_db(
|
||||
|
||||
# 从数据库加载配置
|
||||
try:
|
||||
repository = DataConfigRepository()
|
||||
repository = MemoryConfigRepository()
|
||||
db_config = repository.get_by_id(db, config_id)
|
||||
|
||||
if db_config is None:
|
||||
|
||||
@@ -539,11 +539,11 @@ class ForgettingStrategy:
|
||||
LLM 客户端实例,如果无法获取则返回 None
|
||||
"""
|
||||
try:
|
||||
from app.repositories.data_config_repository import DataConfigRepository
|
||||
from app.repositories.memory_config_repository import MemoryConfigRepository
|
||||
from app.core.memory.utils.llm.llm_utils import MemoryClientFactory
|
||||
|
||||
# 从数据库读取配置
|
||||
repository = DataConfigRepository()
|
||||
repository = MemoryConfigRepository()
|
||||
db_config = repository.get_by_id(db, config_id)
|
||||
|
||||
if db_config is None or db_config.llm_id is None:
|
||||
|
||||
Reference in New Issue
Block a user