XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

Add labels to provider list

f724c07f
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

13 个文件 +34 -11
Modified g4f/Provider/Bing.py +11 -7
@@ -6,7 +6,7 @@ import uuid
6 6 import time
7 7 import asyncio
8 8 from urllib import parse
9 from datetime import datetime
9 from datetime import datetime, date
10 10 from aiohttp import ClientSession, ClientTimeout, BaseConnector, WSMsgType
11 11
12 12 from ..typing import AsyncResult, Messages, ImageType, Cookies
@@ -32,6 +32,7 @@ class Bing(AsyncGeneratorProvider, ProviderModelMixin):
32 32 """
33 33 Bing provider for generating responses using the Bing API.
34 34 """
35 label = "Microsoft Copilot in Bing"
35 36 url = "https://bing.com/chat"
36 37 working = True
37 38 supports_message_history = True
@@ -47,7 +48,7 @@ class Bing(AsyncGeneratorProvider, ProviderModelMixin):
47 48 proxy: str = None,
48 49 timeout: int = 900,
49 50 api_key: str = None,
50 cookies: Cookies = {},
51 cookies: Cookies = None,
51 52 connector: BaseConnector = None,
52 53 tone: str = None,
53 54 image: ImageType = None,
@@ -69,8 +70,6 @@ class Bing(AsyncGeneratorProvider, ProviderModelMixin):
69 70 :return: An asynchronous result object.
70 71 """
71 72 prompt = messages[-1]["content"]
72 if api_key is not None:
73 cookies["_U"] = api_key
74 73 if context is None:
75 74 context = create_context(messages[:-1]) if len(messages) > 1 else None
76 75 if tone is None:
@@ -79,7 +78,7 @@ class Bing(AsyncGeneratorProvider, ProviderModelMixin):
79 78 gpt4_turbo = True if model.startswith("gpt-4-turbo") else False
80 79
81 80 return stream_generate(
82 prompt, tone, image, context, cookies,
81 prompt, tone, image, context, api_key, cookies,
83 82 get_connector(connector, proxy, True),
84 83 proxy, web_search, gpt4_turbo, timeout,
85 84 **kwargs
@@ -110,11 +109,15 @@ def get_default_cookies():
110 109 'SUID' : '',
111 110 'SRCHUSR' : '',
112 111 'SRCHHPGUSR' : f'HV={int(time.time())}',
112 'BCP' : 'AD=1&AL=1&SM=1',
113 '_Rwho' : f'u=d&ts={date.today().isoformat()}',
113 114 }
114 115
115 def create_headers(cookies: Cookies = None) -> dict:
116 def create_headers(cookies: Cookies = None, api_key: str = None) -> dict:
116 117 if cookies is None:
117 118 cookies = get_default_cookies()
119 if api_key is not None:
120 cookies["_U"] = api_key
118 121 headers = Defaults.headers.copy()
119 122 headers["cookie"] = "; ".join(f"{k}={v}" for k, v in cookies.items())
120 123 headers["x-forwarded-for"] = get_ip_address()
@@ -364,6 +367,7 @@ async def stream_generate(
364 367 image: ImageType = None,
365 368 context: str = None,
366 369 cookies: dict = None,
370 api_key: str = None,
367 371 connector: BaseConnector = None,
368 372 proxy: str = None,
369 373 web_search: bool = False,
@@ -389,7 +393,7 @@ async def stream_generate(
389 393 :param timeout: Timeout for the request.
390 394 :return: An asynchronous generator yielding responses.
391 395 """
392 headers = create_headers(cookies)
396 headers = create_headers(cookies, api_key)
393 397 new_conversation = conversation is None
394 398 max_retries = (5 if new_conversation else 0) if max_retries is None else max_retries
395 399 async with ClientSession(
Modified g4f/Provider/BingCreateImages.py +1 -0
@@ -12,6 +12,7 @@ from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
12 12 from .bing.create_images import create_images, create_session, get_cookies_from_browser
13 13
14 14 class BingCreateImages(AsyncGeneratorProvider, ProviderModelMixin):
15 label = "Microsoft Designer"
15 16 url = "https://www.bing.com/images/create"
16 17 working = True
17 18
Modified g4f/Provider/DeepInfra.py +1 -0
@@ -5,6 +5,7 @@ from ..typing import AsyncResult, Messages
5 5 from .needs_auth.Openai import Openai
6 6
7 7 class DeepInfra(Openai):
8 label = "DeepInfra"
8 9 url = "https://deepinfra.com"
9 10 working = True
10 11 needs_auth = False
Modified g4f/Provider/HuggingChat.py +1 -1
@@ -12,7 +12,7 @@ from .helper import format_prompt, get_connector
12 12 class HuggingChat(AsyncGeneratorProvider, ProviderModelMixin):
13 13 url = "https://huggingface.co/chat"
14 14 working = True
15 default_model = "meta-llama/Llama-2-70b-chat-hf"
15 default_model = "mistralai/Mixtral-8x7B-Instruct-v0.1"
16 16 models = [
17 17 "mistralai/Mixtral-8x7B-Instruct-v0.1",
18 18 "google/gemma-7b-it",
Modified g4f/Provider/Local.py +1 -0
@@ -12,6 +12,7 @@ from ..providers.base_provider import AbstractProvider, ProviderModelMixin
12 12 from ..errors import MissingRequirementsError
13 13
14 14 class Local(AbstractProvider, ProviderModelMixin):
15 label = "gpt4all"
15 16 working = True
16 17 supports_message_history = True
17 18 supports_system_message = True
Modified g4f/Provider/needs_auth/Groq.py +1 -0
@@ -4,6 +4,7 @@ from .Openai import Openai
4 4 from ...typing import AsyncResult, Messages
5 5
6 6 class Groq(Openai):
7 lebel = "Groq"
7 8 url = "https://console.groq.com/playground"
8 9 working = True
9 10 default_model = "mixtral-8x7b-32768"
Modified g4f/Provider/needs_auth/OpenRouter.py +1 -0
@@ -6,6 +6,7 @@ from .Openai import Openai
6 6 from ...typing import AsyncResult, Messages
7 7
8 8 class OpenRouter(Openai):
9 label = "OpenRouter"
9 10 url = "https://openrouter.ai"
10 11 working = True
11 12 default_model = "openrouter/auto"
Modified g4f/Provider/needs_auth/Openai.py +1 -0
@@ -9,6 +9,7 @@ from ...requests import StreamSession, raise_for_status
9 9 from ...errors import MissingAuthError, ResponseError
10 10
11 11 class Openai(AsyncGeneratorProvider, ProviderModelMixin):
12 label = "OpenAI API"
12 13 url = "https://openai.com"
13 14 working = True
14 15 needs_auth = True
Modified g4f/Provider/needs_auth/OpenaiChat.py +1 -0
@@ -35,6 +35,7 @@ from ... import debug
35 35 class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin):
36 36 """A class for creating and managing conversations with OpenAI chat service"""
37 37
38 lebel = "OpenAI ChatGPT"
38 39 url = "https://chat.openai.com"
39 40 working = True
40 41 supports_gpt_35_turbo = True
Modified g4f/Provider/needs_auth/Theb.py +1 -0
@@ -32,6 +32,7 @@ models = {
32 32 }
33 33
34 34 class Theb(AbstractProvider):
35 label = "TheB.AI"
35 36 url = "https://beta.theb.ai"
36 37 working = True
37 38 supports_gpt_35_turbo = True
Modified g4f/Provider/needs_auth/ThebApi.py +1 -0
@@ -28,6 +28,7 @@ models = {
28 28 }
29 29
30 30 class ThebApi(Openai):
31 label = "TheB.AI API"
31 32 url = "https://theb.ai"
32 33 working = True
33 34 needs_auth = True
Modified g4f/gui/client/static/js/chat.v1.js +3 -2
@@ -1026,9 +1026,10 @@ async function on_api() {
1026 1026 });
1027 1027
1028 1028 providers = await api("providers")
1029 providers.forEach((provider) => {
1029 Object.entries(providers).forEach(([provider, label]) => {
1030 1030 let option = document.createElement("option");
1031 option.value = option.text = provider;
1031 option.value = provider;
1032 option.text = label;
1032 1033 providerSelect.appendChild(option);
1033 1034 })
1034 1035
Modified g4f/gui/server/api.py +10 -1