bugfix
This commit is contained in:
parent
2c0a46d0f7
commit
226f91dc90
@ -27,6 +27,12 @@ async def liner(async_gen):
|
|||||||
await asyncio.sleep(0)
|
await asyncio.sleep(0)
|
||||||
yield l
|
yield l
|
||||||
|
|
||||||
|
def get_non_verify_ssl():
|
||||||
|
ssl_context = ssl.create_default_context(cafile=certifi.where())
|
||||||
|
ssl_context.check_hostname = False
|
||||||
|
ssl_context.verify_mode = ssl.CERT_NONE
|
||||||
|
return ssl_context
|
||||||
|
|
||||||
class StreamHttpClient:
|
class StreamHttpClient:
|
||||||
def __init__(self, socks5_url="socks5://127.0.0.1:1086"):
|
def __init__(self, socks5_url="socks5://127.0.0.1:1086"):
|
||||||
home = os.path.expanduser("~")
|
home = os.path.expanduser("~")
|
||||||
@ -46,6 +52,23 @@ class StreamHttpClient:
|
|||||||
with self.socks_url_file.open("a") as f:
|
with self.socks_url_file.open("a") as f:
|
||||||
f.write(url + "\n")
|
f.write(url + "\n")
|
||||||
|
|
||||||
|
async def request(self, method, url, *,
|
||||||
|
headers=None,
|
||||||
|
params=None,
|
||||||
|
data=None,
|
||||||
|
json=None,
|
||||||
|
files=None,
|
||||||
|
chunk_size=1024, **kw):
|
||||||
|
ret = b''
|
||||||
|
async for chunk in self.__call__(method, url, headers=headers,
|
||||||
|
params=params,
|
||||||
|
data=data,
|
||||||
|
json=json,
|
||||||
|
files=files,
|
||||||
|
chunk_size=1024, **kw):
|
||||||
|
ret += chunk
|
||||||
|
return ret
|
||||||
|
|
||||||
async def __call__(self, method, url, *,
|
async def __call__(self, method, url, *,
|
||||||
headers=None,
|
headers=None,
|
||||||
params=None,
|
params=None,
|
||||||
@ -103,11 +126,17 @@ class StreamHttpClient:
|
|||||||
connector = ProxyConnector.from_url(self.socks5_url) if use_socks else None
|
connector = ProxyConnector.from_url(self.socks5_url) if use_socks else None
|
||||||
|
|
||||||
async with aiohttp.ClientSession(connector=connector) as session:
|
async with aiohttp.ClientSession(connector=connector) as session:
|
||||||
req_args = kw
|
req_args = {k:v for k,v in kw.items() if k not in ['verify']}
|
||||||
|
ssl_context = self.ssl_context
|
||||||
|
if 'verify' in kw.keys() and kw.get('verify') == False:
|
||||||
|
ssl_context = get_non_verify_ssl()
|
||||||
|
else:
|
||||||
|
ssl_context = self.ssl_context
|
||||||
|
|
||||||
req_args.update({
|
req_args.update({
|
||||||
"headers": headers,
|
"headers": headers,
|
||||||
"params": params,
|
"params": params,
|
||||||
"ssl": self.ssl_context,
|
"ssl": ssl_context,
|
||||||
})
|
})
|
||||||
|
|
||||||
if files:
|
if files:
|
||||||
@ -142,11 +171,9 @@ if __name__ == '__main__':
|
|||||||
else:
|
else:
|
||||||
prompt = 'who are you'
|
prompt = 'who are you'
|
||||||
hc = StreamHttpClient()
|
hc = StreamHttpClient()
|
||||||
url = 'http://devops.opencomputing.ai/v1/chat/completions'
|
url = 'https://www.baidu.com'
|
||||||
headers={'Content-Type': 'application/json'}
|
x = await hc.request('GET', url, verify=False, timeout=2)
|
||||||
data='{ "model": "devstral", "stream":true, "messages":[ { "role":"user", "content":"' + prompt + '" } ] }'
|
print(x)
|
||||||
async for chunk in hc('POST', url, data=data, headers=headers):
|
|
||||||
print(chunk)
|
|
||||||
|
|
||||||
asyncio.new_event_loop().run_until_complete(main())
|
asyncio.new_event_loop().run_until_complete(main())
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user