В 22:00 МСК будет объявлен перерыв - 10 минут. Вы отдыхаете - мы обновляем!

gpt4free

Форк
3

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.com
g4f.Provider.Bing
✔️✔️Active
chat.geekgpt.org
g4f.Provider.GeekGpt
✔️✔️✔️Inactive
gptchatly.com
g4f.Provider.GptChatly
✔️✔️Unknown
liaobots.site
g4f.Provider.Liaobots
✔️✔️✔️Unknown
www.phind.com
g4f.Provider.Phind
✔️✔️Unknown
raycast.com
g4f.Provider.Raycast
✔️✔️✔️Unknown✔️

GPT-3.5

WebsiteProviderGPT-3.5GPT-4StreamStatusAuth
www.aitianhu.com
g4f.Provider.AItianhu
✔️✔️Unknown
chat3.aiyunos.top
g4f.Provider.AItianhuSpace
✔️✔️Unknown
e.aiask.me
g4f.Provider.AiAsk
✔️✔️Unknown
chat-gpt.org
g4f.Provider.Aichat
✔️Unknown
www.chatbase.co
g4f.Provider.ChatBase
✔️✔️Active
chatforai.store
g4f.Provider.ChatForAi
✔️✔️Unknown
chatgpt.ai
g4f.Provider.ChatgptAi
✔️✔️Active
chatgptx.de
g4f.Provider.ChatgptX
✔️✔️Unknown
chat-shared2.zhile.io
g4f.Provider.FakeGpt
✔️✔️Inactive
freegpts1.aifree.site
g4f.Provider.FreeGpt
✔️✔️Active
gptalk.net
g4f.Provider.GPTalk
✔️✔️Active
ai18.gptforlove.com
g4f.Provider.GptForLove
✔️✔️Active
gptgo.ai
g4f.Provider.GptGo
✔️✔️Active
hashnode.com
g4f.Provider.Hashnode
✔️✔️Active
app.myshell.ai
g4f.Provider.MyShell
✔️✔️Unknown
noowai.com
g4f.Provider.NoowAi
✔️✔️Unknown
chat.openai.com
g4f.Provider.OpenaiChat
✔️✔️Unknown✔️
theb.ai
g4f.Provider.Theb
✔️✔️Unknown✔️
sdk.vercel.ai
g4f.Provider.Vercel
✔️✔️Unknown
you.com
g4f.Provider.You
✔️✔️Active
chat9.yqcloud.top
g4f.Provider.Yqcloud
✔️✔️Unknown
chat.acytoo.com
g4f.Provider.Acytoo
✔️✔️Inactive
aibn.cc
g4f.Provider.Aibn
✔️✔️Inactive
ai.ls
g4f.Provider.Ails
✔️✔️Inactive
chatgpt4online.org
g4f.Provider.Chatgpt4Online
✔️✔️Inactive
chat.chatgptdemo.net
g4f.Provider.ChatgptDemo
✔️✔️Inactive
chatgptduo.com
g4f.Provider.ChatgptDuo
✔️Inactive
chatgptfree.ai
g4f.Provider.ChatgptFree
✔️Inactive
chatgptlogin.ai
g4f.Provider.ChatgptLogin
✔️✔️Inactive
cromicle.top
g4f.Provider.Cromicle
✔️✔️Inactive
gptgod.site
g4f.Provider.GptGod
✔️✔️Inactive
opchatgpts.net
g4f.Provider.Opchatgpts
✔️✔️Inactive
chat.ylokh.xyz
g4f.Provider.Ylokh
✔️✔️Inactive

Andere

WebsiteProviderGPT-3.5GPT-4StreamStatusAuth
bard.google.com
g4f.Provider.Bard
Unknown✔️
deepinfra.com
g4f.Provider.DeepInfra
✔️Active
huggingface.co
g4f.Provider.HuggingChat
✔️Active✔️
www.llama2.ai
g4f.Provider.Llama2
✔️Unknown
open-assistant.io
g4f.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

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)

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

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

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

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