llm-gateway
ist ein Gateway für LLM-Anbieter von Drittanbietern wie OpenAI, Cohere usw. Es verfolgt die von diesen Anbietern in einer Postgres-Datenbank gesendeten und empfangenen Daten und führt vor dem Senden PII-Scrubbing-Heuristiken aus.
Laut OpenAIs Nicht-API-Verbraucherprodukt-Datennutzungsrichtlinien können sie "Inhalte wie Eingabeaufforderungen, Antworten, hochgeladene Bilder und generierte Bilder verwenden, um unsere Dienste zu verbessern", um Produkte wie Chatgpt und Dall-E zu verbessern.
Verwenden Sie llm-gateway
, um auf sichere Weise mit OpenAI zu interagieren. Das Gateway erstellt auch das Chatgpt -Frontend mithilfe von OpenAIs /ChatCompletion
-Endpunkt, um die gesamte Kommunikation innerhalb der API zu halten.
Anbieter | Modell |
---|---|
Openai | GPT 3.5 Turbo |
Openai | GPT 3.5 Turbo 16K |
Openai | GPT 4 |
AI21 Labors | Jurassic-2 Ultra |
AI21 Labors | Jurassic-2 Mid |
Amazonas | Titan Text Lite |
Amazonas | Titan Text Express |
Amazonas | Titan Text Einbettungen |
Anthropisch | Claude 2.1 |
Anthropisch | Claude 2.0 |
Anthropisch | Claude 1.3 |
Anthropisch | Claude Instant |
Zusammenhängen | Befehl |
Zusammenhängen | Befehlslicht |
Zusammenhängen | Einbett - Englisch |
Zusammenhängen | Einbett - mehrsprachig |
Meta | LAMA-2-13B-CHAT |
Meta | LAMA-2-70B-CHAT |
Der API -Schlüssel des Anbieters muss als Umgebungsvariable gespeichert werden (siehe weiter unten). Wenn Sie mit OpenAI kommunizieren, setzen Sie OPENAI_API_KEY
.
Für Schritt-für-Schritt-Setup-Anweisungen mit Cohere, Openai und AWS-Grundgestein klicken Sie hier.
[OpenAI] Beispiel Curl an /completion
Endpoint:
curl -X 'POST'
'http://<host>/api/openai/completion'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d '{
"temperature": 0,
"prompt": "Tell me what is the meaning of life",
"max_tokens": 50,
"model": "text-davinci-003"
}'
[OpenAI] Bei Verwendung des Endpunkts /chat_completion
als Gespräch zwischen Benutzer und Assistent.
curl -X 'POST'
'http://<host>/api/openai/chat_completion'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d '{
"messages": [
{"role": "assistant", "content": "You are an intelligent assistant."},
{"role": "user", "content": "create a healthy recipe"}
],
"model": "gpt-3.5-turbo",
"temperature": 0
}'
from llm_gateway . providers . openai import OpenAIWrapper
wrapper = OpenAIWrapper ()
wrapper . send_openai_request (
"Completion" ,
"create" ,
max_tokens = 100 ,
prompt = "What is the meaning of life?" ,
temperature = 0 ,
model = "text-davinci-003" ,
)
Dieses Projekt verwendet Poesie, Pyenv für Abhängigkeit und Umgebungsmanagement. Schauen Sie sich die offizielle Installationsdokumentation für Gedichte und Pyenv an, um loszulegen. Für den Front-End-Teil verwendet dieses Projekt NPM und Garn für das Abhängigkeitsmanagement. Die aktuellste Knotenversion, die für dieses Projekt benötigt wird, wird in .nodeversion deklariert.
Bei Verwendung von Docker sind die Schritte 1-3 optional. Wir empfehlen die Installation von Pre-Commit-Hooks, um den Entwicklungszyklus zu beschleunigen.
pyenv install 3.11.3
brew install gitleaks
poetry install
poetry run pre-commit install
cp .envrc.example .envrc
aus und aktualisieren Sie mit API -GeheimnissenIn Docker laufen:
# spin up docker-compose
make up
# open frontend in browser
make browse
# open FastAPI Swagger API
make browse-api
# delete docker-compose setup
make down