feat:完成大部分数据文件上传解析功能
This commit is contained in:
@@ -9,6 +9,7 @@ from loguru import logger
|
||||
|
||||
from app.config import settings
|
||||
from app.core.exceptions import BizException
|
||||
from app.datafiles.service import DataFileService
|
||||
from app.observability.tracing import astream_screen
|
||||
from app.processor.history import trim_history
|
||||
from app.schemas.agent import AgentResult, ResumeRequest
|
||||
@@ -18,9 +19,10 @@ from app.services.conversation import ConversationStore
|
||||
|
||||
|
||||
class AgentService:
|
||||
def __init__(self, graph, store: ConversationStore):
|
||||
def __init__(self, graph, store: ConversationStore, data_files: DataFileService):
|
||||
self.graph = graph
|
||||
self.store = store
|
||||
self.data_files = data_files
|
||||
# 同一时刻,一个任务和一个会话都只允许一个执行,避免历史顺序错乱
|
||||
self._active: set[str] = set()
|
||||
self._conversation_of: dict[str, str] = {}
|
||||
@@ -40,6 +42,10 @@ class AgentService:
|
||||
turns = await self.store.load_turns(
|
||||
conversation_id, settings.conversation_history_turns
|
||||
)
|
||||
# 附件引用的文件不属于本会话时在流开始前返回 404
|
||||
data_files = await self.data_files.request_files(
|
||||
user_id, conversation_id, request.attachments
|
||||
)
|
||||
except BaseException:
|
||||
self.release(thread_id)
|
||||
raise
|
||||
@@ -57,6 +63,8 @@ class AgentService:
|
||||
],
|
||||
settings.history_max_tokens,
|
||||
)
|
||||
# 同样只信任服务端读取的结果;会话内的文件每一轮都可用,不附带也能查询
|
||||
payload["data_files"] = [item.model_dump(mode="json") for item in data_files]
|
||||
|
||||
return (
|
||||
thread_id,
|
||||
|
||||
Reference in New Issue
Block a user