提交代码

This commit is contained in:
董宏凯 committed 2026-06-09 19:41:01 +08:00
1 parent cc5ada1f3d
commit 7282a32859
76 files changed
+9757 -8

No files matched your search

@@ -70,6 +70,14 @@ class TaskUpdateRequest(BaseModel):
messages: list[dict[str, Any]] | None = None
class TaskEnsureRequest(BaseModel):
"""get-or-create:宿主传的 taskId 不固定,新 id 直接**初始化**一条空记录返回(不 404)。"""
id: str = Field(min_length=1, max_length=64)
title: str = Field(default="", max_length=512)
brief: str | None = None
agents: list[TaskAgentSchema] = []
# ── helpers ──────────────────────────────────────────────────────────────
@@ -115,6 +123,30 @@ async def create_task(request: Request, body: TaskCreateRequest) -> TaskResponse
return TaskResponse(**row)
@router.post("/ensure", response_model=TaskResponse)
async def ensure_task(request: Request, body: TaskEnsureRequest) -> TaskResponse:
"""存在则返回(含 messages 供回显);不存在则用该 id **初始化**一条空记录返回。
宿主传的 taskId 不固定:新 id 不再 404,而是即时建好、可直接回显/保存。幂等。
"""
store = _get_store(request)
user_id = _current_user_id(request)
existing = await store.get_task(body.id, user_id)
if existing is not None:
return TaskResponse(**existing)
row = await store.create_task(
user_id,
{
"id": body.id,
"title": body.title.strip(),
"brief": body.brief,
"agents": [a.model_dump() for a in body.agents],
"messages": [],
},
)
return TaskResponse(**row)
@router.get("/{task_id}", response_model=TaskResponse)
async def get_task(request: Request, task_id: str) -> TaskResponse:
store = _get_store(request)
+2 -2
View File
@@ -14,7 +14,7 @@ models:
display_name: DeepSeek Chat
use: langchain_openai:ChatOpenAI
model: deepseek-chat
api_key: sk-e1c22b7931dc446f8b67e57878edd105
api_key: sk-3fee562f834a4c08bb0d471ef44cb445
base_url: https://api.deepseek.com
request_timeout: 600.0
max_retries: 2
@@ -27,7 +27,7 @@ models:
display_name: DeepSeek V4 Flash
use: langchain_openai:ChatOpenAI
model: deepseek-v4-flash
api_key: sk-e1c22b7931dc446f8b67e57878edd105
api_key: sk-3fee562f834a4c08bb0d471ef44cb445
base_url: https://api.deepseek.com
request_timeout: 600.0
max_retries: 2