feat(system):优化后端
1.新增后端测试 2.增加了后端的加密 3.增加了i18n(国际化)
This commit is contained in:
+35
-6
@@ -16,10 +16,40 @@ from fastapi import APIRouter, Depends
|
||||
from pydantic import BaseModel
|
||||
from kilostar.utils.ray_hook import ray_actor_hook
|
||||
from kilostar.utils.access import Accessor, TokenData
|
||||
from kilostar.core.individual.regulatory_node.template import (
|
||||
MessageRequest,
|
||||
MessageResponse,
|
||||
)
|
||||
|
||||
chat_router = APIRouter(prefix="/api/v1/chat", tags=["chat"])
|
||||
|
||||
|
||||
def _extract_reply(resp: MessageResponse | None) -> str | None:
|
||||
"""从 RegulatoryNode.working 的输出里取出对用户的回复文本。
|
||||
|
||||
RegulatoryNode 现在的 output_type 只剩 ``MessageResponse``(聊天/简单任务/汇报),
|
||||
没有则视为节点降级为静默——上层不写回 chat history。
|
||||
"""
|
||||
if resp is None:
|
||||
return None
|
||||
return resp.reply_message
|
||||
|
||||
|
||||
async def _ask_regulatory(
|
||||
*, user_id: str, chat_id: str, message: str
|
||||
) -> str | None:
|
||||
"""统一封装 chat 入口对 RegulatoryNode 的调用。"""
|
||||
regulatory_node = ray_actor_hook("regulatory_node").regulatory_node
|
||||
payload = MessageRequest(
|
||||
platform="client",
|
||||
user_name=user_id,
|
||||
platform_id=chat_id,
|
||||
message=message,
|
||||
)
|
||||
resp: MessageResponse | None = await regulatory_node.working.remote(payload)
|
||||
return _extract_reply(resp)
|
||||
|
||||
|
||||
class CreateChatRequest(BaseModel):
|
||||
title: str = "新对话"
|
||||
initial_message: str
|
||||
@@ -45,9 +75,7 @@ async def create_chat_session(
|
||||
)
|
||||
|
||||
# 调用监管节点处理简单任务/交流
|
||||
regulatory_node = ray_actor_hook("regulatory_node").regulatory_node
|
||||
# 在此发起任务并等待或异步返回结果
|
||||
response_msg = await regulatory_node.handle_chat_message.remote(
|
||||
response_msg = await _ask_regulatory(
|
||||
user_id=token_data.user_id,
|
||||
chat_id=chat.chat_id,
|
||||
message=request.initial_message,
|
||||
@@ -95,9 +123,10 @@ async def send_chat_message(
|
||||
)
|
||||
|
||||
# 调用监管节点
|
||||
regulatory_node = ray_actor_hook("regulatory_node").regulatory_node
|
||||
response_msg = await regulatory_node.handle_chat_message.remote(
|
||||
user_id=token_data.user_id, chat_id=chat_id, message=request.message
|
||||
response_msg = await _ask_regulatory(
|
||||
user_id=token_data.user_id,
|
||||
chat_id=chat_id,
|
||||
message=request.message,
|
||||
)
|
||||
|
||||
# 存回复
|
||||
|
||||
Reference in New Issue
Block a user