Zum Inhalt springen
InfercomInfercomInfercom Documentation

Funktionen

Vision- und Multimodalitätsfunktionen implementieren - Entwicklerhandbuch

Verarbeiten Sie Bilder mit dem EU-souveränen Vision-Modell von Infercom. Analysieren Sie Bilder und generieren Sie kontextbewusste Textantworten mit vollständiger DSGVO-Konformität.

Infercom bietet Zugang zu vision-fähigen Modellen auf unserer EU-souveränen Infrastruktur, die es Ihnen ermöglicht, sowohl Text als auch Bilder mit vollständiger Datensouveränität zu verarbeiten. Diese Modelle analysieren Bilder und generieren kontextbewusste Textantworten.

Modell Kontext Region Hinweise
gemma-4-31B-it 128K EU Googles Gemma 4 31B mit Vision-Fähigkeiten

Bei Infercom folgt die Vision-Modellanfrage dem multimodalen Eingabeformat von OpenAI, das sowohl Text- als auch Bildeingaben in einer strukturierten Payload akzeptiert. Während der Aufruf ähnlich der Textgenerierung ist, unterscheidet er sich durch die Einbeziehung einer kodierten Bilddatei, die über die Variable image_path referenziert wird. Eine Hilfsfunktion wird verwendet, um dieses Bild in einen Base64-String zu konvertieren, wodurch es zusammen mit dem Text in der Anfrage übergeben werden kann.

  1. Schritt 1

    Erstellen Sie eine neue Python-Datei und kopieren Sie den unten stehenden Code.

    from sambanova import SambaNova
    import base64
    client = SambaNova(
    base_url="https://api.infercom.ai/v1",
    api_key="ihr-infercom-api-schluessel",
    )
    # Hilfsfunktion zum Kodieren des Bildes
    def encode_image(image_path):
    with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')
    # Der Pfad zu Ihrem Bild
    image_path = "beispiel.JPEG"
    # Der Base64-String des Bildes
    image_base64 = encode_image(image_path)
    print(image_base64)
    response = client.chat.completions.create(
    model="gemma-4-31B-it",
    messages=[
    {
    "role": "user",
    "content": [
    {"type": "text", "text": "Was passiert in diesem Bild?"},
    {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_base64}"}}
    ]
    }
    ]
    )
    print(response.choices[0].message.content)
  2. Schritt 2

    Verwenden Sie Ihren Infercom API-Schlüssel von der Seite API-Schlüssel und URLs, um den Platzhalter "ihr-infercom-api-schluessel" in der Konstruktion des Clients zu ersetzen.

  3. Schritt 3

    Wählen Sie ein Bild aus und verschieben Sie es zu einem geeigneten Pfad, den Sie in den Zeilen angeben können.

    # Der Pfad zu Ihrem Bild
    image_path = "beispiel.JPEG"
  4. Schritt 4

    Überprüfen Sie den Prompt, der mit dem Bild im content-Teil des user-Prompts gepaart werden soll.

  5. Schritt 5

    Führen Sie die Python-Datei aus, um die Textausgabe zu erhalten.

Vision-Anfragen unterstützen dieselben Optionen tools, tool_choice und response_format wie reine Textanfragen. Die Einschränkung wird während der Generierung angewendet. Ein erzwungener Tool-Aufruf oder ein striktes JSON-Schema wird daher auch bei einer Anfrage mit Bild eingehalten.

Option Verhalten bei einer Anfrage mit Bild
tool_choice mit einem Funktionsnamen Das Modell gibt diesen Tool-Aufruf zurück. finish_reason ist tool_calls
tool_choice: "none" Das Modell gibt reinen Text zurück. finish_reason ist stop
response_format: {"type": "json_schema", ...} Das Modell gibt JSON zurück, das dem Schema entspricht
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.infercom.ai/v1",
api_key="ihr-infercom-api-schluessel",
)
with open("beispiel.JPEG", "rb") as image_file:
image_base64 = base64.b64encode(image_file.read()).decode("utf-8")
tools = [{
"type": "function",
"function": {
"name": "report_colors",
"parameters": {
"type": "object",
"properties": {"colors": {"type": "array", "items": {"type": "string"}}},
"required": ["colors"],
},
},
}]
response = client.chat.completions.create(
model="gemma-4-31B-it",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Welche Farben erscheinen in diesem Bild?"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_base64}"}},
],
}
],
tools=tools,
tool_choice={"type": "function", "function": {"name": "report_colors"}},
max_tokens=200,
temperature=1.0,
)
print(response.choices[0].message.tool_calls[0].function.arguments)

Den vollständigen Ablauf für Tool-Aufrufe finden Sie unter Function Calling und JSON-Modus.

Wenn die API Ihr Bild nicht dekodieren kann, gibt sie HTTP 400 zurück. Dies ist ein permanenter Fehler. Wiederholen Sie die Anfrage nicht. Prüfen Sie, ob der Base64-String vollständig ist und ob der MIME-Typ in der data:-URL zur Datei passt.

Bilder verbrauchen Prompt-Tokens. Ein großes Bild zusammen mit einem langen Prompt kann das Kontextlimit des Modells von 128K überschreiten und einen context_length_exceeded-Fehler zurückgeben. Prüfen Sie usage.prompt_tokens in der Antwort, um zu sehen, wie viele Tokens ein Bild kostet.