Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden Funktionsaufrufe und deren Verwendung als Teil Ihrer generativen KI-Anwendungsworkflows beschrieben. Databricks Function Calling ist OpenAI-kompatibel und ist nur während des Modells verfügbar, das als Teil Foundation Model-APIs dient und Endpunkte bedient, die externen Modellendienen.
Was ist ein Funktionsaufruf?
Funktionenaufrufe ermöglichen es Ihnen, die Ausgabe von LLMs zu steuern, sodass strukturierte Antworten zuverlässiger generiert werden. Wenn Sie einen Funktionsaufruf verwenden, beschreiben Sie Funktionen im API-Aufruf, indem Sie die Funktionsargumente mithilfe eines JSON-Schemas beschreiben. Die LLM selbst ruft diese Funktionen nicht auf, sondern erstellt stattdessen ein JSON-Objekt, mit dem Benutzer die Funktionen in ihrem Code aufrufen können.
Bei Funktionsaufrufen für Databricks sind die grundlegenden Schritte wie folgt:
- Rufen Sie das Modell mithilfe der übermittelten Abfrage und einer Reihe von Funktionen auf, die im
toolsParameter definiert sind. - Das Modell entscheidet, ob die definierten Funktionen aufgerufen werden sollen oder nicht. Wenn die Funktion aufgerufen wird, ist der Inhalt ein JSON-Objekt von Zeichenfolgen, das ihrem benutzerdefinierten Schema entspricht.
- Analysieren Sie die Zeichenfolgen in JSON in Ihrem Code, und rufen Sie ihre Funktion mit den bereitgestellten Argumenten auf, falls vorhanden.
- Rufen Sie das Modell erneut auf, indem Sie die strukturierte Antwort als neue Nachricht anfügen. Die Struktur der Antwort wird durch die Funktionen definiert, die Sie zuvor in
toolsbereitgestellt haben. Von hier aus fasst das Modell die Ergebnisse zusammen und sendet diese Zusammenfassung an den Benutzer.
Wann man Funktionsaufrufe verwenden sollte
Im Folgenden sind Beispielanwendungsfälle für Funktionsaufrufe aufgeführt:
- Erstellen Sie Assistenten, die Fragen beantworten können, indem Sie andere APIs aufrufen. Sie können z. B. Funktionen wie
send_email(to: string, body: string)odercurrent_weather(location: string, unit: 'celsius' | 'fahrenheit')definieren. - Definieren und Verwenden von API-Aufrufen basierend auf natürlicher Sprache. Nehmen Sie z. B. die Aussage „Wer sind meine Top-Kunden?“ und erstellen Sie daraus einen API-Aufruf namens
get_customers(min_revenue: int, created_before: string, limit: int)und rufen Sie dann diese API auf.
Für Batchrückschluss- oder Datenverarbeitungsaufgaben, z. B. das Konvertieren unstrukturierter Daten in strukturierte Daten. Databricks empfiehlt die Verwendung strukturierter Ausgaben.
Unterstützte Modelle
In der folgenden Tabelle sind die unterstützten Modelle und die jeweilige Modellbereitstellungsfunktion aufgeführt, die jedes Modell verfügbar macht. Siehe anwendbare Modellentwicklerlizenzen und -bedingungen für diese Modelle.
- Modelle, die von Foundation Model-APIs zur Verfügung gestellt werden, finden Sie unter Foundation Model-APIs-Grenzwerte für die Regionsverfügbarkeit.
- Informationen zu Modellen, die von externen Quellen bereitgestellt werden, finden Sie im Abschnitt "Regionsverfügbarkeit" zur Verfügbarkeit in verschiedenen Regionen.
Wichtig
Meta-Llama-3.1-405B-Instruct wird eingestellt, wie unten beschrieben. Siehe "Eingestellte Modelle" für das empfohlene Ersatzmodell und Anleitungen für die Migration während der Außerbetriebnahme.
- Ab dem 15. Februar 2026 ist dieses Modell für Pay-per-Token-Workloads nicht verfügbar.
- Ab dem 15. Mai 2026 ist dieses Modell nicht für bereitgestellte Durchsatzworkloads verfügbar.
Ab dem 11. Dezember 2024 ersetzt Meta-Llama-3.3-70B-Instruct die Unterstützung von Meta-Llama-3.1-70B-Instruct an den Pay-per-Token-Endpunkten der Foundation Model APIs.
| Modell | Verfügbar gemacht mithilfe der Modellbereitstellungsfunktion | Hinweise |
|---|---|---|
| Claude-Sonnet-4.5 | Foundation Model-APIs | Unterstützt für Pay-per-Token-Endpunkte. |
| Claude-Haiku-4.5 | Foundation Model-APIs | Unterstützt für Pay-per-Token-Endpunkte. |
| Qwen3-Next 80B A3B-Anweisung (Beta) | Foundation Model-APIs | Unterstützt für Pay-per-Token-Endpunkte. |
| GPT OSS 20B | Foundation Model-APIs | Wird für Pay-per-Token und bereitgestellte Durchsatzendpunkte unterstützt. |
| GPT OSS 120B | Foundation Model-APIs | Wird für Pay-per-Token und bereitgestellte Durchsatzendpunkte unterstützt. |
| Gemma-3-12B | Foundation Model-APIs | Wird für Pay-per-Token und bereitgestellte Durchsatzendpunkte unterstützt. |
| Claude-Sonnet-4 | Foundation Model-APIs | Unterstützt für Pay-per-Token-Endpunkte. |
| Claude-Opus-4.5 | Foundation Model-APIs | Unterstützt für Pay-per-Token-Endpunkte. |
| Claude-Opus-4.1 | Foundation Model-APIs | Unterstützt für Pay-per-Token-Endpunkte. |
| claude-3-7-Sonnet | Foundation Model-APIs | Unterstützt für Pay-per-Token-Endpunkte. |
| Meta-Llama-4-Maverick | Foundation Model-APIs | Unterstützt für Workloads mit tokenbasierter Bezahlung und Workloads mit bereitgestelltem Durchsatz. |
| Meta-Llama-3.3-70B-Instruct | Foundation Model-APIs | Unterstützt für Workloads mit tokenbasierter Bezahlung und Workloads mit bereitgestelltem Durchsatz. |
| Meta-Llama-3.1-405B-Instruct | Foundation Model-APIs | Unterstützt für Workloads mit tokenbasierter Bezahlung und Workloads mit bereitgestelltem Durchsatz. |
| Meta-Llama-3.1-8B-Instruct | Foundation Model-APIs | Unterstützt für Workloads mit tokenbasierter Bezahlung und Workloads mit bereitgestelltem Durchsatz. |
| gpt-4o | Externe Modelle | |
| gpt-4o-2024-08-06 | Externe Modelle | |
| gpt-4o-2024-05-13 | Externe Modelle | |
| gpt-4o-mini | Externe Modelle | |
| claude-3-5-sonnet-latest | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-5-haiku-latest | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-5-opus-latest | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-5-sonnet-20241022 | Externe Modelle | Anthropic-Modellanbieter. Dieses Modell unterstützt Toolaufrufe mit Computernutzung (Beta). |
| claude-3-5-haiku-20241022 | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-5-sonnet-20240620 | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-haiku-20240307 | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-opus-20240229 | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-sonnet-20240229 | Externe Modelle | Anbieter anthropischer Modelle |
| claude-3-5-sonnet-20241022-v2:0 | Externe Modelle | Bedrock Anthropic-Modellanbieter. Dieses Modell unterstützt Toolaufrufe mit Computernutzung (Beta). |
| claude-3-5-haiku-20241022-v1:0 | Externe Modelle | Bedrock Anthropic-Modellanbieter |
| claude-3-5-sonnet-20240620-v1:0 | Externe Modelle | Bedrock Anthropic-Modellanbieter |
| claude-3-sonnet-20240229-v1:0 | Externe Modelle | Bedrock Anthropic-Modellanbieter |
| claude-3-opus-20240229-v1:0 | Externe Modelle | Bedrock Anthropic-Modellanbieter |
Verwenden von Funktionsaufrufen
Um Funktionsaufrufe mit Ihrer generativen KI-Anwendung zu verwenden, müssen Sie eine Funktion parameters und eine Funktion description bereitstellen.
Das Standardverhalten für tool_choice lautet "auto". Auf diese Weise kann das Modell entscheiden, welche Funktionen aufgerufen werden sollen und ob sie aufgerufen werden sollen.
Sie können das Standardverhalten je nach Anwendungsfall anpassen. Die folgenden Optionen stehen zur Auswahl:
- Legen Sie
tool_choice: "required"fest. In diesem Szenario ruft das Modell immer eine oder mehrere Funktionen auf. Das Modell wählt aus, welche Funktion oder welche Funktionen aufgerufen werden sollen. - Legen Sie
tool_choice: {"type": "function", "function": {"name": "my_function"}}fest. In diesem Szenario ruft das Modell nur eine bestimmte Funktion auf. - Legen Sie
tool_choice: "none"fest, dass Funktionsaufrufe deaktiviert werden und das Modell nur eine benutzerorientierte Nachricht generiert.
Im Folgenden finden Sie ein einzelnes Beispiel für die Verwendung des OpenAI SDK und des zugehörigen tools Parameters. Weitere Syntaxdetails finden Sie unter chat completions API .
Wichtig
Während der Public Preview ist das Aufrufen von Funktionen für Databricks für Single-Turn-Funktionsaufrufe optimiert.
import os
import json
from openai import OpenAI
DATABRICKS_TOKEN = os.environ.get('YOUR_DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('YOUR_DATABRICKS_BASE_URL')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
]
}
}
}
}
}
]
messages = [{"role": "user", "content": "What is the current temperature of Chicago?"}]
response = client.chat.completions.create(
model="databricks-meta-llama-3-3-70b-instruct",
messages=messages,
tools=tools,
tool_choice="auto",
)
print(json.dumps(response.choices[0].message.model_dump()['tool_calls'], indent=2))
Dieser Parameter unterstützt auch Computer Use (Beta) für Claude-Modelle.
JSON-Schema
Foundation Model-APIs unterstützen Funktionsdefinitionen, die von OpenAI akzeptiert werden. Die Verwendung eines einfacheren JSON-Schemas für Funktionsaufrufdefinitionen führt jedoch zur JSON-Generierung von Funktionsaufrufen mit höherer Qualität. Um die Generierung höherer Qualität zu fördern, unterstützen Foundation Model-APIs nur eine Teilmenge der JSON-Schemaspezifikationen.
Die folgenden Funktionsaufrufdefinitionsschlüssel werden nicht unterstützt:
- Reguläre Ausdrücke, die
patternnutzen. - Komplexe geschachtelte oder schemabasierte Komposition und Validierung mit
anyOf,oneOf,allOf,prefixItemsoder$ref. - Listen von Typen mit Ausnahme des Sonderfalls
[type, “null”], in dem ein Typ in der Liste ein gültiger JSON-Typ und der andere"null"ist
Darüber hinaus gelten die folgenden Einschränkungen:
- Die maximale Anzahl der im JSON-Schema angegebenen Schlüssel ist
16. - Foundation-Modell-APIs erzwingen keine Längen- oder Größenbeschränkungen für Objekte und Arrays.
- Dazu gehören Schlüsselwörter wie
maxProperties,minPropertiesundmaxLength.
- Dazu gehören Schlüsselwörter wie
- Stark geschachtelte JSON-Schemas führen zu einer niedrigeren Qualitätsgenerierung. Versuchen Sie nach Möglichkeit, das JSON-Schema abzuflachen, um bessere Ergebnisse zu erzielen.
Verwendung von Token
Prompteinschleusung und andere Techniken werden verwendet, um die Qualität von Toolaufrufen zu verbessern. Dies wirkt sich auf die Anzahl der vom Modell verbrauchten Eingabe- und Ausgabetoken aus, was wiederum zu Abrechnungsauswirkungen führt. Je mehr Tools Sie verwenden, desto mehr erhöhen sich Ihre Eingabetoken.
Begrenzungen
Die Einschränkungen für Funktionsaufrufe während der öffentlichen Testversion sind wie folgt:
- Für Multi-Turn-Funktionen empfiehlt Databricks die unterstützten Claude-Modelle.
- Bei Verwendung von Llama 4 Maverick ist die aktuelle Funktionsaufruflösung für Einzelne Turn-Funktionsaufrufe optimiert. Multi-Turn-Funktionsaufrufe werden während der Vorschau unterstützt, befinden sich jedoch in der Entwicklung.
- Parallele Funktionsaufrufe werden nicht unterstützt.
- Die maximale Anzahl von Funktionen, die in
toolsdefiniert werden können, beträgt 32 Funktionen. - Zur Unterstützung des bereitgestellten Durchsatzes wird der Funktionsaufruf nur für neue Endpunkte unterstützt. Sie können keine Funktionsaufrufe zu zuvor erstellten Endpunkten hinzufügen.
Notebook-Beispiel
Detaillierte Beispiele für Funktionsaufrufe finden Sie im folgenden Notizbuch.