openai API `max_completion_tokens` argument is ignored

Offen Anfängerfreundlich
#1,907 0 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
65/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
api, backend

Rechercherichtung

Untersuche den Server-Code, der den OpenAI-kompatiblen Chat-Completions-Endpunkt verarbeitet, wahrscheinlich in llama_cpp/server/app.py oder einer ähnlichen Datei. Finde heraus, wo die Request-Parameter geparst werden und wo max_tokens verwendet wird. Vergleiche dies damit, wie max_completion_tokens behandelt werden sollte. Prüfe die OpenAI API-Spezifikation auf den Parameternamen. Die Korrektur besteht darin sicherzustellen, dass max_completion_tokens gelesen und an die Generierungslogik übergeben wird. Teste dies, indem du den Server startest und das bereitgestellte Client-Skript verwendest, um zu überprüfen, dass das Token-Limit eingehalten wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Prerequisites

Please answer the following questions for yourself before submitting an issue.

  • I am running the latest code. Development is very rapid so there are no tagged versions as of now.
  • I carefully followed the README.md.
  • I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).
  • I reviewed the Discussions, and have a new bug or useful enhancement to share.

Current Behavior

I'm running llama-server with following command:

python3 -m llama_cpp.server --model models/mys/ggml_llava-v1.5-13b/ggml-model-q4_k.gguf --clip_model_path models/mys/ggml_llava-v1.5-13b/mmproj-model-f16.gguf --model_alias llava-v1.5-13b-q4_k --chat_format llava-1-5 --port 10322

(models downloaded from https://huggingface.co/mys/ggml_llava-v1.5-13b/tree/main)

When I call the server using openai python package:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:10322/v1", # "http://<Your api-server IP>:port"
    api_key = "sk-no-key-required"
)

chat_completion = client.chat.completions.create(
    model="models/mys/ggml_llava-v1.5-13b/ggml-model-q4_k.gguf",
    messages=[
        {"role": "user", "content": "Write a limerick about python exceptions"}
    ],
    max_tokens=3,
)
print(chat_completion.usage.completion_tokens)  # returns 3, ok.
print(chat_completion.choices[0].finish_reason)  # returns "length", ok.

chat_completion = client.chat.completions.create(
    model="models/mys/ggml_llava-v1.5-13b/ggml-model-q4_k.gguf",
    messages=[
        {"role": "user", "content": "Write a limerick about python exceptions"}
    ],
    max_completion_tokens=3,
)
print(chat_completion.usage.completion_tokens)  # returns much more than 3 (complete answer).
print(chat_completion.choices[0].finish_reason)   # returns "stop".

According to OpenAI API, max_completion_tokens argument is replacing the deprecated max_tokens argument.
It's seems that only max_tokens is not ignored by the server.

Environment and Context

llama_cpp installed with pip install llama-cpp-python[server]
print(llama_cpp.__version__): 0.3.6
print(openai.__version__): 1.59.7

Vorherrschende Sprache
Python
Sterne
10.6k
Forks
1.5k
Ø Merge
23 Min.
Gemergte PRs (30 T.)
1

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus abetlen/llama-cpp-python

Alle Issues in abetlen/llama-cpp-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.