gpt4free

Форк
1
2 месяца назад
H Lohaus
Merge pull request #1694 from ComRSMaster/main GigaChat models add
7df797
3 месяца назад
9 месяцев назад
2 месяца назад
9 месяцев назад
9 месяцев назад
4 месяца назад
9 месяцев назад
2 месяца назад
9 месяцев назад
README-DE.md
Open in EN

248433934-7886223b-c1d1-4260-82aa-da5741f303bb

Kauf mir einen Kaffee auf ko-fi.com

Durch die Nutzung dieses Repositories oder jeglichen damit verbundenen Code stimmen Sie dem Rechtshinweis zu. Der Autor ist nicht verantwortlich für Kopien, Forks, erneute Uploads durch andere Benutzer oder sonstige mit GPT4Free verbundene Aktivitäten. Dies ist das einzige Konto und Repository des Autors. Um Identitätsdiebstahl oder unverantwortliche Handlungen zu verhindern, halten Sie sich bitte an die GNU GPL-Lizenz, die dieses Repository verwendet.

pip install -U g4f

🆕 Was gibt es Neues

📚 Inhaltsverzeichnis

🛠️ Erste Schritte

Voraussetzungen:

  1. Python herunterladen und installieren (Version 3.10+ wird empfohlen).

Projekt einrichten:

Installation über pypi
pip install -U g4f
oder
  1. Klonen Sie das GitHub-Repository:
git clone https://github.com/xtekky/gpt4free.git
  1. Navigieren Sie zum Projektverzeichnis:
cd gpt4free
  1. (Empfohlen) Erstellen Sie eine Python-Virtual-Umgebung: Sie können der Python-Offiziellen Dokumentation für virtuelle Umgebungen folgen.
python3 -m venv venv
  1. Aktivieren Sie die virtuelle Umgebung:
    • Unter Windows:
    .\venv\Scripts\activate
    
    • Unter macOS und Linux:
    source venv/bin/activate
    
  2. Installieren Sie die erforderlichen Python-Pakete aus requirements.txt:
pip install -r requirements.txt
  1. Erstellen Sie eine Datei test.py im Stammverzeichnis und beginnen Sie mit der Verwendung des Repositories. Weitere Anweisungen finden Sie unten
import g4f
...
Einrichten mit Docker:

Wenn Docker installiert ist, können Sie das Projekt ohne manuelle Installation von Abhängigkeiten einfach einrichten und ausführen.

  1. Stellen Sie zunächst sicher, dass sowohl Docker als auch Docker Compose installiert sind.

  2. Klonen Sie das GitHub-Repo:

git clone https://github.com/xtekky/gpt4free.git
  1. Navigieren Sie zum Projektverzeichnis:
cd gpt4free
  1. Erstellen Sie das Docker-Image:
docker-compose build
  1. Starten Sie den Dienst mit Docker Compose:
docker-compose up

Ihr Server wird jetzt unter http://localhost:1337 ausgeführt. Sie können mit der API interagieren oder Ihre Tests wie gewohnt ausführen.

Um die Docker-Container zu stoppen, führen Sie einfach aus:

docker-compose down

[!Note] Wenn Sie Docker verwenden, werden alle Änderungen, die Sie an Ihren lokalen Dateien vornehmen, im Docker-Container durch die Volumenabbildung in der docker-compose.yml-Datei widergespiegelt. Wenn Sie jedoch Abhängigkeiten hinzufügen oder entfernen, müssen Sie das Docker-Image mit docker-compose build neu erstellen.

💡 Verwendung

Das g4f Paket

ChatCompletion

