返回提交历史
Modified
g4f/Provider/HuggingChat.py
+7
-7
XFEstudio/gpt4free
Update HuggingChat.py
e5e811fd
代码差异
1 个文件
+7
-7
@@ -5,10 +5,10 @@ import requests
5
5
from aiohttp import ClientSession, BaseConnector
6
6
7
7
from ..typing import AsyncResult, Messages
8
from ..requests.raise_for_status import raise_for_status
8
9
from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
9
10
from .helper import format_prompt, get_connector
10
11
11
12
12
class HuggingChat(AsyncGeneratorProvider, ProviderModelMixin):
13
13
url = "https://huggingface.co/chat"
14
14
working = True
@@ -60,11 +60,11 @@ class HuggingChat(AsyncGeneratorProvider, ProviderModelMixin):
60
60
headers=headers,
61
61
connector=get_connector(connector, proxy)
62
62
) as session:
63
async with session.post(f"{cls.url}/conversation", json=options, proxy=proxy) as response:
64
response.raise_for_status()
63
async with session.post(f"{cls.url}/conversation", json=options) as response:
64
await raise_for_status(response)
65
65
conversation_id = (await response.json())["conversationId"]
66
66
async with session.get(f"{cls.url}/conversation/{conversation_id}/__data.json") as response:
67
response.raise_for_status()
67
await raise_for_status(response)
68
68
data: list = (await response.json())["nodes"][1]["data"]
69
69
keys: list[int] = data[data[0]["messages"]]
70
70
message_keys: dict = data[keys[0]]
@@ -79,7 +79,7 @@ class HuggingChat(AsyncGeneratorProvider, ProviderModelMixin):
79
79
async with session.post(f"{cls.url}/conversation/{conversation_id}", json=options) as response:
80
80
first_token = True
81
81
async for line in response.content:
82
response.raise_for_status()
82
await raise_for_status(response)
83
83
line = json.loads(line)
84
84
if "type" not in line:
85
85
raise RuntimeError(f"Response: {line}")
@@ -91,5 +91,5 @@ class HuggingChat(AsyncGeneratorProvider, ProviderModelMixin):
91
91
yield token
92
92
elif line["type"] == "finalAnswer":
93
93
break
94
async with session.delete(f"{cls.url}/conversation/{conversation_id}", proxy=proxy) as response:
95
response.raise_for_status()
94
async with session.delete(f"{cls.url}/conversation/{conversation_id}") as response:
95
await raise_for_status(response)