- 后端 API(Flask + Gunicorn) - RAG 引擎(混合检索 + 云端 Reranker + 引用溯源) - 文档解析(MinerU + 多格式支持) - Docker 生产部署配置 - 排除前端项目、敏感配置、模型文件
66 lines
1.4 KiB
Python
66 lines
1.4 KiB
Python
"""
|
||
会话存储接口
|
||
|
||
定义会话管理的抽象接口,支持不同的存储实现。
|
||
"""
|
||
|
||
from abc import ABC, abstractmethod
|
||
from typing import List, Dict, Optional
|
||
|
||
|
||
class BaseSessionRepo(ABC):
|
||
"""会话存储接口"""
|
||
|
||
@abstractmethod
|
||
def get_history(self, session_id: str) -> List[Dict]:
|
||
"""
|
||
获取会话历史
|
||
|
||
Args:
|
||
session_id: 会话ID
|
||
|
||
Returns:
|
||
消息列表,每条消息包含 role、content 和可选的 metadata
|
||
"""
|
||
pass
|
||
|
||
@abstractmethod
|
||
def add_message(self, session_id: str, role: str, content: str, metadata: Optional[Dict] = None) -> None:
|
||
"""
|
||
添加消息到会话
|
||
|
||
Args:
|
||
session_id: 会话ID
|
||
role: 角色(user/assistant)
|
||
content: 消息内容
|
||
metadata: 可选的元数据(如图片、来源等)
|
||
"""
|
||
pass
|
||
|
||
@abstractmethod
|
||
def create_session(self, user_id: str, title: str = "新对话") -> str:
|
||
"""
|
||
创建新会话
|
||
|
||
Args:
|
||
user_id: 用户ID
|
||
title: 会话标题
|
||
|
||
Returns:
|
||
会话ID
|
||
"""
|
||
pass
|
||
|
||
@abstractmethod
|
||
def get_user_sessions(self, user_id: str) -> List[Dict]:
|
||
"""
|
||
获取用户的会话列表
|
||
|
||
Args:
|
||
user_id: 用户ID
|
||
|
||
Returns:
|
||
会话列表
|
||
"""
|
||
pass
|