| | |
| | | user: str, |
| | | conversation_id: Optional[str] = None, |
| | | max_retries: int = None, |
| | | nick_name: Optional[str] = None, |
| | | ) -> Optional[Dict[str, Any]]: |
| | | """ |
| | | 发送对话消息(非流式模式) |
| | |
| | | user: 用户标识 |
| | | conversation_id: 会话ID(可选) |
| | | max_retries: 最大重试次数 |
| | | nick_name: 昵称(可选,用于传递给dify) |
| | | |
| | | Returns: |
| | | 响应数据字典,失败返回None |
| | |
| | | max_retries = settings.max_retry_count |
| | | |
| | | url = f"{self.base_url}/chat-messages" |
| | | |
| | | # 构建inputs参数 |
| | | inputs = {} |
| | | if nick_name: |
| | | inputs["nick_name"] = nick_name |
| | | |
| | | payload = { |
| | | "query": query, |
| | | "response_mode": "blocking", # 使用阻塞模式(非流式) |
| | | "user": user, |
| | | "inputs": {}, |
| | | "inputs": inputs, |
| | | } |
| | | |
| | | # 如果有会话ID,添加到请求中 |
| | |
| | | user: str, |
| | | conversation_id: Optional[str] = None, |
| | | max_retries: int = None, |
| | | nick_name: Optional[str] = None, |
| | | ) -> Optional[Dict[str, Any]]: |
| | | """ |
| | | 发送对话消息(流式模式) |
| | |
| | | user: 用户标识 |
| | | conversation_id: 会话ID(可选) |
| | | max_retries: 最大重试次数 |
| | | nick_name: 昵称(可选,用于传递给dify) |
| | | |
| | | Returns: |
| | | 完整的响应数据字典,失败返回None |
| | |
| | | max_retries = settings.max_retry_count |
| | | |
| | | url = f"{self.base_url}/chat-messages" |
| | | |
| | | # 构建inputs参数 |
| | | inputs = {} |
| | | if nick_name: |
| | | inputs["nick_name"] = nick_name |
| | | |
| | | payload = { |
| | | "query": query, |
| | | "response_mode": "streaming", # 使用流式模式 |
| | | "user": user, |
| | | "inputs": {}, |
| | | "inputs": inputs, |
| | | } |
| | | |
| | | # 如果有会话ID,添加到请求中 |
| | |
| | | conversation_id: Optional[str] = None, |
| | | max_retries: int = None, |
| | | force_streaming: Optional[bool] = None, |
| | | nick_name: Optional[str] = None, |
| | | ) -> Optional[Dict[str, Any]]: |
| | | """ |
| | | 发送对话消息(根据配置选择模式) |
| | |
| | | conversation_id: 会话ID(可选) |
| | | max_retries: 最大重试次数 |
| | | force_streaming: 强制使用流式模式(可选,覆盖配置) |
| | | nick_name: 昵称(可选,用于传递给dify) |
| | | |
| | | Returns: |
| | | 响应数据字典,失败返回None |
| | |
| | | |
| | | if use_streaming: |
| | | logger.info(f"使用流式模式发送消息: user={user}") |
| | | return self.send_chat_message_stream(query, user, conversation_id, max_retries) |
| | | return self.send_chat_message_stream(query, user, conversation_id, max_retries, nick_name) |
| | | else: |
| | | logger.info(f"使用阻塞模式发送消息: user={user}") |
| | | return self.send_chat_message(query, user, conversation_id, max_retries) |
| | | return self.send_chat_message(query, user, conversation_id, max_retries, nick_name) |
| | | |
| | | def get_conversation_messages( |
| | | self, conversation_id: str, user: str |