Chat & Generieren#

Lernen, wie man mit LLM in Xinference chattet.

Introduction#

Modelle mit der Fähigkeit chat oder generate werden üblicherweise als große Sprachmodelle (LLM) oder Textgenerierungsmodelle bezeichnet. Diese Modelle sind darauf ausgelegt, basierend auf der erhaltenen Eingabe in Form von Textausgabe zu antworten, die oft als „Prompt“ bezeichnet wird. Im Allgemeinen können diese Modelle durch spezifische Anweisungen oder die Bereitstellung konkreter Beispiele zur Erfüllung von Aufgaben angeleitet werden.

Modelle mit generate-Fähigkeit sind in der Regel vortrainierte große Sprachmodelle. Andererseits sind Modelle mit chat-Funktion feinabgestimmte und ausgerichtete LLMs (Language Models), die speziell für Dialogszenarien optimiert wurden. In den meisten Fällen haben Modelle, die auf „chat“ enden (z. B. llama-2-chat, qwen-chat usw.), eine chat-Funktion.

Die Chat-API und die Generate-API bieten zwei verschiedene Methoden zur Interaktion mit LLMs:

  • Chat API (ähnlich der Chat Completion API von OpenAI) ermöglicht mehrrundige Dialoge.

  • Generate API (ähnlich wie OpenAIs Completions API) ermöglicht es Ihnen, Text basierend auf einem Textprompt zu generieren.

Modellfähigkeiten

API-Endpunkt

OpenAI-kompatibler Endpunkt

chat

Chat API

/v1/chat/completions

generate

Generate API

/v1/completions

Unterstützte Modellliste#

Sie können alle Fähigkeiten der in Xinference integrierten LLM-Modelle einsehen.

Chat-Modell#

Chat API#

Testen Sie die Chat-API mit cURL, dem OpenAI Client oder dem Python-Client von Xinference:

curl -X 'POST' \
  'http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "<MODEL_UID>",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "What is the largest animal?"
        }
    ],
    "max_tokens": 512,
    "temperature": 0.7
  }'

Du findest weitere Beispiele für die Chat-API in den Tutorial-Notebooks.

Gradio Chat

Beispiele zur Nutzung der Chat-API von Xinference und des Python-Clients.

https://github.com/xorbitsai/inference/blob/main/examples/gradio_chatinterface.py

Hybrid Thinking Model#

Einige große Sprachmodelle sind als Mischtyp gekennzeichnet und bieten die Option, den Denkmodus wahlweise zu aktivieren oder zu deaktivieren.

Added in version v1.17.0: Der request-level enable_thinking-Schalter wird in v1.17.0 unterstützt.

Xinference bietet einen anforderungsbezogenen enable_thinking-Schalter, der für verschiedene Modellvorlagen geeignet ist (z. B. verwendet Qwen enable_thinking, während einige DeepSeek-Vorlagen thinking verwenden).

Verwendungsbeispiel:

curl -X 'POST' \
  'http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "<MODEL_UID>",
    "messages": [
        {"role": "user", "content": "What is the largest animal?"}
    ],
    "enable_thinking": false
  }'

Generatives Modell#

Generate API#

Generate API repliziert das Completions API von OpenAI.

Der Hauptunterschied zwischen der Generate API und der Chat API liegt im Eingabeformat. Die Chat API akzeptiert eine Liste von Nachrichten als Eingabe, während die Generate API eine freitextliche Zeichenfolge namens „prompt“ als Eingabe akzeptiert.

curl -X 'POST' \
  'http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "<MODEL_UID>",
    "prompt": "What is the largest animal?",
    "max_tokens": 512,
    "temperature": 0.7
  }'

FAQ#

Bietet Xinference für LLMs eine Integrationsmöglichkeit mit LangChain oder LlamaIndex?#

Ja, du kannst die entsprechenden Abschnitte in den jeweiligen offiziellen Xinference-Dokumentationen einsehen. Hier sind die Links: