(session: SessionDep, current_user: CurrentUser, chat_record_id: int,
current_assistant: CurrentAssistant, articles_number: Optional[int] = 4)
| 219 | |
| 220 | @router.post("/recommend_questions/{chat_record_id}", summary=f"{PLACEHOLDER_PREFIX}ask_recommend_questions") |
| 221 | async def ask_recommend_questions(session: SessionDep, current_user: CurrentUser, chat_record_id: int, |
| 222 | current_assistant: CurrentAssistant, articles_number: Optional[int] = 4): |
| 223 | def _return_empty(): |
| 224 | yield 'data:' + orjson.dumps({'content': '[]', 'type': 'recommended_question'}).decode() + '\n\n' |
| 225 | |
| 226 | try: |
| 227 | record = get_chat_record_by_id(session, chat_record_id) |
| 228 | |
| 229 | if not record: |
| 230 | return StreamingResponse(_return_empty(), media_type="text/event-stream") |
| 231 | |
| 232 | request_question = ChatQuestion(chat_id=record.chat_id, question=record.question if record.question else '') |
| 233 | |
| 234 | llm_service = await LLMService.create(session, current_user, request_question, current_assistant, True) |
| 235 | llm_service.set_record(record) |
| 236 | llm_service.set_articles_number(articles_number) |
| 237 | llm_service.run_recommend_questions_task_async() |
| 238 | except Exception as e: |
| 239 | traceback.print_exc() |
| 240 | |
| 241 | def _err(_e: Exception): |
| 242 | yield 'data:' + orjson.dumps({'content': str(_e), 'type': 'error'}).decode() + '\n\n' |
| 243 | |
| 244 | return StreamingResponse(_err(e), media_type="text/event-stream") |
| 245 | |
| 246 | return StreamingResponse(llm_service.await_result(), media_type="text/event-stream") |
| 247 | |
| 248 | |
| 249 | @router.get("/recent_questions/{datasource_id}", response_model=List[str], |
nothing calls this directly
no test coverage detected