En FastAPI-basert proxy for OpenAI's API med støtte for streaming, token-håndtering og automatisk modell-validering. Designet for enkel deployment på Railway.app.
- 🚀 Full streaming-støtte for ChatGPT-responser
- 📊 Automatisk token-håndtering og justering
- ✅ Validering av modeller og parametre
- 🔄 CORS-støtte for web-integrasjoner
- 🏥 Innebygd helsesjekk-endepunkt
- 📝 Detaljert logging
- 🐳 Docker-støtte
POST /v1/chat/completions
- Hoved-endepunkt for chat completionsGET /health
- Helsesjekk-endepunktGET /
- API informasjon
- Python 3.9 eller nyere
- OpenAI API-nøkkel
- Git
- Docker (valgfritt)
OPENAI_API_KEY=din-api-nøkkel-her
PORT=8000 # Valgfri, standard er 8000
- Klon repositoriet:
git clone [repo-url]
cd [repo-navn]
- Installer avhengigheter:
pip install -r requirements.txt
- Opprett
.env
fil med din OpenAI API-nøkkel:
OPENAI_API_KEY=din-api-nøkkel-her
- Kjør applikasjonen:
python main.py
- Bygg Docker image:
docker build -t openai-proxy .
- Kjør container:
docker run -p 8000:8000 -e OPENAI_API_KEY=din-api-nøkkel-her openai-proxy
- Fork eller push dette repositoriet til GitHub
- Koble til Railway.app med GitHub
- Velg repositoriet i Railway
- Legg til miljøvariabel i Railway:
OPENAI_API_KEY
: Din OpenAI API-nøkkel
- Deploy!
import requests
import json
url = "din-railway-url/v1/chat/completions"
headers = {
"Content-Type": "application/json"
}
data = {
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hei, hvordan har du det?"
}
],
"temperature": 0.7
}
response = requests.post(url, headers=headers, json=data)
print(json.dumps(response.json(), indent=2))
import requests
url = "din-railway-url/v1/chat/completions"
headers = {
"Content-Type": "application/json"
}
data = {
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Fortell meg en historie"
}
],
"stream": True
}
response = requests.post(url, headers=headers, json=data, stream=True)
for line in response.iter_lines():
if line:
print(line.decode('utf-8'))
- gpt-4
- gpt-4-32k
- gpt-3.5-turbo
- gpt-3.5-turbo-16k
-
"OpenAI API key not found"
- Sjekk at OPENAI_API_KEY er satt korrekt i miljøvariabler
-
"Model not found"
- Verifiser at du bruker en støttet modell
-
"Token limit exceeded"
- Reduser lengden på meldingene eller juster max_tokens
Applikasjonen logger til stdout med detaljert informasjon om feil og forespørsler.
Bidrag er velkomne! Vennligst følg disse stegene:
- Fork repositoriet
- Opprett en feature branch
- Commit endringene dine
- Push til branchen
- Åpne en Pull Request
Dette prosjektet er lisensiert under MIT Lisens.