app/service/v2/app_driver/chat_agent.py | 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/service/v2/app_driver/chat_base.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/service/v2/app_driver/chat_basic.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/service/v2/app_driver/chat_dialog.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/service/v2/app_driver/chat_workflow.py | 补丁 | 查看 | 原始文档 | blame | 历史 |
app/service/v2/app_driver/chat_agent.py
app/service/v2/app_driver/chat_base.py
New file @@ -0,0 +1,40 @@ import httpx from pycparser.ply.yacc import token class ChatBase: @staticmethod async def http_stream(url, data, headers, timeout=300): async with httpx.AsyncClient(timeout=timeout) as client: async with client.stream("POST", url, json=data, headers=headers) as response: if response.status_code == 200: try: async for answer in response.aiter_text(): yield answer except GeneratorExit as e: print(e) return else: yield f"Error: {response.status_code}" @staticmethod async def http_post(url, data, headers, timeout=300): async with httpx.AsyncClient(timeout=timeout) as client: response = client.post(url, json=data, headers=headers) return response @staticmethod async def http_get(url, params, headers, timeout=300): async with httpx.AsyncClient(timeout=timeout) as client: response = client.get(url, params=params, headers=headers) return response @staticmethod async def get_headers(token): headers = { # 'Content-Type': 'application/json', 'Authorization': f'Bearer {token}' } app/service/v2/app_driver/chat_basic.py
New file @@ -0,0 +1,5 @@ class ChatDialog: def __init__(self, token): self.token = token app/service/v2/app_driver/chat_dialog.py
New file @@ -0,0 +1,20 @@ from app.service.v2.app_driver.chat_base import ChatBase class ChatDialog(ChatBase): def __init__(self, token): self.token = token async def get_headers(self): return { 'Content-Type': 'application/json', 'Authorization': f'Bearer {self.token}' } async def chat_completions(self): async for rag_response in self.http_stream(token, chat_id, chat_history): ... app/service/v2/app_driver/chat_workflow.py