Vereinfachtes Chinesisch |
Features |
Wichtig
Nach V0.7.0 werden große Konfigurationsanpassungen vorhanden und mit früheren Versionen nicht kompatibel sein. Es ist bequemer, über die Benutzeroberfläche zu konfigurieren, und bietet leistungsstärkere Konfigurationsoptionen.
OpenAI-Forward ist ein effizienter Weiterleitungsservice für Großsprachenmodelle. Zu den Kernfunktionen gehören Benutzeranforderungsrate, Token -Rate -Limiting, intelligente Vorhersage -Caching, Protokollverwaltung und API -Schlüsselmanagement usw., um effiziente und bequeme Modell -Weiterleitungsdienste bereitzustellen. Unabhängig davon, ob es sich um ein Proxy -lokaler Sprachmodell oder ein Cloud -Sprachmodell wie Localai oder OpenAI handelt, kann es einfach durch OpenAI -Stürmer implementiert werden. Dank der Unterstützung von Bibliotheken wie Uvicorn, AIOHTTP und Asyncio erzielt Openai-Forward eine hervorragende asynchrone Leistung.
Die von diesem Projekt erstellte Agent -Service -Adresse:
Original OpenAI -Serviceadresse
https://api.openai-forward.com
https://render.openai-forward.com
Die Serviceadresse, mit der Cache ermöglicht wird (das Ergebnis der Benutzeranforderung wird für einen bestimmten Zeitraum gespeichert)
https://smart.openai-forward.com
Stellen Sie die Dokumentation ein
Installieren
pip install openai-forward
# 或安装webui版本:
pip install openai-forward[webui]Starten Sie den Service
aifd run
# 或启动带webui的服务
aifd run --webui Wenn Sie die .env -Konfiguration des Stammpfads lesen, sehen Sie die folgenden Startinformationen
❯ aifd run
╭────── ? openai-forward is ready to serve ! ───────╮
│ │
│ base url https://api.openai.com │
│ route prefix / │
│ api keys False │
│ forward keys False │
│ cache_backend MEMORY │
╰────────────────────────────────────────────────────╯
╭──────────── ⏱️ Rate Limit configuration ───────────╮
│ │
│ backend memory │
│ strategy moving-window │
│ global rate limit 100/minute (req) │
│ /v1/chat/completions 100/2minutes (req) │
│ /v1/completions 60/minute ; 600/hour (req) │
│ /v1/chat/completions 60/second (token) │
│ /v1/completions 60/second (token) │
╰────────────────────────────────────────────────────╯
INFO: Started server process [191471]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) Die Standardoption für aifd run ist Proxy https://api.openai.com
Das Folgende ist ein Beispiel für die festgelegte Serviceadresse https://api.openai-forward.com
Python
from openai import OpenAI # pip install openai>=1.0.0
client = OpenAI(
+ base_url="https://api.openai-forward.com/v1",
api_key="sk-******"
)Anwendbare Szenarien: Verwendet mit Localai, API-for-Open-LlM und anderen Projekten
Wie Sie es tun: Nehmen Sie als Beispiel FORWARD_CONFIG=[{"base_url":"http://localhost:8080","route":"/localai","type":"openai"}] . Sie können dann Localai verwenden, indem Sie http: // localhost: 8000/localai besuchen.
(Mehr)
Konfigurieren von Umgebungsvariablen oder .env -Dateien wie folgt:
FORWARD_CONFIG = [{"base_url":"https://generativelanguage.googleapis.com","route":"/gemini","type":"general"}] Hinweis: Nach dem Start aidf run können Sie Gemini Pro verwenden, indem Sie http: // localhost: 8000/Gemini besuchen.
Szenario 1: Verwenden Sie die universelle Weiterleitung, um Dienste von jeder Quelle zu leiten, und Sie können die Steuerung der Anforderungsrate und zur Kontrolle der Token erhalten.
Szenario 2: Die API -Formate vieler Cloud -Modelle können in OpenAIs API -Format über LitellM konvertiert und dann mit OpenAI -Stil weitergeleitet werden
(Mehr)
Führen Sie aifd run --webui aus, um die Konfigurationsseite einzugeben (Standarddienstadresse http: // localhost: 8001)
Sie können eine .EnV -Datei im Auslaufverzeichnis des Projekts erstellen, um verschiedene Konfigurationen anzupassen. Die .Env.Example -Datei im Stammverzeichnis ist in der Referenzkonfiguration zu sehen.
Nachdem der Cache aktiviert ist, wird der Inhalt der angegebenen Route zwischengespeichert, und die Weiterleitungsarten sind openai und general , und die Verhaltensweisen unterscheiden sich bei der Verwendung general Weiterleitung standardmäßig mit Cache.
Wenn Sie openai -Weiterleitung verwenden, können Sie nach dem Öffnen des Cache den OpenAI -Parameter von extra_body verwenden, um das Cache -Verhalten zu steuern, wie z. B.
Python
from openai import OpenAI
client = OpenAI(
+ base_url="https://smart.openai-forward.com/v1",
api_key="sk-******"
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Hello!"}
],
+ extra_body={"caching": True}
)Locken
curl https://smart.openai.com/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer sk-****** "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}],
"caching": true
} '
Siehe .Env -Datei
Anwendungsfälle:
import openai
+ openai.api_base = "https://api.openai-forward.com/v1"
- openai.api_key = "sk-******"
+ openai.api_key = "fk-******" Siehe .env.example für die Verwendung der Anwendungsfälle zum Weiterleiten von Diensten mit unterschiedlichen Adressen an unterschiedliche Routen zu demselben Port.
Der Speicherpfad befindet sich Log/openai/chat/chat.log aktuellen Verzeichnis im laufenden Verzeichnis.
Das Datensatzformat ist
{'messages': [{'role': 'user', 'content': 'hi'}], 'model': 'gpt-3.5-turbo', 'stream': True, 'max_tokens': None, 'n': 1, 'temperature': 1, 'top_p': 1, 'logit_bias': None, 'frequency_penalty': 0, 'presence_penalty': 0, 'stop': None, 'user': None, 'ip': '127.0.0.1', 'uid': '2155fe1580e6aed626aa1ad74c1ce54e', 'datetime': '2023-10-17 15:27:12'}
{'assistant': 'Hello! How can I assist you today?', 'is_tool_calls': False, 'uid': '2155fe1580e6aed626aa1ad74c1ce54e'}
Konvertieren in json -Format:
aifd convert Holen Sie sich chat_openai.json :
[
{
"datetime" : " 2023-10-17 15:27:12 " ,
"ip" : " 127.0.0.1 " ,
"model" : " gpt-3.5-turbo " ,
"temperature" : 1 ,
"messages" : [
{
"user" : " hi "
}
],
"tools" : null ,
"is_tool_calls" : false ,
"assistant" : " Hello! How can I assist you today? "
}
]Der Beitrag zu diesem Projekt ist willkommen, indem Sie eine Pull -Anfrage einreichen oder Fragen im Repository aufwerfen.
Openai-Forward verwendet eine MIT-Lizenz.