Serverul compatibil OpenAI (endpoint-uri) în vLLM & Infrastructură LLM

API-urile OpenAI implementate de vllm serve și felul în care le apelezi cu clientul OpenAI sau cu curl.

Sintaxă & invocare
GET /v1/models | POST /v1/completions | POST /v1/chat/completions | POST /v1/responses | POST /v1/embeddings | POST /v1/audio/transcriptions | POST /v1/audio/translations

Ce face Serverul compatibil OpenAI (endpoint-uri)

Serverul pornit cu vllm serve implementează: Completions (/v1/completions, doar modele de generare de text, fără parametrul suffix), Chat Completions (/v1/chat/completions, cere chat template; user este ignorat), Chat Completions batch (/v1/chat/completions/batch), Responses (/v1/responses, /v1/responses/{response_id}, /v1/responses/{response_id}/cancel), Embeddings (/v1/embeddings, modele de embedding), Transcriptions și Translations (/v1/audio/transcriptions, /v1/audio/translations, modele ASR). Lista modelelor este la /v1/models.

Parametrii vLLM care nu există în API-ul OpenAI (de exemplu top_k sau structured_outputs) se trimit prin extra_body în clientul OpenAI sau direct în JSON. Antetul X-Request-Id în răspunsuri se activează cu --enable-request-id-headers. Apelurile de unelte cer --enable-auto-tool-choice și --tool-call-parser.

Cheia se setează cu --api-key sau VLLM_API_KEY. Ea autentifică doar căile /v1, /v2 și /inference; /invocations, care expune aceleași capacități ca /v1, rămâne neautentificat.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
/v1/models Lista modelelor servite (inclusiv adaptoarele LoRA).
/v1/completions Completare de text.
/v1/chat/completions Chat; acceptă streaming, unelte și conținut multimodal.
/v1/chat/completions/batch Mai multe conversații într-o cerere.
/v1/responses Responses API.
/v1/embeddings Embeddings.
/v1/audio/transcriptions, /v1/audio/translations Transcriere și traducere audio (modele ASR).
extra_body Parametri vLLM suplimentari, de exemplu {"top_k": 50}.

Exemple practice

Exemplul 1: Pornirea serverului cu cheie

vllm serve NousResearch/Meta-Llama-3-8B-Instruct \
  --dtype auto \
  --api-key token-abc123

Exemplul 2: Client Python OpenAI

from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="token-abc123",
)

completion = client.chat.completions.create(
    model="NousResearch/Meta-Llama-3-8B-Instruct",
    messages=[
        {"role": "user", "content": "Hello!"},
    ],
)

print(completion.choices[0].message)

Exemplul 3: Completions cu curl

Din Quickstart, cu serverul pornit pentru Qwen/Qwen2.5-1.5B-Instruct.

curl http://localhost:8000/v1/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "Qwen/Qwen2.5-1.5B-Instruct",
        "prompt": "San Francisco is a",
        "max_tokens": 7,
        "temperature": 0
    }'

Greșeli frecvente și bune practici

  • Trimiți parametri vLLM (de exemplu top_k) ca argumente directe ale clientului OpenAI; folosește extra_body.
  • Apelezi /v1/chat/completions pentru un model fără chat template. Fie dai --chat-template, fie folosești /v1/completions.
  • Consideri serverul securizat doar prin --api-key; pune-l în spatele unui reverse proxy.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Serverul compatibil OpenAI (endpoint-uri)

Ai o întrebare despre Serverul compatibil OpenAI (endpoint-uri) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.