import g4f
g4f.debug.logging = True # Aktiviere das Protokollieren
g4f.debug.check_version = False # Deaktiviere die automatische Versionsüberprüfung
print(g4f.debug.get_version()) # Überprüfe die Version
print(g4f.Provider.Bing.params) # Unterstützte Argumente
# Automatische Auswahl des Anbieters
# Gestreamte Vervollständigung
response = g4f.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hallo"}],
stream=True,
)
for message in response:
print(message, flush=True, end='')
# Normale Antwort
response = g4f.ChatCompletion.create(
model=g4f.models.gpt_4,
messages=[{"role": "user", "content": "Hallo"}],
) # Alternative Modellkonfiguration
print(response)
Completion
import g4f
erlaubte_modelle = [
'code-davinci-002',
'text-ada-001',
'text-babbage-001',
'text-curie-001',
'text-davinci-002',
'text-davinci-003'
]
response = g4f.Completion.create(
model='text-davinci-003',
prompt='sage, dass dies ein Test ist'
)
print(response)
Anbieter
import g4f
from g4f.Provider import (
AItianhu,
Aichat,
Bard,
Bing,
ChatBase,
ChatgptAi,
OpenaiChat,
Vercel,
You,
Yqcloud,
)
# Festlegen des Anbieters
response = g4f.ChatCompletion.create(
model="gpt-3.5-turbo",
provider=g4f.Provider.Aichat,
messages=[{"role": "user", "content": "Hallo"}],
stream=True,
)
for message in response:
print(message)
Verwendung des Browsers

Einige Anbieter verwenden einen Browser, um den Bot-Schutz zu umgehen. Sie verwenden den Selenium-Webtreiber, um den Browser zu steuern. Die Browsereinstellungen und die Anmeldedaten werden in einem benutzerdefinierten Verzeichnis gespeichert. Wenn der Headless-Modus aktiviert ist, werden die Browserfenster unsichtbar geladen. Aus Leistungsgründen wird empfohlen, die Browserinstanzen wiederzuverwenden und sie am Ende selbst zu schließen:

import g4f
from undetected_chromedriver import Chrome, ChromeOptions
from g4f.Provider import (
Bard,
Poe,
AItianhuSpace,
MyShell,
Phind,
PerplexityAi,
)
options = ChromeOptions()
options.add_argument("--incognito")
browser = Chrome(options=options, headless=True)
for idx in range(10):
response = g4f.ChatCompletion.create(
model=g4f.models.default,
provider=g4f.Provider.Phind,
messages=[{"role": "user", "content": "Schlage mir einen Namen vor."}],
browser=browser
)
print(f"{idx}:", response)
browser.quit()
Erforderliche Cookies

Cookies sind für die ordnungsgemäße Funktion einiger Dienstanbieter unerlässlich. Es ist unerlässlich, eine aktive Sitzung aufrechtzuerhalten, die in der Regel durch das Anmelden in Ihrem Konto erreicht wird.

Wenn Sie das g4f-Paket lokal ausführen, ruft das Paket automatisch Cookies aus Ihrem Webbrowser ab, indem es die get_cookies-Funktion verwendet. Wenn Sie es jedoch nicht lokal ausführen, müssen Sie die Cookies manuell bereitstellen, indem Sie sie als Parameter unter Verwendung des cookies-Parameters übergeben.

import g4f
from g4f.Provider import (
Bing,
HuggingChat,
OpenAssistant,
)
# Verwendung
response = g4f.ChatCompletion.create(
model=g4f.models.default,
messages=[{"role": "user", "content": "Hallo"}],
provider=Bing,
#cookies=g4f.get_cookies(".google.com"),
cookies={"cookie_name": "value", "cookie_name2": "value2"},
auth=True
)
Unterstützung für asynchrone Ausführung

Um die Geschwindigkeit und Gesamtleistung zu verbessern, führen Sie Anbieter asynchron aus. Die Gesamtausführungszeit wird durch die Dauer der langsamsten Anbieterausführung bestimmt.

import g4f
import asyncio
_providers = [
g4f.Provider.Aichat,
g4f.Provider.ChatBase,
g4f.Provider.Bing,
g4f.Provider.GptGo,
g4f.Provider.You,
g4f.Provider.Yqcloud,
]
async def run_provider(provider: g4f.Provider.BaseProvider):
try:
response = await g4f.ChatCompletion.create_async(
model=g4f.models.default,
messages=[{"role": "user", "content": "Hallo"}],
provider=provider,
)
print(f"{provider.__name__}:", response)
except Exception as e:
print(f"{provider.__name__}:", e)
async def run_all():
calls = [
run_provider(provider) for provider in _providers
]
await asyncio.gather(*calls)
asyncio.run(run_all())
Unterstützung für Proxy und Timeout

