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