Skip to content

Commit 9fa388c

Browse files
committed
feat: mcp
1 parent a285b86 commit 9fa388c

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

backend/apps/chat/models/chat_model.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ class AiModelQuestion(BaseModel):
111111
sub_query: Optional[list[dict]] = None
112112

113113
def sql_sys_question(self):
114-
return get_sql_template()['system'].format(engine=self.engine, schema=self.db_schema, question=self.question, lang=self.lang)
114+
return get_sql_template()['system'].format(engine=self.engine, schema=self.db_schema, question=self.question,
115+
lang=self.lang)
115116

116117
def sql_user_question(self):
117118
return get_sql_template()['user'].format(engine=self.engine, schema=self.db_schema, question=self.question,
@@ -153,22 +154,29 @@ def filter_sys_question(self):
153154

154155
def filter_user_question(self):
155156
return get_permissions_template()['user'].format(sql=self.sql, filter=self.filter)
156-
157-
def dynamic_sys_question(self):
157+
158+
def dynamic_sys_question(self):
158159
return get_dynamic_template()['system'].format(lang=self.lang, engine=self.engine)
159-
160-
def dynamic_user_question(self):
160+
161+
def dynamic_user_question(self):
161162
return get_dynamic_template()['user'].format(sql=self.sql, sub_query=self.sub_query)
162163

164+
163165
class ChatQuestion(AiModelQuestion):
164-
question: str = Body(description='用户提问')
165-
chat_id: int = Body(description='会话ID')
166+
question: str
167+
chat_id: int
166168

167169

168170
class ChatMcp(ChatQuestion):
169-
token: str = Body(description='token')
171+
token: str
170172

171173

172174
class ChatStart(BaseModel):
173175
username: str = Body(description='用户名')
174176
password: str = Body(description='密码')
177+
178+
179+
class McpQuestion(BaseModel):
180+
question: str = Body(description='用户提问')
181+
chat_id: int = Body(description='会话ID')
182+
token: str = Body(description='token')

backend/apps/mcp/mcp.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from sqlmodel import select
1313

1414
from apps.chat.api.chat import create_chat
15-
from apps.chat.models.chat_model import ChatMcp, CreateChat, ChatStart
15+
from apps.chat.models.chat_model import ChatMcp, CreateChat, ChatStart, McpQuestion
1616
from apps.chat.task.llm import LLMService
1717
from apps.system.crud.user import authenticate
1818
from apps.system.crud.user import get_db_user
@@ -76,7 +76,7 @@ async def mcp_start(session: SessionDep, chat: ChatStart):
7676

7777

7878
@router.post("/mcp_question", operation_id="mcp_question")
79-
async def mcp_question(session: SessionDep, chat: ChatMcp):
79+
async def mcp_question(session: SessionDep, chat: McpQuestion):
8080
try:
8181
payload = jwt.decode(
8282
chat.token, settings.SECRET_KEY, algorithms=[security.ALGORITHM]
@@ -105,8 +105,9 @@ async def mcp_question(session: SessionDep, chat: ChatMcp):
105105
if session_user.status != 1:
106106
raise HTTPException(status_code=400, detail="Inactive user")
107107

108+
mcp_chat = ChatMcp(token=chat.token, chat_id=chat.chat_id, question=chat.question)
108109
# ask
109-
llm_service = LLMService(session_user, chat)
110+
llm_service = LLMService(session_user, mcp_chat)
110111
llm_service.init_record()
111112

112113
return StreamingResponse(llm_service.run_task(False), media_type="text/event-stream")

0 commit comments

Comments
 (0)