Alle Anbieter unterstützen das Angeben eines Proxy und das Erhöhen des Timeouts in den Erstellungsfunktionen.

import g4f
response = g4f.ChatCompletion.create(
model=g4f.models.default,
messages=[{"role": "user", "content": "Hallo"}],
proxy="http://host:port",
# oder socks5://user:pass@host:port
timeout=120, # in Sekunden
)
print(f"Ergebnis:", response)

Interference openai-proxy API (Verwendung mit dem openai Python-Paket)

Führen Sie die Interference API aus dem PyPi-Paket aus

from g4f.api import run_api
run_api()

Führen Sie die Interference API aus dem Repository aus

Wenn Sie die Einbettungsfunktion verwenden möchten, benötigen Sie einen Hugging Face-Token. Sie können einen unter Hugging Face Tokens erhalten. Stellen Sie sicher, dass Ihre Rolle auf Schreiben eingestellt ist. Wenn Sie Ihren Token haben, verwenden Sie ihn einfach anstelle des OpenAI-API-Schlüssels.

Server ausführen:

g4f api

oder

python -m g4f.api
import openai
# Setzen Sie Ihren Hugging Face-Token als API-Schlüssel, wenn Sie Einbettungen verwenden
# Wenn Sie keine Einbettungen verwenden, lassen Sie es leer
openai.api_key = "IHR_HUGGING_FACE_TOKEN" # Ersetzen Sie dies durch Ihren tatsächlichen Token
# Setzen Sie die API-Basis-URL, falls erforderlich, z.B. für eine lokale Entwicklungsumgebung
openai.api_base = "http://localhost:1337/v1"
def main():
chat_completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "schreibe ein Gedicht über einen Baum"}],
stream=True,
)
if isinstance(chat_completion, dict):
# Nicht gestreamt
print(chat_completion.choices[0].message.content)
else:
# Gestreamt
for token in chat_completion:
content = token["choices"][0]["delta"].get("content")
if content is not None:
print(content, end="", flush=True)
if __name__ == "__main__":
main()

🚀 Anbieter und Modelle

GPT-4

WebsiteProviderGPT-3.5GPT-4StreamStatusAuth
bing.comg4f.Provider.Bing✔️✔️Active
chat.geekgpt.orgg4f.Provider.GeekGpt✔️✔️✔️Inactive
gptchatly.comg4f.Provider.GptChatly✔️✔️Unknown
liaobots.siteg4f.Provider.Liaobots✔️✔️✔️Unknown
www.phind.comg4f.Provider.Phind✔️✔️Unknown
raycast.comg4f.Provider.Raycast✔️✔️✔️Unknown✔️

GPT-3.5

