mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-15 06:41:34 -08:00
Add cookies to HuggingChat provider
This commit is contained in:
parent
b198d900aa
commit
e2c269cc63
3 changed files with 127 additions and 151 deletions
|
|
@ -1,16 +1,17 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import requests
|
||||
|
||||
try:
|
||||
from curl_cffi.requests import Session
|
||||
from curl_cffi.requests import Session, CurlMime
|
||||
has_curl_cffi = True
|
||||
except ImportError:
|
||||
has_curl_cffi = False
|
||||
from ...typing import CreateResult, Messages
|
||||
|
||||
from ...typing import CreateResult, Messages, Cookies
|
||||
from ...errors import MissingRequirementsError
|
||||
from ...requests.raise_for_status import raise_for_status
|
||||
from ...cookies import get_cookies
|
||||
from ..base_provider import ProviderModelMixin, AbstractProvider
|
||||
from ..helper import format_prompt
|
||||
|
||||
|
|
@ -53,14 +54,17 @@ class HuggingChat(AbstractProvider, ProviderModelMixin):
|
|||
model: str,
|
||||
messages: Messages,
|
||||
stream: bool,
|
||||
web_search: bool = False,
|
||||
cookies: Cookies = None,
|
||||
**kwargs
|
||||
) -> CreateResult:
|
||||
if not has_curl_cffi:
|
||||
raise MissingRequirementsError('Install "curl_cffi" package | pip install -U curl_cffi')
|
||||
model = cls.get_model(model)
|
||||
if cookies is None:
|
||||
cookies = get_cookies("huggingface.co")
|
||||
|
||||
if model in cls.models:
|
||||
session = Session()
|
||||
session = Session(cookies=cookies)
|
||||
session.headers = {
|
||||
'accept': '*/*',
|
||||
'accept-language': 'en',
|
||||
|
|
@ -118,7 +122,7 @@ class HuggingChat(AbstractProvider, ProviderModelMixin):
|
|||
"id": messageId,
|
||||
"is_retry": False,
|
||||
"is_continue": False,
|
||||
"web_search": False,
|
||||
"web_search": web_search,
|
||||
"tools": []
|
||||
}
|
||||
|
||||
|
|
@ -139,15 +143,15 @@ class HuggingChat(AbstractProvider, ProviderModelMixin):
|
|||
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
|
||||
}
|
||||
|
||||
files = {
|
||||
'data': (None, json.dumps(settings, separators=(',', ':'))),
|
||||
}
|
||||
data = CurlMime()
|
||||
data.addpart('data', data=json.dumps(settings, separators=(',', ':')))
|
||||
|
||||
response = requests.post(
|
||||
response = session.post(
|
||||
f'https://huggingface.co/chat/conversation/{conversationId}',
|
||||
cookies=session.cookies,
|
||||
headers=headers,
|
||||
files=files,
|
||||
multipart=data,
|
||||
stream=True
|
||||
)
|
||||
raise_for_status(response)
|
||||
|
||||
|
|
|
|||
|
|
@ -92,6 +92,10 @@ body {
|
|||
height: 100vh;
|
||||
}
|
||||
|
||||
a:-webkit-any-link {
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
|
|
@ -124,7 +128,7 @@ body {
|
|||
|
||||
.new_version a {
|
||||
color: var(--colour-4);
|
||||
text-decoration: underline dotted;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.conversations {
|
||||
|
|
@ -975,11 +979,6 @@ ul {
|
|||
display: flex;
|
||||
}
|
||||
|
||||
|
||||
a:-webkit-any-link {
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.conversation .user-input textarea {
|
||||
font-size: 15px;
|
||||
width: 100%;
|
||||
|
|
@ -1021,7 +1020,6 @@ a:-webkit-any-link {
|
|||
background-image: url('data:image/svg+xml;utf-8,<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 5C5.73478 5 5.48043 5.10536 5.29289 5.29289C5.10536 5.48043 5 5.73478 5 6V20C5 20.2652 5.10536 20.5196 5.29289 20.7071C5.48043 20.8946 5.73478 21 6 21H18C18.2652 21 18.5196 20.8946 18.7071 20.7071C18.8946 20.5196 19 20.2652 19 20V6C19 5.73478 18.8946 5.48043 18.7071 5.29289C18.5196 5.10536 18.2652 5 18 5H16C15.4477 5 15 4.55228 15 4C15 3.44772 15.4477 3 16 3H18C18.7956 3 19.5587 3.31607 20.1213 3.87868C20.6839 4.44129 21 5.20435 21 6V20C21 20.7957 20.6839 21.5587 20.1213 22.1213C19.5587 22.6839 18.7957 23 18 23H6C5.20435 23 4.44129 22.6839 3.87868 22.1213C3.31607 21.5587 3 20.7957 3 20V6C3 5.20435 3.31607 4.44129 3.87868 3.87868C4.44129 3.31607 5.20435 3 6 3H8C8.55228 3 9 3.44772 9 4C9 4.55228 8.55228 5 8 5H6Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7 3C7 1.89543 7.89543 1 9 1H15C16.1046 1 17 1.89543 17 3V5C17 6.10457 16.1046 7 15 7H9C7.89543 7 7 6.10457 7 5V3ZM15 3H9V5H15V3Z" fill="white"/></svg>');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
transition: background-color 200ms ease, transform 200ms ease-out
|
||||
}
|
||||
|
||||
.hljs-copy-button:hover {
|
||||
|
|
|
|||
|
|
@ -1065,6 +1065,7 @@ async function hide_sidebar() {
|
|||
sidebar_button.classList.remove("rotated");
|
||||
settings.classList.add("hidden");
|
||||
chat.classList.remove("hidden");
|
||||
log_storage.classList.add("hidden");
|
||||
if (window.location.pathname == "/menu/" || window.location.pathname == "/settings/") {
|
||||
history.back();
|
||||
}
|
||||
|
|
@ -1182,31 +1183,6 @@ const say_hello = async () => {
|
|||
}
|
||||
}
|
||||
|
||||
// Theme storage for recurring viewers
|
||||
const storeTheme = function (theme) {
|
||||
appStorage.setItem("theme", theme);
|
||||
};
|
||||
|
||||
// set theme when visitor returns
|
||||
const setTheme = function () {
|
||||
const activeTheme = appStorage.getItem("theme");
|
||||
colorThemes.forEach((themeOption) => {
|
||||
if (themeOption.id === activeTheme) {
|
||||
themeOption.checked = true;
|
||||
}
|
||||
});
|
||||
// fallback for no :has() support
|
||||
document.documentElement.className = activeTheme;
|
||||
};
|
||||
|
||||
colorThemes.forEach((themeOption) => {
|
||||
themeOption.addEventListener("click", () => {
|
||||
storeTheme(themeOption.id);
|
||||
// fallback for no :has() support
|
||||
document.documentElement.className = themeOption.id;
|
||||
});
|
||||
});
|
||||
|
||||
function count_tokens(model, text) {
|
||||
if (model) {
|
||||
if (window.llamaTokenizer)
|
||||
|
|
@ -1273,7 +1249,6 @@ window.addEventListener('pywebviewready', async function() {
|
|||
});
|
||||
|
||||
async function on_load() {
|
||||
setTheme();
|
||||
count_input();
|
||||
|
||||
if (/\/chat\/.+/.test(window.location.href)) {
|
||||
|
|
@ -1290,8 +1265,7 @@ async function on_api() {
|
|||
if (prompt_lock) return;
|
||||
|
||||
// If not mobile
|
||||
if (!window.matchMedia("(pointer:coarse)").matches)
|
||||
if (evt.keyCode === 13 && !evt.shiftKey) {
|
||||
if (!window.matchMedia("(pointer:coarse)").matches && evt.keyCode === 13 && !evt.shiftKey) {
|
||||
evt.preventDefault();
|
||||
console.log("pressed enter");
|
||||
prompt_lock = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue