Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a függvényhívást és annak használatát ismerteti a generatív AI-alkalmazás munkafolyamatai részeként. A Databricks-függvényhívás OpenAI-kompatibilis, és csak az Foundation Model API-k részeként és a külső modelleketkiszolgáló végpontok kiszolgálása során érhető el.
Mi a függvényhívás?
A függvényhívással szabályozhatja az LLM-k kimenetét, így megbízhatóbb strukturált válaszokat hozhat létre. Függvényhívás használatakor az API-hívás függvényeit egy JSON-sémával írja le. Maga az LLM nem hívja meg ezeket a függvényeket, hanem létrehoz egy JSON-objektumot, amellyel a felhasználók meghívhatják a függvényeket a kódjukban.
A Databricks függvényhívásához a lépések alapvető sorrendje a következő:
- Hívja meg a modellt az elküldött lekérdezés és a
toolsparaméterben definiált függvénykészlet használatával. - A modell dönti el, hogy meghívja-e a definiált függvényeket. A függvény meghívásakor a tartalom az egyéni sémához igazodó sztringek JSON-objektuma.
- Elemezze a sztringeket JSON-formátumúra a kódban, és hívja meg a függvényt a megadott argumentumokkal, ha léteznek.
- Hívja meg újra a modellt a strukturált válasz új üzenetként való hozzáfűzésével. A válasz struktúráját a korábban megadott függvények határozzák meg.
toolsInnen a modell összegzi az eredményeket, és elküldi az összegzést a felhasználónak.
Mikor érdemes függvényhívást használni?
A függvényhíváshoz az alábbi példahasználati esetek tartoznak:
- Olyan asszisztenseket hozhat létre, amelyek más API-k meghívásával válaszolhatnak a kérdésekre. Definiálhat például olyan függvényeket, mint a
send_email(to: string, body: string)vagycurrent_weather(location: string, unit: 'celsius' | 'fahrenheit')a . - Api-hívások definiálása és használata természetes nyelv alapján. Például a "Ki(k) a fő ügyfele(i)m?" és ezt egy elnevezett API-hívássá alakíthatja,
get_customers(min_revenue: int, created_before: string, limit: int)és meghívhatja azt az API-t.
Kötegelt következtetéshez vagy adatfeldolgozási feladatokhoz, például strukturálatlan adatok strukturált adatokká alakításához. A Databricks strukturált kimenetek használatát javasolja.
Támogatott modellek
Az alábbi táblázat felsorolja a támogatott modelleket, és hogy melyik modell-kiszolgáló funkció teszi elérhetővé az egyes modelleket. Lásd a modellekre vonatkozó modellfeltételeket .
- Az Foundation Model API-k által elérhetővé tett modellekről lásd az alapmodell API-k régiónkénti rendelkezésre állási korlátait .
- A külső modellek által elérhetővé tett modellekről lásd : Régió rendelkezésre állása a régió rendelkezésre állásához.
Fontos
A Meta-Llama-3.1-405B-Instruct az alábbiak szerint megszűnik. A Elavult és kivezetett modellek című témakörben találja az ajánlott helyettesítő modellt és az elavulási időszak alatti migrálásra vonatkozó útmutatást.
- 2026. február 15-től a modell nem érhető el a tokenenkénti fizetési munkafolyamatokhoz.
- 2026. május 15-től ez a modell nem érhető el kiosztott átviteli sebességű számítási feladatokhoz.
2024. december 11-től a Meta-Llama-3.3-70B-Instruct felváltja a Meta-Llama-3.1-70B-Instruct támogatását az alapmodell API-k tokenenkénti fizetéses végpontjaiban.
| Modell | Modellmegjelenítési funkcióval elérhetővé téve | Jegyzetek |
|---|---|---|
| Gemini 3.1 Flash Lite | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. A Google Gemini-végpontok esetében a(z) id és function_call tartalomrészeknél a(z) function_response mező nem támogatott. |
| Claude-Sonnet-5 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Sonnet-4.6 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Sonnet-4.5 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Haiku-4.5 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Qwen3.5 122B A10B | Alapmodell API-k | Az egyedi tokenenkénti fizetési modell és a kiosztott adatátviteli kapacitás végpontjai támogatottak. |
| Qwen3-Next 80B A3B Utasítás | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| GPT OSS 20B | Alapmodell API-k | Az egyedi tokenenkénti fizetési modell és a kiosztott adatátviteli kapacitás végpontjai támogatottak. |
| GPT OSS 120B | Alapmodell API-k | Az egyedi tokenenkénti fizetési modell és a kiosztott adatátviteli kapacitás végpontjai támogatottak. |
| Gemma-3-12B | Alapmodell API-k | Az egyedi tokenenkénti fizetési modell és a kiosztott adatátviteli kapacitás végpontjai támogatottak. |
| Claude-Sonnet-4 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Opus-4.8 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Opus-4.7 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Opus-4.6 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Opus-4.5 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Claude-Opus-4.1 | Alapmodell API-k | Tokenenkénti fizetéses végpontokon támogatott. |
| Meta-Llama-4-Maverick | Alapmodell API-k | Felhasznált tokenenkénti fizetés és előre kiosztott átviteli kapacitás esetén támogatott. |
| Meta-Llama-3.3-70B-Instruct | Alapmodell API-k | Felhasznált tokenenkénti fizetés és előre kiosztott átviteli kapacitás esetén támogatott. |
| Meta-Llama-3.1-405B-Instruct | Alapmodell API-k | Felhasznált tokenenkénti fizetés és előre kiosztott átviteli kapacitás esetén támogatott. |
| Meta-Llama-3.1-8B-Instruct | Alapmodell API-k | Felhasznált tokenenkénti fizetés és előre kiosztott átviteli kapacitás esetén támogatott. |
| gpt-4o | Külső modellek | |
| gpt-4o-2024-08-06 | Külső modellek | |
| gpt-4o-2024-05-13 | Külső modellek | |
| gpt-4o-mini | Külső modellek | |
| claude-3-5-sonnet-latest | Külső modellek | Antropikus modellszolgáltató |
| claude-3-5-haiku-latest | Külső modellek | Antropikus modellszolgáltató |
| claude-3-5-opus-latest | Külső modellek | Antropikus modellszolgáltató |
| claude-3-5-sonnet-20241022 | Külső modellek | Antropikus modellszolgáltató. Ez a modell támogatja a Számítógép-használat (bétaverzió)használatával történő eszközhívást. |
| claude-3-5-haiku-20241022 | Külső modellek | Antropikus modellszolgáltató |
| claude-3-5-sonnet-20240620 | Külső modellek | Antropikus modellszolgáltató |
| claude-3-haiku-20240307 | Külső modellek | Antropikus modellszolgáltató |
| claude-3-opus-20240229 | Külső modellek | Antropikus modellszolgáltató |
| claude-3-sonnet-20240229 | Külső modellek | Antropikus modellszolgáltató |
| claude-3-5-sonnet-20241022-v2:0 | Külső modellek | Bedrock antropikus modell szolgáltató. Ez a modell támogatja a Számítógép-használat (bétaverzió)használatával történő eszközhívást. |
| claude-3-5-haiku-20241022-v1:0 | Külső modellek | Bedrock antropikus modellszolgáltató |
| claude-3-5-sonnet-20240620-v1:0 | Külső modellek | Bedrock antropikus modellszolgáltató |
| claude-3-sonnet-20240229-v1:0 | Külső modellek | Bedrock antropikus modellszolgáltató |
| claude-3-opus-20240229-v1:0 | Külső modellek | Bedrock antropikus modellszolgáltató |
Használja a függvényhívást
Ha függvényhívást szeretne használni a generatív AI-alkalmazással, meg kell adnia egy függvényt parameters és egy description.
Az tool_choice alapértelmezett viselkedése "auto". Ez lehetővé teszi, hogy a modell eldöntse, mely függvényeket hívja meg, és hogy hívja-e őket.
A használati esettől függően testre szabhatja az alapértelmezett viselkedést. A következő lehetőségek közül választhat:
-
tool_choice: "required"beállítása. Ebben a forgatókönyvben a modell mindig meghív egy vagy több függvényt. A modell kiválasztja, hogy melyik függvényt vagy függvényt hívja meg. -
tool_choice: {"type": "function", "function": {"name": "my_function"}}beállítása. Ebben a forgatókönyvben a modell csak egy adott függvényt hív meg. - Állítsa be a
tool_choice: "none"a függvényhívás letiltására, és állítsa be, hogy a modell csak felhasználói üzenetet hozzon létre.
Következik egy példa, amely az OpenAI SDK-t és annak tools paraméterét használja egyetlen lépésben. További szintaxisadatokért tekintse meg a Csevegés befejezése API-t .
Fontos
A Nyilvános előzetes verzióban a Databricks függvényhívása egyfordulós függvényhívásra van optimalizálva.
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))
Ez a paraméter a Claude-modellek számítógép-használatát (bétaverzióját) is támogatja.
JSON-séma
Az Alapmodell API-k széles körben támogatják az OpenAI által elfogadott függvénydefiníciókat. Ha azonban egyszerűbb JSON-sémát használ a függvényhívás-definíciókhoz, jobb minőségű függvényhívási JSON-generációt eredményez. A jobb minőségű generáció előmozdítása érdekében az alapmodell API-k csak JSON-sémaspecifikációk egy részét támogatják.
A következő függvényhívás-definíciós kulcsok nem támogatottak:
- Reguláris kifejezések
patternhasználatával. - Összetett, beágyazott vagy sémaösszetétel és -ellenőrzés a következőkkel:
anyOf,oneOf,allOf,prefixItemsvagy$ref. - Típuslisták, kivéve a
[type, “null”]speciális esetét, ahol a listában szereplő egyik típus érvényes JSON-típus, a másik pedig"null"
Emellett a következő korlátozások érvényesek:
- A JSON-sémában megadott kulcsok maximális száma
16. - Az alapmodell API-k nem kényszerítik ki az objektumokra és tömbökre vonatkozó hossz- és méretkorlátozásokat.
- Ide tartoznak az olyan kulcsszavak, mint a
maxProperties,minPropertiesésmaxLength.
- Ide tartoznak az olyan kulcsszavak, mint a
- Az erősen beágyazott JSON-sémák alacsonyabb minőségű generációt eredményeznek. Ha lehetséges, próbálja meg elsimítani a JSON-sémát a jobb eredmények érdekében.
Token használata
A gyorsinjektálást és más technikákat az eszközhívások minőségének javítására használják. Ez hatással van a modell által felhasznált bemeneti és kimeneti tokenek számára, ami számlázási következményekkel jár. Minél több eszközt használ, annál nagyobb a bemeneti tokenek száma.
Korlátozások
A nyilvános előzetes verzióban a függvényhívásra vonatkozó korlátozások a következők:
- Többfordulós függvények esetén a Databricks a támogatott Claude-modelleket javasolja.
- A Llama 4 Maverick használata esetén az aktuális függvényhívási megoldás egyfordulós függvényhívásokra van optimalizálva. A többfordulós függvényhívás az előzetes verzióban támogatott, de fejlesztés alatt áll.
- A párhuzamos függvényhívás nem támogatott.
- A
tools-ben definiálható függvények maximális száma 32. - A kiosztott átviteli sebesség támogatása esetén a függvényhívás csak az új végpontokon támogatott. Nem adhat hozzá függvényhívást a korábban létrehozott végpontokhoz.
- A Google Gemini-végpontoknál a(z)
idmező a(z)function_callésfunction_responseesetén nem támogatott.
Jegyzetfüzet példa
Részletes függvényhívási példákért tekintse meg az alábbi jegyzetfüzetet