chat.py 1.1 KB

12345678910111213141516171819202122232425262728
  1. import json
  2. from app.service.v2.app_driver.chat_dialog import ChatDialog
  3. async def service_chat_dialog(chat_id:str, question: str, session_id: str):
  4. token = "ragflow-YzMzE1NDRjYzMyZjExZWY5ZjkxMDI0Mm"
  5. url = f"/api/v1/chats/{chat_id}/completions"
  6. chat = ChatDialog(token)
  7. data = {
  8. "question": question,
  9. "stream": True,
  10. "session_id": session_id
  11. }
  12. headers = {
  13. 'Content-Type': 'application/json',
  14. 'Authorization': f"Bearer {token}"
  15. }
  16. try:
  17. for ans in chat.chat_completions(url, data, headers):
  18. yield "data:" + json.dumps({"code": 0, "message": "", "data": ans}, ensure_ascii=False) + "\n\n"
  19. ChatSessionModel.update_by_id(conv.id, conv.to_dict())
  20. except Exception as e:
  21. yield "data:" + json.dumps({"code": 500, "message": str(e),
  22. "data": {"answer": "**ERROR**: " + str(e), "reference": []}},
  23. ensure_ascii=False) + "\n\n"
  24. yield "data:" + json.dumps({"code": 0, "message": "", "data": True}, ensure_ascii=False) + "\n\n"