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 = await 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 = await client.get(url, params=params, headers=headers) return response @staticmethod async def get_headers(token): return { 'Content-Type': 'application/json', 'Authorization': f'Bearer {token}' }