Ling 3.0 Flash VL akzeptiert Text-, Bild- und Videoeingaben über die OpenAI-kompatible API von Novita AI. Setzen Sie https://api.novita.ai/openai als Basis-URL, verwenden Sie inclusionai/ling-3.0-flash-vl als Modell-ID und platzieren Sie eine Bild-URL oder Daten-URL in einer standardmäßigen Chat-Completions-Nachricht. Diese Anleitung konzentriert sich auf Einrichtung, Bildanfragen, Video-Workflows, Funktionsaufrufe, Reasoning-Steuerung und Produktionsprüfungen.
Informationen zu Positionierung, Verfügbarkeit und Katalogkontext des Modells finden Sie unter Ling 3.0 Flash VL auf Novita AI: Launch, Funktionen und Preise. Für eine reine Textintegration vergleichen Sie diese Anleitung mit dem Ling 3.0 Flash API Schnellstart.
Was Sie benötigen
| Element | Wert |
|---|---|
| API-Schlüssel | Ein Novita-AI-API-Schlüssel in NOVITA_API_KEY |
| OpenAI-kompatible Basis-URL | https://api.novita.ai/openai |
| Chat-Completions-Endpunkt | POST https://api.novita.ai/openai/v1/chat/completions |
| Modell-ID | inclusionai/ling-3.0-flash-vl |
Der Novita-AI-LLM-Leitfaden dokumentiert die Einrichtung des OpenAI-kompatiblen Clients. Der Vision-Language-Leitfaden dokumentiert das content-Array-Format, image_url-Einträge, Bilddetails und Base64-Daten-URLs. Die am 9. September 2026 geprüfte Modellseite listet Text-, Bild- und Videoeingabe, Textausgabe, Funktionsaufrufe, Reasoning, ein 256K-Kontextfenster und eine maximale Ausgabe von 32K auf.
Exportieren Sie den Schlüssel in Ihrer Shell, anstatt ihn in den Quellcode zu schreiben:
export NOVITA_API_KEY="your_api_key"
Python-Bildanfrage
Das OpenAI-Python-SDK akzeptiert für content der Benutzernachricht ein Array. Setzen Sie die visuelle Eingabe an den Anfang und fügen Sie die Anweisung als separates Textelement hinzu.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.novita.ai/openai",
api_key=os.environ["NOVITA_API_KEY"],
)
response = client.chat.completions.create(
model="inclusionai/ling-3.0-flash-vl",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/receipt.jpg",
"detail": "high",
},
},
{
"type": "text",
"text": "Extract the merchant, date, and total. If a field is not legible, say so.",
},
],
}
],
max_tokens=256,
temperature=0.2,
)
print(response.choices[0].message.content)
detail kann low, high oder auto sein. Verwenden Sie high für kleinen Text und feine visuelle Details; beginnen Sie mit low oder auto, wenn die Latenz wichtig ist. Bildeingaben werden tokenisiert und zusammen mit Text gezählt. Messen Sie daher Kosten und Qualität an repräsentativen Bildern.
cURL-Bildanfrage
Dieselbe Payload funktioniert aus einem Shell-Skript. --fail-with-body hält HTTP-Fehler sichtbar und gibt einen Exit-Status ungleich Null zurück.
curl --fail-with-body "https://api.novita.ai/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${NOVITA_API_KEY}" \
-d '{
"model": "inclusionai/ling-3.0-flash-vl",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/diagram.png",
"detail": "auto"
}
},
{
"type": "text",
"text": "Describe the main components and their connections."
}
]
}
],
"max_tokens": 512,
"temperature": 0.2
}'
Ersetzen Sie bei einem privaten lokalen Bild die Remote-URL durch eine Daten-URL wie data:image/jpeg;base64,<base64_image_bytes>. Achten Sie darauf, dass der MIME-Typ zur kodierten Datei passt, und protokollieren Sie keine Anfrage-Bodies, die private Bilder enthalten.
Umgang mit Videoeingaben
Die aktuelle Ling-3.0-Flash-VL-Modellauflistung führt Video unter den Eingabemodalitäten auf. Der öffentliche Novita-Vision-Leitfaden dokumentiert die oben beschriebene portable OpenAI-kompatible Bild-Payload, definiert jedoch kein separates generisches video_url-Nachrichtenschema. Erfinden Sie in einem Produktionsclient keins.
Für einen portablen Video-Verstehens-Workflow extrahieren Sie repräsentative Frames, senden Sie sie als mehrere image_url-Elemente und fügen Sie Zeitstempel in den Prompt ein. Der Vision-Leitfaden empfiehlt nicht mehr als zwei Bilder pro Anfrage. Entnehmen Sie daher kurze Fenster oder führen Sie mehrere Aufrufe aus:
ffmpeg -ss 00:00:05 -i input.mp4 -vf "fps=1/5,scale=1280:-2" -frames:v 2 frame-%02d.jpg
Die resultierenden Frames können gesendet werden, indem das Bildelement in der Python- oder cURL-Payload wiederholt wird. Falls die aktuelle API-Referenz für Ihr Konto eine native Video-Content-Struktur bereitstellt, folgen Sie dieser Referenz und validieren Sie sie zunächst mit einem kurzen Clip. Die Modellauflistung bestätigt die Videofähigkeit; das Übertragungsformat muss gegen die Live-API-Dokumentation für Ihre Integration geprüft werden.
Funktionsaufrufe mit visuellem Kontext
Funktionsaufrufe sind nützlich, wenn das Modell das Gesehene in eine Anwendungsaktion umsetzen soll. Halten Sie das Tool eng begrenzt und validieren Sie seine Argumente im Anwendungscode.
tools = [
{
"type": "function",
"function": {
"name": "flag_document",
"description": "Send a document for manual verification.",
"parameters": {
"type": "object",
"properties": {
"reason": {"type": "string", "description": "Why review is needed."},
"page_or_frame": {"type": "string", "description": "Page or video timestamp."},
},
"required": ["reason"],
},
},
}
]
response = client.chat.completions.create(
model="inclusionai/ling-3.0-flash-vl",
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://example.com/document.jpg"}},
{"type": "text", "text": "Flag this document if key fields are unclear."},
],
}
],
tools=tools,
tool_choice="auto",
max_tokens=256,
temperature=0.1,
)
message = response.choices[0].message
if message.tool_calls:
for call in message.tool_calls:
print(call.function.name, call.function.arguments)
else:
print(message.content)
Behandeln Sie Tool-Argumente als nicht vertrauenswürdige Modellausgabe. Validieren Sie das JSON, prüfen Sie Berechtigungen und führen Sie die Funktion außerhalb des Modells aus. Eine visuelle Beobachtung sollte ohne die von Ihrem Workflow geforderten Prüfungen keine irreversible Aktion direkt auslösen.
Reasoning-Steuerung
Die OpenAI-kompatible Chat-Completions-API von Novita enthält die Felder enable_thinking und separate_reasoning; die Ling-3.0-Flash-VL-Auflistung umfasst Reasoning-Unterstützung. Testen Sie diese Felder mit einer kleinen Anfrage, bevor Sie sie zu einem Produktions-Wrapper hinzufügen:
response = client.chat.completions.create(
model="inclusionai/ling-3.0-flash-vl",
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://example.com/chart.png"}},
{"type": "text", "text": "Compare the two trends and state which one needs investigation."},
],
}
],
enable_thinking=True,
separate_reasoning=True,
max_tokens=512,
temperature=0.2,
)
print(response.choices[0].message)
Reasoning-Ausgaben können Antwort-Parsing und Latenz verändern. Wenn Ihre Anwendung nur eine Bildunterschrift oder einen Tool-Aufruf benötigt, lassen Sie diese Felder weg und vergleichen Sie zuerst die Qualität mit der einfacheren Anfrage.
Integrations-Checkliste
Bevor Sie über einen Smoke-Test hinausgehen:
- Bestätigen Sie die exakte Modell-ID und den Endpunkt, anstatt den Anzeigenamen zu verwenden.
- Testen Sie eine öffentliche Bild-URL, dann eine Base64-Daten-URL, und validieren Sie die Verarbeitung privater Bilder separat.
- Begrenzen Sie
max_tokensund protokollieren Sie Nutzung und Latenz, ohne unnötige Bildinhalte aufzubewahren. - Testen Sie die Bildeinstellungen für Details an kleinem Text, Diagrammen und gewöhnlichen Fotos.
- Validieren Sie Tool-Argumente vor der Ausführung und behandeln Sie Antworten ohne Tool-Aufruf.
- Definieren Sie für Video-Workflows Frame-Sampling, Zeitstempelverfolgung und die native Video-Payload, die von der Live-API-Referenz unterstützt wird.
- Prüfen Sie vor der Produktion erneut Modellverfügbarkeit, Preise und Limits; Katalogwerte können sich ändern.
FAQ
Welche Modell-ID sollte ich verwenden?
Verwenden Sie inclusionai/ling-3.0-flash-vl. Ling 3.0 Flash VL ist der Anzeigename, nicht der Request-Wert.
Welchen Endpunkt verwendet diese Anleitung?
Verwenden Sie https://api.novita.ai/openai als SDK-Basis-URL oder senden Sie cURL-Anfragen an https://api.novita.ai/openai/v1/chat/completions.
Wie sende ich ein Bild?
Fügen Sie der Benutzernachricht ein content-Array mit einem image_url-Element und einem text-Element hinzu. Die Bild-URL kann auf ein erreichbares Bild verweisen oder eine Base64-Daten-URL verwenden.
Akzeptiert das Modell Video?
Die am 9. September 2026 geprüfte Novita-Modellauflistung führt Video als Eingabemodalität auf. Der öffentliche Vision-Leitfaden dokumentiert keine generische direkte Video-Nachrichtenstruktur. Bestätigen Sie daher die Live-API-Referenz, bevor Sie eine native Video-Payload senden. Ein Frame-Sampling-Workflow ist der portable Fallback.
Unterstützt es Funktionsaufrufe und Reasoning?
Die aktuelle Novita-Auflistung enthält beide Funktionen. Die obigen Beispiele zeigen tools, enable_thinking und separate_reasoning. Testen Sie Antwortstruktur und Latenz mit Ihrer eigenen Arbeitslast.
