Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erweiterte API-Funktionen für importierte Modelle
Diese Seite enthält detaillierte Beispiele für erweiterte Funktionen, die für Modelle verfügbar sind, die nach dem 11. November 2025 importiert wurden. Zu diesen Funktionen gehören strukturierte Ausgaben für die kontrollierte Generierung, erweiterte Bildverarbeitungsunterstützung für die Verarbeitung mehrerer Bilder, Log-Wahrscheinlichkeiten für zuverlässige Erkenntnisse und Tools zum Aufrufen von Modellen. GPT-OSS
Strukturierte Ausgaben
Strukturierte Ausgaben ermöglichen eine kontrollierte Generierung nach bestimmten Formaten, Schemas oder Mustern. Diese Funktion stellt sicher, dass die Reaktion des Modells vordefinierten Einschränkungen entspricht. Dadurch eignet es sich ideal für Anwendungen, die konsistente Datenformate, API-Integrationen oder automatisierte Verarbeitungspipelines erfordern.
Strukturierte Ausgaben beim Import benutzerdefinierter Modelle werden über zwei Parameter unterstützt:
response_format- Unterstützungen json_object und json_schema Typen
structured_outputs- Unterstützt jsonregex,choice, und grammar Typen
Bei der Verwendung strukturierter Ausgaben beim Import benutzerdefinierter Modelle müssen Kunden aufgrund der Validierung von Einschränkungen bei der Generierung mit Leistungseinbußen rechnen. Einfache Einschränkungen wie choice und json_object haben nur minimale Auswirkungen, während komplexe Einschränkungen die Latenz erheblich erhöhen json_schema und den Durchsatz reduzieren grammar können. Um eine optimale Leistung zu erzielen, sollten Sie nach Möglichkeit einfachere Einschränkungstypen verwenden und Schemas flach statt tief verschachtelt halten.
Die folgenden Beispiele zeigen, dass strukturierte Ausgaben in verschiedenen API-Formaten unterstützt werden. Die Definition des pydantischen Modells lautet:
from pydantic import BaseModel
from enum import Enum
class CarType(str, Enum):
sedan = "sedan"
suv = "SUV"
truck = "Truck"
coupe = "Coupe"
class CarDescription(BaseModel):
brand: str
model: str
car_type: CarType
- BedrockCompletion
-
BedrockCompletion unterstützt strukturierte Ausgaben, bei denen nur die response_format Parameter with json_object und json_schema types verwendet werden.
Beispiel: JSON-Schema
payload = {
"prompt": "Generate a JSON with the brand, model and car_type of the most iconic car from the 90's",
"response_format": {
"type": "json_schema",
"json_schema": CarDescription.model_json_schema()
}
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
Beispielantwort:
{
"generation": "{\n \"brand\": \"Ferrari\",\n \"model\": \"F40\",\n \"car_type\": \"SUV\"\n }",
"prompt_token_count": 22,
"generation_token_count": 30,
"stop_reason": "stop",
"logprobs": null
}
- OpenAICompletion
-
Open AICompletion unterstützt sowohl die Parameter response_format (json_object, json_schema) als auch structured_outputs (json, regex, choice, grammar). Verwenden Sie anstelle von, um Anfragen max_tokens an Open weiterzuleiten. max_gen_len AICompletion
Beispiel: Strukturierte Ausgaben — Auswahl
payload = {
"prompt": "Classify the sentiment of this sentence. Amazon Bedrock CMI is Amazing!",
"max_tokens": 10,
"structured_outputs": {
"choice": ["positive", "negative"]
}
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
Beispielantwort:
{
"id": "cmpl-01f94c4652d24870bbb4d5418a01c384",
"object": "text_completion",
"choices": [
{
"index": 0,
"text": "positive",
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 17,
"completion_tokens": 4
}
}
- OpenAIChatCompletion
-
Open AIChat Completion unterstützt sowohl die response_format Parameter (json_object, json_schema) als auch structured_outputs (json, regex, choice, grammar).
Beispiel: Antwortformat — JSON-Schema
payload = {
"messages": [
{"role": "user", "content": "Generate a JSON with the brand, model and car_type of the most iconic car from the 90's"}
],
"max_tokens": 100,
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "car-description",
"schema": CarDescription.model_json_schema()
}
}
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
Beispielantwort:
{
"id": "chatcmpl-cae5a43b0a924b8eb434510cbf978a19",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "{\"brand\": \"Dodge\", \"model\": \"Viper\", \"car_type\": \"Coupe\"}"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 56,
"completion_tokens": 23
}
}
Support für das Sehvermögen
Die Bildverarbeitungsfunktionen ermöglichen die Verarbeitung von Bildern zusammen mit Texteingaben und bieten eine verbesserte Unterstützung mehrerer Bilder für komplexe visuelle Analyseaufgaben. Der Import benutzerdefinierter Modelle unterstützt jetzt bis zu 3 Bilder pro Anfrage, was gegenüber der bisherigen Beschränkung auf Einzelbilder verbessert wurde.
Unterstützte API: Nur Open AIChat Completion. Alle Modelle, die nach dem 11. November 2025 importiert wurden, verwenden standardmäßig diese API für Bildverarbeitungsfunktionen.
Anforderungen an das Bild:
Base64-Kodierung erforderlich — Das Bild URLs führt zu Anforderungsfehlern
Maximal 3 Bilder pro Anfrage
Bilder mit hoher Auflösung erhöhen die Verarbeitungszeit und den Speicherverbrauch erheblich
Bilder mit hoher Auflösung erhöhen die Verarbeitungszeit und den Speicherverbrauch erheblich und können zu Timeoutfehlern führen. Mehrere Bilder mit hoher Auflösung erhöhen die Leistungsauswirkungen exponentiell. Um eine optimale Leistung zu erzielen, sollten Sie die Bildgröße entsprechend anpassen und wenn möglich niedrigere Detailstufen verwenden.
- OpenAIChatCompletion
-
Beispiel: Verarbeitung mehrerer Bilder
import json
import boto3
import base64
client = boto3.client('bedrock-runtime', region_name='us-east-1')
# Load and encode images
with open('/path/to/car_image_1.jpg', 'rb') as f:
image_data_1 = base64.b64encode(f.read()).decode('utf-8')
with open('/path/to/car_image_2.jpg', 'rb') as f:
image_data_2 = base64.b64encode(f.read()).decode('utf-8')
payload = {
"messages": [
{
"role": "system",
"content": "You are a helpful assistant that can analyze images."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "Spot the difference between the two images?"
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{image_data_1}"
}
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{image_data_2}"
}
}
]
}
],
"max_tokens": 300,
"temperature": 0.5
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
Beispielantwort:
{
"id": "chatcmpl-ccae8a67e62f4014a9ffcbedfff96f44",
"object": "chat.completion",
"created": 1763167018,
"model": "667387627229-g6vkuhd609s4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "There are no differences between the two images provided. They appear to be identical.",
"refusal": null,
"annotations": null,
"audio": null,
"function_call": null,
"tool_calls": [],
"reasoning_content": null
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null,
"token_ids": null
}
],
"service_tier": null,
"system_fingerprint": null,
"usage": {
"prompt_tokens": 2795,
"total_tokens": 2812,
"completion_tokens": 17,
"prompt_tokens_details": null
},
"prompt_logprobs": null,
"prompt_token_ids": null,
"kv_transfer_params": null
}
Wahrscheinlichkeiten protokollieren
Logarithmische Wahrscheinlichkeiten stellen die Wahrscheinlichkeit jedes Tokens in einer Sequenz dar, berechnet als log (p), wobei p die Wahrscheinlichkeit ist, dass sich ein Token an einer beliebigen Position aufgrund seines vorherigen Tokens im Kontext befindet. Da Log-Probs additiv sind, entspricht die Sequenzwahrscheinlichkeit der Summe der einzelnen Token-Log-Probs, was sie nützlich macht, um Generationen anhand der durchschnittlichen Punktzahlen pro Token zu ordnen. Der benutzerdefinierte Modellimport gibt immer die Logprob-Rohwerte für die angeforderten Token zurück.
Zu den wichtigsten Anwendungen gehören Klassifizierungsaufgaben, bei denen Log-Probs benutzerdefinierte Konfidenzschwellen ermöglichen, Frage-und-Antwort-Systeme zum Abrufen, die Konfidenzwerte verwenden, um Halluzinationen zu reduzieren, Vorschläge zur automatischen Vervollständigung auf der Grundlage der Token-Wahrscheinlichkeit und Ratlosigkeitsberechnungen zum Vergleich der Modellleistung verschiedener Eingabeaufforderungen. Log Probs bieten auch Analysefunktionen auf Token-Ebene, sodass Entwickler alternative Tokens untersuchen können, die das Modell in Betracht gezogen hat.
Logprobs werden nicht zwischengespeichert. Bei einer Anfrage, die Eingabeaufforderungs-Logprobs erfordert, ignoriert das System den Präfix-Cache und berechnet die Vorausfüllung der vollständigen Eingabeaufforderung erneut, um die Logprobs zu generieren. Dies stellt bei der Verwendung von Logprobs einen offensichtlichen Leistungsverlust dar.
Die Unterstützung von Log-Wahrscheinlichkeiten variiert je nach API-Format:
BedrockCompletion - Nur Ausgabe-Tokens
Öffnen AICompletion — Eingabeaufforderung und Ausgabe von Tokens
AIChatAbschluss öffnen — Eingabeaufforderung und Ausgabe von Tokens
- BedrockCompletion
-
BedrockCompletion unterstützt nur Logprobs für Ausgabetokens. Dadurch wird für jedes Ausgabetoken die ersten Logprob-Einträge zurückgegeben.
payload = {
"prompt": "How is the rainbow formed?",
"max_gen_len": 10,
"temperature": 0.5,
"return_logprobs": True
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
Beispielantwort (gekürzt):
{
"generation": " A rainbow is formed when sunlight passes through water dro",
"prompt_token_count": 7,
"generation_token_count": 10,
"stop_reason": "length",
"logprobs": [
{
"362": -2.1413702964782715
},
{
"48713": -0.8180374503135681
},
{
"374": -0.09657637774944305
},
...
]
}
- OpenAIChatCompletion
-
Open AIChat Completion unterstützt sowohl Eingabeaufforderung- als auch Ausgabetoken-Logprobs. Sie können top_logprobs=N und angebenprompt_logprobs=N, wobei N eine Ganzzahl ist, die die Log-Wahrscheinlichkeiten für die N wahrscheinlichsten Token an jeder Position darstellt.
payload = {
"messages": [
{
"role": "user",
"content": "How is the rainbow formed?"
}
],
"max_tokens": 10,
"temperature": 0.5,
"logprobs": True,
"top_logprobs": 1,
"prompt_logprobs": 1
}
response = client.invoke_model(
modelId='your-model-arn',
body=json.dumps(payload),
accept='application/json',
contentType='application/json'
)
response_body = json.loads(response['body'].read())
Beispiel für eine Antwort (gekürzt):
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A rainbow is formed..."
},
"logprobs": {
"content": [
{
"token": "A",
"logprob": -0.07903262227773666,
"bytes": [65],
"top_logprobs": [
{
"token": "A",
"logprob": -0.07903262227773666,
"bytes": [65]
}
]
},
{
"token": " rainbow",
"logprob": -0.20187227427959442,
"bytes": [32, 114, 97, 105, 110, 98, 111, 119],
"top_logprobs": [...]
},
...
]
},
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 41,
"completion_tokens": 10,
"total_tokens": 51
}
}