Merge branch 'master' of http://192.168.5.5:10010/r/rag-gateway
| | |
| | | from starlette.websockets import WebSocket, WebSocketDisconnect |
| | | |
| | | from Log import logger |
| | | from app.models.app_model import AppRegisterModel |
| | | # from app.models.app_model import AppRegisterModel |
| | | from app.models.user_model import UserModel |
| | | from app.service.auth import SECRET_KEY, ALGORITHM |
| | | from app.config.config import settings |
| | |
| | | import asyncio |
| | | import websockets |
| | | from sqlalchemy.orm import Session |
| | | |
| | | from Log import logger |
| | | from app.api import get_current_user_websocket |
| | | from app.config.config import settings |
| | | from app.models.agent_model import AgentModel, AgentType |
| | |
| | | # 接收前端消息 |
| | | message = await websocket.receive_json() |
| | | question = message.get("message") |
| | | SessionService(db).create_session( |
| | | session_id=chat_id, |
| | | name=question, |
| | | agent_id=agent_id, |
| | | agent_type=AgentType.BASIC, |
| | | user_id=current_user.id |
| | | ) |
| | | try: |
| | | SessionService(db).create_session( |
| | | session_id=chat_id, |
| | | name=question, |
| | | agent_id=agent_id, |
| | | agent_type=AgentType.BASIC, |
| | | user_id=current_user.id |
| | | ) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | if not question: |
| | | await websocket.send_json({"message": "Invalid request", "type": "error"}) |
| | | continue |
| | |
| | | if file_name: |
| | | excel_url = f"/api/files/download/?agent_id=basic_question_talk&file_id={file_name}&file_type=word" |
| | | result = {"message": output, "type": "message", "file_url": excel_url} |
| | | SessionService(db).update_session(session_id=chat_id, is_incr=1, message={"role":"assistant", "content": result}) |
| | | try: |
| | | SessionService(db).update_session(session_id=chat_id, is_incr=1, |
| | | message={"role": "assistant", "content": result}) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | await websocket.send_json(result | data) |
| | | except json.JSONDecodeError as e: |
| | | print(f"Error decoding JSON: {e}") |
| | |
| | | if image_name: |
| | | image_url = f"/api/files/download/?agent_id=basic_excel_talk&file_id={image_name}&file_type=image" |
| | | result = {"message": output, "type": "message", "excel_url": excel_url, "image_url": image_url} |
| | | try: |
| | | SessionService(db).update_session(session_id=chat_id, is_incr=1, |
| | | message={"role": "assistant", "content": result}) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | await websocket.send_json(result | data) |
| | | except json.JSONDecodeError as e: |
| | | print(f"Error decoding JSON: {e}") |
| | |
| | | 'name': self.name, |
| | | 'agent_type': self.agent_type, |
| | | 'agent_id': self.agent_id, |
| | | 'create_date': self.create_date, |
| | | 'update_date': self.update_date, |
| | | 'create_date': self.create_date.strftime("%Y-%m-%d %H:%M:%S"), |
| | | 'update_date': self.update_date.strftime("%Y-%m-%d %H:%M:%S"), |
| | | } |
| | | |
| | | def log_to_json(self): |
| | |
| | | 'name': self.name, |
| | | 'agent_type': self.agent_type, |
| | | 'agent_id': self.agent_id, |
| | | 'create_date': self.create_date, |
| | | 'update_date': self.update_date, |
| | | 'create_date': self.create_date.strftime("%Y-%m-%d %H:%M:%S"), |
| | | 'update_date': self.update_date.strftime("%Y-%m-%d %H:%M:%S"), |
| | | 'message': self.message |
| | | } |