tmp
zhaoqingang
2024-12-31 bde5797004bfb040003c1495027c4ae99d8f9f9a
tmp
5个文件已添加
65 ■■■■■ 已修改文件
app/service/v2/app_driver/chat_agent.py 补丁 | 查看 | 原始文档 | blame | 历史
app/service/v2/app_driver/chat_base.py 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/v2/app_driver/chat_basic.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/v2/app_driver/chat_dialog.py 20 ●●●●● 补丁 | 查看 | 原始文档 | 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