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.
Az Azure Databricks strukturált kimenetei lehetővé teszik, hogy válaszokat generálj egy meghatározott JSON formátumban, az AI alkalmazási munkafolyamatok részeként. Bármely támogatott csevegőmodelllel dolgoznak együtt egy response_format mezőn keresztül. Ugyanazt a kérés formátumot használod, függetlenül attól, hogy melyik modell szolgáltató van. Az Azure Databricks bármilyen szolgáltató-specifikus fordítást kezel helyetted, így nem kell a szolgáltató natív strukturált kimeneti formátumát használnod.
Tip
Genie Code (ügynöki módban) meg tudja tenni ezt Ön helyett. Próbálja ki ezt a példaüzenetet:
Query the databricks-gpt-oss-20b model with a JSON schema response format to extract title, authors, abstract, and keywords from a research paper description. Note: this model returns content as a list of blocks; extract the block with type "text" and parse it.
Mik azok a strukturált kimenetek?
A strukturált kimenetekkel JSON-objektumok formájában hozhat létre strukturált adatokat a bemeneti adatokból. Létrehozhat szövegeket, strukturálatlan JSON-objektumokat és JSON-objektumokat, amelyek megfelelnek egy adott JSON-sémának. A strukturált kimenetek támogatottak az Alapmodell API-kkal kiszolgált csevegőmodellekhez, tokenenkénti fizetéssel és előre kiosztott átviteli sebességű végpontok használatával.
A Databricks strukturált kimenetek használatát javasolja a következő forgatókönyvekhez:
- Adatok kinyerése nagy mennyiségű dokumentumból. A termékértékelési visszajelzések azonosítása és besorolása például negatív, pozitív vagy semleges.
- Kötegelt következtetési feladatok, amelyek megkövetelik, hogy a kimenetek megadott formátumban legyenek.
- Adatfeldolgozás, például strukturálatlan adatok strukturált adatokká alakításához.
Strukturált kimenetek használata
Adja meg a strukturált kimeneteket a csevegési kérelemben response_format használatával. Lásd Foundation modell REST API referenciája.
Az alábbi példa a kutatási dokumentumok egy adott JSON-sémába történő adatkinyerésére mutat be példát.
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
)
response_format = {
"type": "json_schema",
"json_schema": {
"name": "research_paper_extraction",
"schema": {
"type": "object",
"properties": {
"title": { "type": "string" },
"authors": {
"type": "array",
"items": { "type": "string" }
},
"abstract": { "type": "string" },
"keywords": {
"type": "array",
"items": { "type": "string" }
}
},
},
"strict": True
}
}
messages = [{
"role": "system",
"content": "You are an expert at structured data extraction. You will be given unstructured text from a research paper and should convert it into the given structure."
},
{
"role": "user",
"content": "..."
}]
response = client.chat.completions.create(
model="databricks-gpt-oss-20b",
messages=messages,
response_format=response_format
)
print(json.dumps(response.choices[0].message.model_dump()['content'], indent=2))
Az alábbiakban egy példa látható a JSON-extrakcióra, de a JSON-séma nem ismert kéz előtt.
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
)
response_format = {
"type": "json_object",
}
messages = [
{
"role": "user",
"content": "Extract the name, size, price, and color from this product description as a JSON object:\n<description>\nThe SmartHome Mini is a compact smart home assistant available in black or white for only $49.99. It's 5 inches wide.\n</description>"
}]
response = client.chat.completions.create(
model="databricks-gpt-oss-20b",
messages=messages,
response_format=response_format
)
print(json.dumps(response.choices[0].message.model_dump()['content'], indent=2))
JSON-séma
Az Alapmodell API-k széles körben támogatják az OpenAI által elfogadott strukturált kimeneteket. A JSON-sémadefiníciók egyszerűbb JSON-sémájának használata azonban jobb minőségű 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 használata
patternesetén. - Összetett beágyazott kompozíció vagy sémaösszetétel és -ellenőrzés a következők használatával:
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"
Strukturált kimenetek Anthropic Claude modellekkel
Az alábbi példa egy adott JSON sémára vonja ki az adatokat egy Claude-modell segítségével. Az egyetlen változás az előző példákhoz képest az model érték.
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
)
response_format = {
"type": "json_schema",
"json_schema": {
"name": "research_paper_extraction",
"schema": {
"type": "object",
"properties": {
"title": { "type": "string" },
"authors": {
"type": "array",
"items": { "type": "string" }
},
"abstract": { "type": "string" },
"keywords": {
"type": "array",
"items": { "type": "string" }
}
},
},
"strict": True
}
}
messages = [{
"role": "system",
"content": "You are an expert at structured data extraction. You will be given unstructured text from a research paper and should convert it into the given structure."
},
{
"role": "user",
"content": "..."
}]
response = client.chat.completions.create(
model="databricks-claude-sonnet-4-5",
messages=messages,
response_format=response_format
)
print(json.dumps(response.choices[0].message.model_dump()['content'], indent=2))
A Claude-modellek további korlátokat szabnak a strukturált kimenetekre. Lásd a Korlátozások szekciót.
Token használat
A gyorsinjektálást és más technikákat a strukturált kimenetek minőségének javítására használják. Ez hatással van a modell által használt bemeneti és kimeneti tokenek számára, ami számlázási következményekkel jár.
Korlátozások
- A JSON-sémában megadott kulcsok maximális száma
64. - 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.
Az Anthropic Claude modellek a strukturált kimenetekre vonatkozó további korlátokat alkalmazzák:
- Csak a
json_schemastrukturált kimeneti típus támogatott.json_objectnem támogatott. Korlátlan kimenethez hagydresponse_formatki . - A strukturált kimeneteket streaminggel nem támogatják. Állítsd
streambe,falseamikor megadod a .response_format -
response_formatA Claude strukturált kimenetek paramétere nem kombinálható vagytools-veltool_choicekombinálható.