Zum Inhalt springen

Queued Requests (Queue API)

Die /queue-Endpunkte funktionieren wie die /v2-Endpunkte, mit einem Unterschied: Wenn Sie Ihr Rate-Limit überschreiten, antwortet /v2 sofort mit 429 Too Many Requests, während /queue wartet, bis Ihr Limit wieder frei ist, und die Anfrage dann ausführt.

  • Innerhalb Ihres Limits: Die Anfrage wird sofort ausgeführt.
  • Über Ihrem Limit: Die Anfrage wartet. Limits werden jede Minute zurückgesetzt, daher wird sie zu Beginn jeder Minute erneut geprüft.
  • Es gibt keine maximale Wartezeit. Die Anfrage wartet, bis sie passt oder bis sie in ein Timeout läuft (das Timeout Ihres Clients oder ein Netzwerk-Timeout). Stellen Sie das Client-Timeout so ein, dass es die Wartezeit plus die Antwortzeit abdeckt.

Wenn Sie die Verbindung während des Wartens schließen, wird die Anfrage abgebrochen.

Eine einzelne Anfrage mit mehr Input-Tokens als Ihr Token-Limit pro Minute passt nie und wartet daher bis zum Timeout. Wenn Ihre Anfragen oft länger als ein bis zwei Minuten warten, senden Sie mehr, als Ihr Limit erlaubt: Senden Sie langsamer oder beantragen Sie ein höheres Limit.

  • Verwenden Sie /queue für Batch-Jobs, die gelegentlich über dem Limit liegen, damit kurze Spitzen warten statt fehlzuschlagen.
  • Verwenden Sie /v2 für interaktive Anwendungen, bei denen ein sofortiger 429 besser ist als Warten, und für lang laufende Anfragen (nutzen Sie Streaming).

Jeder Standard-Endpunkt hat ein /queue-Aequivalent:

Standard-EndpunktQueue-EndpunktBeschreibung
POST /v2/chat/completionsPOST /queue/chat/completionsChat Completion
POST /v2/completionsPOST /queue/completionsText Completion
POST /v2/embeddingsPOST /queue/embeddingsEmbeddings
POST /v2/audio/transcriptionsPOST /queue/audio/transcriptionsAudio Transcription
POST /v2/audio/translationsPOST /queue/audio/translationsAudio Translation
POST /v2/images/generationsPOST /queue/images/generationsImage Generation
POST /v2/images/editsPOST /queue/images/editsImage Edit
GET /v2/modelsGET /queue/modelsModelle auflisten

Der Request-Body fuer jeden Queue-Endpunkt ist identisch mit seinem Standard-Gegenstueck — aendern Sie einfach den Basispfad von /v2 zu /queue.

Senden Sie eine Chat Completion an die Warteschlange:

Terminal-Fenster
curl -X POST "https://llm-server.llmhub.t-systems.net/queue/chat/completions" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-oss-120b",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Write a detailed analysis of renewable energy trends in Europe."}
],
"max_tokens": 2000
}'

Verarbeiten Sie mehrere Prompts effizient ueber die Warteschlange:

import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
base_url="https://llm-server.llmhub.t-systems.net/queue",
)
prompts = [
"Summarize the benefits of solar energy.",
"Explain how wind turbines generate electricity.",
"Describe the future of hydrogen fuel cells.",
]
async def process_prompt(prompt):
response = await client.chat.completions.create(
model="gpt-oss-120b",
messages=[{"role": "user", "content": prompt}],
max_tokens=500,
)
return response.choices[0].message.content
async def main():
tasks = [process_prompt(p) for p in prompts]
results = await asyncio.gather(*tasks)
for prompt, result in zip(prompts, results):
print(f"Prompt: {prompt[:50]}...")
print(f"Result: {result[:100]}...\n")
asyncio.run(main())
from openai import OpenAI
client = OpenAI(
base_url="https://llm-server.llmhub.t-systems.net/queue",
)
response = client.embeddings.create(
model="text-embedding-bge-m3",
input="The benefits of renewable energy in Europe",
)
print(f"Embedding dimension: {len(response.data[0].embedding)}")
from openai import OpenAI
client = OpenAI(
base_url="https://llm-server.llmhub.t-systems.net/queue",
)
with open("meeting_recording.mp3", "rb") as audio_file:
transcript = client.audio.transcriptions.create(
model="whisper-large-v3",
file=audio_file,
)
print(transcript.text)
from openai import OpenAI
client = OpenAI(
base_url="https://llm-server.llmhub.t-systems.net/queue",
)
result = client.images.generate(
model="gpt-image-2",
prompt="A futuristic data center powered by renewable energy",
)
print(result.data[0].b64_json[:50] + "...")