From bde5797004bfb040003c1495027c4ae99d8f9f9a Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期二, 31 十二月 2024 16:59:05 +0800
Subject: [PATCH] tmp

---
 app/service/v2/app_driver/chat_dialog.py   |   20 ++++++++++
 app/service/v2/app_driver/chat_basic.py    |    5 ++
 app/service/v2/app_driver/chat_workflow.py |    0 
 app/service/v2/app_driver/chat_agent.py    |    0 
 app/service/v2/app_driver/chat_base.py     |   40 ++++++++++++++++++++
 5 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/app/service/v2/app_driver/chat_agent.py b/app/service/v2/app_driver/chat_agent.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/service/v2/app_driver/chat_agent.py
diff --git a/app/service/v2/app_driver/chat_base.py b/app/service/v2/app_driver/chat_base.py
new file mode 100644
index 0000000..baacbc9
--- /dev/null
+++ b/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}'
+        }
+
diff --git a/app/service/v2/app_driver/chat_basic.py b/app/service/v2/app_driver/chat_basic.py
new file mode 100644
index 0000000..c6bc298
--- /dev/null
+++ b/app/service/v2/app_driver/chat_basic.py
@@ -0,0 +1,5 @@
+
+
+class ChatDialog:
+    def __init__(self, token):
+        self.token = token
diff --git a/app/service/v2/app_driver/chat_dialog.py b/app/service/v2/app_driver/chat_dialog.py
new file mode 100644
index 0000000..0ad7c3c
--- /dev/null
+++ b/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):
+            ...
\ No newline at end of file
diff --git a/app/service/v2/app_driver/chat_workflow.py b/app/service/v2/app_driver/chat_workflow.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/service/v2/app_driver/chat_workflow.py

--
Gitblit v1.8.0