zhaoqingang 1 yıl önce
ebeveyn
işleme
bde5797004

+ 0 - 0
app/service/v2/app_driver/chat_agent.py


+ 40 - 0
app/service/v2/app_driver/chat_base.py

@@ -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}'
+        }
+

+ 5 - 0
app/service/v2/app_driver/chat_basic.py

@@ -0,0 +1,5 @@
+
+
+class ChatDialog:
+    def __init__(self, token):
+        self.token = token

+ 20 - 0
app/service/v2/app_driver/chat_dialog.py

@@ -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):
+            ...

+ 0 - 0
app/service/v2/app_driver/chat_workflow.py