Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje volání funkcí a jeho použití jako součást pracovních postupů generující aplikace AI. Volání funkce Databricks je kompatibilní s OpenAI a je k dispozici pouze během obsluhy modelu jako součást
Co znamená volání funkce?
Volání funkcí poskytuje způsob, jak řídit výstup LLM, takže generují strukturované odpovědi spolehlivěji. Při použití volání funkce popisujete funkce ve volání rozhraní API popisováním argumentů funkce pomocí schématu JSON. SAMOTNÝ LLM tyto funkce nevolá, ale vytvoří objekt JSON, který uživatelé mohou použít k volání funkcí ve svém kódu.
Pro volání funkce v Databricks je základní posloupnost kroků následující:
- Volání modelu pomocí odeslaného dotazu a sady funkcí definovaných v parametru
tools - Model se rozhodne, jestli se mají nebo nevolat definované funkce. Při zavolání funkce je obsah objektem JSON řetězců, které odpovídají vašemu vlastnímu schématu.
- Parsujte řetězce do formátu JSON v kódu a volejte funkci s zadanými argumenty, pokud existují.
- Znovu zavolejte model tak, že připojíte strukturovanou odpověď jako novou zprávu. Struktura odpovědi je definována funkcemi, které jste zadali dříve v
tools. Odsud model shrnuje výsledky a odesílá tento souhrn uživateli.
Kdy použít volání funkce
Následuje příklad případů použití pro volání funkce:
- Vytvářejte asistenty, kteří můžou odpovídat na otázky voláním jiných rozhraní API. Můžete například definovat funkce jako
send_email(to: string, body: string)nebocurrent_weather(location: string, unit: 'celsius' | 'fahrenheit'). - Definujte a používejte volání rozhraní API na základě přirozeného jazyka. Jako když vezmete výrok „Kdo jsou moji nejlepší zákazníci?“ a vytvoří ho do volání rozhraní API s názvem
get_customers(min_revenue: int, created_before: string, limit: int)a zavoláním daného rozhraní API.
Pro dávkové odvozování nebo úlohy zpracování dat, jako je převod nestrukturovaných dat na strukturovaná data. Databricks doporučuje používat strukturované výstupy.
Podporované modely
Následující tabulka uvádí podporované modely a funkce obsluhy modelů, které zpřístupňují jednotlivé modely. Podívejte se na příslušné licence a podmínky pro vývojáře modelů pro tyto modely.
- U modelů dostupných prostřednictvím rozhraní API pro Foundation Model, viz Omezení rozhraní API Foundation Model pro dostupnost v jednotlivých oblastech.
- U modelů zpřístupněných externími poskytovateli, naleznete informace v tématu Dostupnost v regionech.
Důležité
Meta-Llama-3.1-405B-Instruct bude vyřazen, jak je uvedeno níže. Informace o tom, jak migrovat během vyřazení, najdete v části Vyřazené modely s doporučeným náhradním modelem a pokyny k migraci.
- Od 15. února 2026 není tento model k dispozici pro úlohy s platbami za tokeny.
- Od 15. května 2026 není tento model k dispozici pro úlohy s předem stanovenou propustností.
Od 11. prosince 2024 dojde k nahrazení podpory pro Meta-Llama-3.1-70B-Instruct novou verzí Meta-Llama-3.3-70B-Instruct v rozhraních Foundation Model APIs na koncových bodech s platbou za token.
| Model | Zpřístupněno pomocí funkce pro poskytování služeb modelů | Poznámky |
|---|---|---|
| Claude-Sonnet-4.5 | Rozhraní API základního modelu | Podporováno u koncových bodů s platbami za token. |
| Qwen3-Next 80B A3B – pokyn (beta verze) | Rozhraní API základního modelu | Podporováno u koncových bodů s platbami za token. |
| Operační systém GPT 20B | Rozhraní API základního modelu | Podporováno u koncových bodů s platbou za token použití a rezervovanou propustností. |
| Operační systém GPT 120B | Rozhraní API základního modelu | Podporováno u koncových bodů s platbou za token použití a rezervovanou propustností. |
| Gemma-3-12B | Rozhraní API základního modelu | Podporováno u koncových bodů s platbou za token použití a rezervovanou propustností. |
| Claude-Sonnet-4 | Rozhraní API základního modelu | Podporováno u koncových bodů s platbami za token. |
| Claude-Opus-4.1 | Rozhraní API základního modelu | Podporováno u koncových bodů s platbami za token. |
| Claude-3.7-Sonnet | Rozhraní API základního modelu | Podporováno u koncových bodů s platbami za token. |
| Meta-Llama-4-Maverick | Rozhraní API základního modelu | Podporováno u úloh s platbou za token a zřízenou propustností. |
| Meta-Llama-3.3-70B-Instruct | Rozhraní API základního modelu | Podporováno u úloh s platbou za token a zřízenou propustností. |
| Meta-Llama-3.1-405B-Instruct | Rozhraní API základního modelu | Podporováno u úloh s platbou za token a zřízenou propustností. |
| Meta-Llama-3.1-8B-Instruct | Rozhraní API základního modelu | Podporováno u úloh s platbou za token a zřízenou propustností. |
| gpt-4o | Externí modely | |
| gpt-4o-2024-08-06 | Externí modely | |
| gpt-4o-2024-05-13 | Externí modely | |
| gpt-4o-mini | Externí modely | |
| claude-3-5-sonnet-latest | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-5-haiku-latest | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-5-opus-nejnovější | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-5-sonnet-20241022 | Externí modely | Poskytovatel modelu Anthropic. Tento model podporuje volání nástrojů pomocí Počítačové použití (beta). |
| claude-3-5-haiku-20241022 | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-5-sonnet-20240620 | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-haiku-20240307 | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-opus-20240229 | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-sonnet-20240229 | Externí modely | Poskytovatel modelu Anthropic |
| claude-3-5-sonnet-20241022-v2:0 | Externí modely | Poskytovatel modelu Bedrock Anthropic Tento model podporuje volání nástrojů pomocí Počítačové použití (beta). |
| claude-3-5-haiku-20241022-v1:0 | Externí modely | Poskytovatel modelů Bedrock Anthropic |
| claude-3-5-sonnet-20240620-v1:0 | Externí modely | Poskytovatel modelů Bedrock Anthropic |
| claude-3-sonnet-20240229-v1:0 | Externí modely | Poskytovatel modelů Bedrock Anthropic |
| claude-3-opus-20240229-v1:0 | Externí modely | Poskytovatel modelů Bedrock Anthropic |
Použít volání funkce
Pokud chcete používat volání funkcí s aplikací generující umělé inteligence, musíte zadat funkci parameters a funkci description.
Výchozí chování tool_choice je "auto". Model tím rozhodne, které funkce se mají volat a zda je volat.
Výchozí chování můžete přizpůsobit v závislosti na vašem případu použití. Toto jsou vaše možnosti:
- Nastavte
tool_choice: "required". V tomto scénáři model vždy volá jednu nebo více funkcí. Model vybere, kterou funkci nebo které funkce se mají volat. - Nastavte
tool_choice: {"type": "function", "function": {"name": "my_function"}}. V tomto scénáři model volá pouze konkrétní funkci. - Nastavte
tool_choice: "none"tak, aby se zakázalo volání funkcí a model vygeneroval pouze zprávu zobrazenou uživatelem.
Následuje příklad jedné interakce pomocí OpenAI SDK a jeho parametru tools. Další podrobnosti o syntaxi najdete v úloze chatu.
Důležité
Během veřejného preview je volání funkcí v Databricks optimalizované pro jednorázové volání funkce.
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))
Tento parametr také podporuje počítačové použití (beta) pro modely Claude.
Schéma JSON
Rozhraní API základního modelu široce podporují definice funkcí přijaté openAI. Použití jednoduššího schématu JSON pro definice volání funkcí ale vede k vytvoření kódu JSON s vyšší kvalitou volání funkce. Aby bylo možné zvýšit úroveň generování kvality, rozhraní API modelu Foundation podporují pouze podmnožinu specifikací schématu JSON .
Následující klíče definic volání funkce nejsou podporovány:
- Regulární výrazy používající
pattern. - Složité vnořené složení nebo ověřování schématu pomocí:
anyOf,oneOf,allOf,prefixItemsnebo$ref. - Seznamy typů s výjimkou speciálních případů
[type, “null”], kdy je jeden typ v seznamu platným typem JSON a druhý typ je"null"
Platí také následující omezení:
- Maximální počet klíčů zadaných ve schématu JSON je
16. - Rozhraní API základního modelu nevynucují omezení délky nebo velikosti objektů a polí.
- To zahrnuje klíčová slova jako
maxProperties,minPropertiesamaxLength.
- To zahrnuje klíčová slova jako
- Silně vnořené schémata JSON vedou ke generování nižší kvality. Pokud je to možné, zkuste zploštět schéma JSON, aby se zlepšily výsledky.
Využití tokenů
Použití metody vložení příkazů a dalších technik ke zvýšení kvality volání nástrojů. To má vliv na počet vstupních a výstupních tokenů spotřebovaných modelem, což zase vede k důsledkům fakturace. Čím více nástrojů použijete, tím více se zvýší počet vstupních tokenů.
Omezení
Toto jsou omezení pro volání funkcí během verze Public Preview:
- Pro funkce s vícenásobným voláním Databricks doporučuje podporované modely Claude.
- Pokud používáte Llama 4 Maverick, aktuální řešení volání funkcí je optimalizované pro volání funkce s jedním turn. Volání funkcí ve více krocích je podporováno v rámci verze Preview, ale je stále ve vývoji.
- Paralelní volání funkcí není podporováno.
- Maximální počet funkcí, které lze definovat,
toolsje 32 funkcí. - Pro podporu zřízené propustnosti je volání funkcí podporováno pouze na nových koncových bodech. Do dříve vytvořených koncových bodů není možné přidat volání funkce.
Příklad poznámkového bloku
Podrobné příklady volání funkcí najdete v následujícím poznámkovém bloku.
Příkladový poznámkový blok volání funkcí
Získej poznámkový blok