WebsiteProviderGPT-3.5GPT-4StreamStatusAuth
www.aitianhu.comg4f.Provider.AItianhu✔️✔️Unknown
chat3.aiyunos.topg4f.Provider.AItianhuSpace✔️✔️Unknown
e.aiask.meg4f.Provider.AiAsk✔️✔️Unknown
chat-gpt.orgg4f.Provider.Aichat✔️Unknown
www.chatbase.cog4f.Provider.ChatBase✔️✔️Active
chatforai.storeg4f.Provider.ChatForAi✔️✔️Unknown
chatgpt.aig4f.Provider.ChatgptAi✔️✔️Active
chatgptx.deg4f.Provider.ChatgptX✔️✔️Unknown
chat-shared2.zhile.iog4f.Provider.FakeGpt✔️✔️Inactive
freegpts1.aifree.siteg4f.Provider.FreeGpt✔️✔️Active
gptalk.netg4f.Provider.GPTalk✔️✔️Active
ai18.gptforlove.comg4f.Provider.GptForLove✔️✔️Active
gptgo.aig4f.Provider.GptGo✔️✔️Active
hashnode.comg4f.Provider.Hashnode✔️✔️Active
app.myshell.aig4f.Provider.MyShell✔️✔️Unknown
noowai.comg4f.Provider.NoowAi✔️✔️Unknown
chat.openai.comg4f.Provider.OpenaiChat✔️✔️Unknown✔️
theb.aig4f.Provider.Theb✔️✔️Unknown✔️
sdk.vercel.aig4f.Provider.Vercel✔️✔️Unknown
you.comg4f.Provider.You✔️✔️Active
chat9.yqcloud.topg4f.Provider.Yqcloud✔️✔️Unknown
chat.acytoo.comg4f.Provider.Acytoo✔️✔️Inactive
aibn.ccg4f.Provider.Aibn✔️✔️Inactive
ai.lsg4f.Provider.Ails✔️✔️Inactive
chatgpt4online.orgg4f.Provider.Chatgpt4Online✔️✔️Inactive
chat.chatgptdemo.netg4f.Provider.ChatgptDemo✔️✔️Inactive
chatgptduo.comg4f.Provider.ChatgptDuo✔️Inactive
chatgptfree.aig4f.Provider.ChatgptFree✔️Inactive
chatgptlogin.aig4f.Provider.ChatgptLogin✔️✔️Inactive
cromicle.topg4f.Provider.Cromicle✔️✔️Inactive
gptgod.siteg4f.Provider.GptGod✔️✔️Inactive
opchatgpts.netg4f.Provider.Opchatgpts✔️✔️Inactive
chat.ylokh.xyzg4f.Provider.Ylokh✔️✔️Inactive

Andere

WebsiteProviderGPT-3.5GPT-4StreamStatusAuth
bard.google.comg4f.Provider.BardUnknown✔️
deepinfra.comg4f.Provider.DeepInfra✔️Active
huggingface.cog4f.Provider.HuggingChat✔️Active✔️
www.llama2.aig4f.Provider.Llama2✔️Unknown
open-assistant.iog4f.Provider.OpenAssistant✔️Inactive✔️

Modelle

ModelBase ProviderProviderWebsite
palmGoogleg4f.Provider.Bardbard.google.com
h2ogpt-gm-oasst1-en-2048-falcon-7b-v3Hugging Faceg4f.Provider.H2owww.h2o.ai
h2ogpt-gm-oasst1-en-2048-falcon-40b-v1Hugging Faceg4f.Provider.H2owww.h2o.ai
h2ogpt-gm-oasst1-en-2048-open-llama-13bHugging Faceg4f.Provider.H2owww.h2o.ai
claude-instant-v1Anthropicg4f.Provider.Vercelsdk.vercel.ai
claude-v1Anthropicg4f.Provider.Vercelsdk.vercel.ai
claude-v2Anthropicg4f.Provider.Vercelsdk.vercel.ai
command-light-nightlyCohereg4f.Provider.Vercelsdk.vercel.ai
command-nightlyCohereg4f.Provider.Vercelsdk.vercel.ai
gpt-neox-20bHugging Faceg4f.Provider.Vercelsdk.vercel.ai
oasst-sft-1-pythia-12bHugging Faceg4f.Provider.Vercelsdk.vercel.ai
oasst-sft-4-pythia-12b-epoch-3.5Hugging Faceg4f.Provider.Vercelsdk.vercel.ai
santacoderHugging Faceg4f.Provider.Vercelsdk.vercel.ai
bloomHugging Faceg4f.Provider.Vercelsdk.vercel.ai
flan-t5-xxlHugging Faceg4f.Provider.Vercelsdk.vercel.ai
code-davinci-002OpenAIg4f.Provider.Vercelsdk.vercel.ai
gpt-3.5-turbo-16kOpenAIg4f.Provider.Vercelsdk.vercel.ai
gpt-3.5-turbo-16k-0613OpenAIg4f.Provider.Vercelsdk.vercel.ai
gpt-4-0613OpenAIg4f.Provider.Vercelsdk.vercel.ai
text-ada-001OpenAIg4f.Provider.Vercelsdk.vercel.ai
text-babbage-001OpenAIg4f.Provider.Vercelsdk.vercel.ai
text-curie-001OpenAIg4f.Provider.Vercelsdk.vercel.ai
text-davinci-002OpenAIg4f.Provider.Vercelsdk.vercel.ai
text-davinci-003OpenAIg4f.Provider.Vercelsdk.vercel.ai
llama13b-v2-chatReplicateg4f.Provider.Vercelsdk.vercel.ai
llama7b-v2-chatReplicateg4f.Provider.Vercelsdk.vercel.ai

