| | |
| | | raise Exception("Authorization header not found in response") |
| | | return authorization |
| | | |
| | | async def chat(self, token: str, user_id: int, message: str, upload_file_id: str, conversation_id: str): |
| | | async def chat(self, token: str, user_id: int, message: str, files: list, conversation_id: str, inputs:dict): |
| | | |
| | | target_url = f"{self.base_url}/v1/chat-messages" |
| | | files = [] |
| | | if upload_file_id: |
| | | files = [ |
| | | { |
| | | "type": "image", |
| | | "transfer_method": "local_file", |
| | | "url": "", |
| | | "upload_file_id": upload_file_id |
| | | } |
| | | ] |
| | | data = { |
| | | "inputs": {}, |
| | | "inputs": inputs, |
| | | "query": message, |
| | | "response_mode": "streaming", |
| | | "conversation_id": conversation_id, |
| | | "user": str(user_id), |
| | | "files": files |
| | | } |
| | | |
| | | # if parent_message_id: |
| | | # data["parent_message_id"] = parent_message_id |
| | | # print("----------------------------------------------") |
| | | # print(data) |
| | | # print("-----------------------------------------------") |
| | | async with httpx.AsyncClient(timeout=300.0) as client: |
| | | headers = { |
| | | 'Content-Type': 'application/json', |
| | |
| | | f.write(response.content) |
| | | |
| | | |
| | | async def workflow(self, token: str, user_id: int, inputs: dict): |
| | | |
| | | target_url = f"{self.base_url}/v1/workflows/run" |
| | | data = { |
| | | "inputs": inputs, |
| | | "response_mode": "streaming", |
| | | "user": str(user_id), |
| | | "files":[] |
| | | } |
| | | |
| | | async with httpx.AsyncClient(timeout=1800) as client: |
| | | headers = { |
| | | 'Content-Type': 'application/json', |
| | | 'Authorization': f'Bearer {token}' |
| | | } |
| | | async with client.stream("POST", target_url, data=json.dumps(data), headers=headers) as response: |
| | | if response.status_code == 200: |
| | | try: |
| | | async for answer in response.aiter_text(): |
| | | # print(f"response of ragflow chat: {answer}") |
| | | yield answer |
| | | except GeneratorExit as e: |
| | | print(e) |
| | | return |
| | | else: |
| | | yield f"Error: {response.status_code}" |
| | | |
| | | |
| | | |
| | | if __name__ == "__main__": |