(session: SessionDep, chat: McpQuestion)
| 130 | |
| 131 | @router.post("/mcp_question", operation_id="mcp_question") |
| 132 | async def mcp_question(session: SessionDep, chat: McpQuestion): |
| 133 | session_user = get_user(session, chat.token) |
| 134 | lang = chat.lang |
| 135 | if lang in ["zh-CN", "zh-TW", "en", "ko-KR"]: |
| 136 | session_user.language = lang |
| 137 | if chat.oid: |
| 138 | session_user.oid = int(chat.oid) |
| 139 | ds_id: Optional[int] = None |
| 140 | if chat.datasource_id: |
| 141 | if isinstance(chat.datasource_id, str): |
| 142 | if chat.datasource_id.strip() == "": |
| 143 | ds_id = None |
| 144 | else: |
| 145 | try: |
| 146 | ds_id = int(chat.datasource_id.strip()) |
| 147 | except ValueError: |
| 148 | raise HTTPException(status_code=400, detail="Invalid datasource ID") |
| 149 | elif isinstance(chat.datasource_id, int): |
| 150 | ds_id = chat.datasource_id |
| 151 | else: |
| 152 | raise HTTPException(status_code=400, detail="Invalid datasource ID") |
| 153 | |
| 154 | mcp_chat = ChatMcp(token=chat.token, chat_id=chat.chat_id, question=chat.question, datasource_id=ds_id) |
| 155 | |
| 156 | return await question_answer_inner(session=session, current_user=session_user, request_question=mcp_chat, |
| 157 | in_chat=False, stream=chat.stream, return_img=chat.return_img) |
| 158 | |
| 159 | |
| 160 | # Cordys crm |
nothing calls this directly
no test coverage detected