🔗 Verwandte GPT4Free-Projekte

🎁 Projects⭐ Stars📚 Forks🛎 Issues📬 Pull requests
gpt4freeStarsForksIssuesPull Requests
gpt4free-tsStarsForksIssuesPull Requests
Free AI API's & Potential Providers ListStarsForksIssuesPull Requests
ChatGPT-CloneStarsForksIssuesPull Requests
ChatGpt Discord BotStarsForksIssuesPull Requests
Nyx-Bot (Discord)StarsForksIssuesPull Requests
LangChain gpt4freeStarsForksIssuesPull Requests
ChatGpt Telegram BotStarsForksIssuesPull Requests
ChatGpt Line BotStarsForksIssuesPull Requests
Action Translate ReadmeStarsForksIssuesPull Requests
Langchain Document GPTStarsForksIssuesPull Requests

🤝 Mitwirken

Erstellen Sie einen Anbieter mit AI-Tool

Rufen Sie im Terminal das Skript create_provider.py auf:

python etc/tool/create_provider.py
  1. Geben Sie Ihren Namen für den neuen Anbieter ein.
  2. Kopieren Sie den cURL-Befehl aus den Entwicklertools Ihres Browsers und fügen Sie ihn ein.
  3. Lassen Sie die KI den Anbieter für Sie erstellen.
  4. Passen Sie den Anbieter nach Ihren Bedürfnissen an.

Anbieter erstellen

  1. Überprüfen Sie die aktuelle Liste potenzieller Anbieter oder finden Sie Ihre eigene Anbieterquelle!
  2. Erstellen Sie eine neue Datei in g4f/Provider mit dem Namen des Anbieters.
  3. Implementieren Sie eine Klasse, die von BaseProvider erbt.
from __future__ import annotations
from ..typing import AsyncResult, Messages
from .base_provider import AsyncGeneratorProvider
class HogeService(AsyncGeneratorProvider):
url = "https://chat-gpt.com"
supports_gpt_35_turbo = True
working = True
@classmethod
async def create_async_generator(
cls,
model: str,
messages: Messages,
proxy: str = None,
**kwargs
) -> AsyncResult:
yield ""
  1. Hier können Sie die Einstellungen anpassen, zum Beispiel, wenn die Website Streaming unterstützt, setzen Sie supports_stream auf True...
  2. Schreiben Sie Code, um den Anbieter in create_async_generator anzufordern und die Antwort mit yield zurückzugeben, selbst wenn es sich um eine einmalige Antwort handelt. Zögern Sie nicht, sich bei anderen Anbietern inspirieren zu lassen.
  3. Fügen Sie den Namen des Anbieters in g4f/Provider/__init__.py hinzu.
from .HogeService import HogeService
__all__ = [
HogeService,
]
  1. Sie sind fertig! Testen Sie den Anbieter, indem Sie ihn aufrufen:
import g4f
response = g4f.ChatCompletion.create(model='gpt-3.5-turbo', provider=g4f.Provider.PROVIDERNAME,
messages=[{"role": "user", "content": "test"}], stream=g4f.Provider.PROVIDERNAME.supports_stream)
for message in response:
print(message, flush=True, end='')

🙌 Mitwirkende

Eine Liste der Mitwirkenden ist hier verfügbar. Die Datei Vercel.py enthält Code von vercel-llm-api von @ading2210, der unter der GNU GPL v3 lizenziert ist. Top 1 Mitwirkender: @hlohaus

©️ Urheberrecht

This program is licensed under the GNU GPL v3

xtekky/gpt4free: Copyright (C) 2023 xtekky

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

⭐ Sternenverlauf

Star History Chart

📄 Lizenz


Dieses Projekt steht unter der GNU_GPL_v3.0-Lizenz.

(🔼 Zurück nach oben)

Описание

The official gpt4free repository | various collection of powerful language models

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.