feat:对接中心平台,完善接口鉴权
This commit is contained in:
+15
-5
@@ -1,24 +1,34 @@
|
||||
"""大屏 Agent 启动与澄清恢复接口"""
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
|
||||
from app.common.sse import AgentEventResponse
|
||||
from app.core.auth import get_current_user
|
||||
from app.schemas.agent import ResumeRequest
|
||||
from app.schemas.request import DesignRequest
|
||||
from app.schemas.user import CurrentUser
|
||||
|
||||
router = APIRouter(prefix="/agent", tags=["Agent"])
|
||||
|
||||
|
||||
@router.post("/run", response_class=AgentEventResponse, status_code=200)
|
||||
async def stream_agent(body: DesignRequest, request: Request):
|
||||
async def stream_agent(
|
||||
body: DesignRequest,
|
||||
request: Request,
|
||||
user: CurrentUser = Depends(get_current_user),
|
||||
):
|
||||
service = request.app.state.agent_service
|
||||
# 在发送流响应头之前完成会话校验并占用任务
|
||||
execution = await service.prepare_run(body)
|
||||
execution = await service.prepare_run(body, user.id)
|
||||
return AgentEventResponse(service, execution, request)
|
||||
|
||||
|
||||
@router.post("/resume", response_class=AgentEventResponse, status_code=200)
|
||||
async def stream_resume_agent(body: ResumeRequest, request: Request):
|
||||
async def stream_resume_agent(
|
||||
body: ResumeRequest,
|
||||
request: Request,
|
||||
user: CurrentUser = Depends(get_current_user),
|
||||
):
|
||||
service = request.app.state.agent_service
|
||||
execution = await service.prepare_resume(body)
|
||||
execution = await service.prepare_resume(body, user.id)
|
||||
return AgentEventResponse(service, execution, request)
|
||||
|
||||
@@ -1,28 +1,35 @@
|
||||
"""会话创建与历史查询接口"""
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
|
||||
from app.common.response import ApiResponse, success_response
|
||||
from app.core.auth import get_current_user
|
||||
from app.core.exceptions import BizException
|
||||
from app.schemas.conversation import ConversationCreated, ConversationDetail
|
||||
from app.schemas.user import CurrentUser
|
||||
|
||||
router = APIRouter(prefix="/conversations", tags=["Conversation"])
|
||||
|
||||
|
||||
@router.post("")
|
||||
async def create_conversation(
|
||||
request: Request,
|
||||
request: Request, user: CurrentUser = Depends(get_current_user)
|
||||
) -> ApiResponse[ConversationCreated]:
|
||||
store = request.app.state.conversation_store
|
||||
return success_response(ConversationCreated(conversation_id=await store.create()))
|
||||
return success_response(
|
||||
ConversationCreated(conversation_id=await store.create(user.id))
|
||||
)
|
||||
|
||||
|
||||
@router.get("/{conversation_id}")
|
||||
async def get_conversation(
|
||||
conversation_id: str, request: Request
|
||||
conversation_id: str,
|
||||
request: Request,
|
||||
user: CurrentUser = Depends(get_current_user),
|
||||
) -> ApiResponse[ConversationDetail]:
|
||||
store = request.app.state.conversation_store
|
||||
if not await store.exists(conversation_id):
|
||||
# 他人的会话与不存在同样返回 404
|
||||
if not await store.exists(conversation_id, user.id):
|
||||
raise BizException(404, "会话不存在或已过期")
|
||||
turns = await store.load_turns(conversation_id, None)
|
||||
return success_response(
|
||||
|
||||
Reference in New Issue
Block a user