Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Strukturerade utdata på Azure Databricks låter dig generera svar i ett definierat JSON-format som en del av dina AI-applikationsflöden. De arbetar med alla stödda chattmodeller inom ett response_format fält. Du använder samma förfrågningsformat oavsett vilken leverantör som ligger under modellen. Azure Databricks hanterar all leverantörsspecifik översättning åt dig, så du behöver inte använda en leverantörs inbyggda strukturerade utdataformat.
Tips/Råd
Genie Code (agentläge) kan göra detta åt dig. Prova den här exempelprompten:
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.
Vad är strukturerade utdata?
Strukturerade utdata är ett sätt att generera strukturerade data i form av JSON-objekt från dina indata. Du kan välja att generera text, ostrukturerade JSON-objekt och JSON-objekt som följer ett specifikt JSON-schema. Strukturerade utdata stöds för chattmodeller som hanteras via Foundation Model API:er med betalning per använd token och allokerade genomflödesändpunkter.
Databricks rekommenderar att du använder strukturerade utdata för följande scenarier:
- Extrahera data från stora mängder dokument. Du kan till exempel identifiera och klassificera feedback om produktgranskning som negativ, positiv eller neutral.
- Batch-slutsatsdragningsuppgifter som kräver att utdata är i ett angivet format.
- Databearbetning, som att omvandla ostrukturerade data till strukturerade data.
Använda strukturerade utdata
Ange dina strukturerade utdata med hjälp av response_format i chattbegäran. Se referens för Foundation-modellens REST API.
Följande är ett exempel på dataextrahering av forskningsrapporter till ett specifikt JSON-schema.
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))
Följande är ett exempel på JSON-extrahering, men JSON-schemat är inte känt före hand.
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-schema
API:er för Foundation Model stöder i stort sett strukturerade utdata som godkänts av OpenAI. Men om du använder ett enklare JSON-schema för JSON-schemadefinitioner resulterar det i JSON-generering av högre kvalitet. För att främja generering av högre kvalitet stöder Foundation Model-API:er endast en delmängd av JSON-schemaspecifikationer.
Följande definitionsnycklar för funktionsanrop stöds inte:
- Reguljära uttryck med
pattern. - Komplexa kapslade strukturer samt schemasammansättning och validering med:
anyOf,oneOf,allOf,prefixItemseller$ref. - Listor med typer förutom specialfallet
[type, “null”]där en typ i listan är en giltig JSON-typ och den andra är"null"
Strukturerade utdata med Anthropic Claude-modeller
Följande exempel extraherar data till ett specifikt JSON-schema med hjälp av en Claude-modell. Den enda förändringen från de tidigare exemplen är model värdet.
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))
Claude-modeller har ytterligare begränsningar för strukturerade utdata. Se avsnittet Begränsningar.
Tokenanvändning
Snabbinmatning och andra tekniker används för att förbättra kvaliteten på strukturerade utdata. Detta påverkar antalet indata- och utdatatoken som används av modellen, vilket i sin tur resulterar i faktureringskonsekvenser.
Begränsningar
- Det maximala antalet nycklar som anges i JSON-schemat är
64. - Foundation Model-API:er tillämpar inte längd- eller storleksbegränsningar för objekt och matriser.
- Detta inkluderar nyckelord som
maxProperties,minPropertiesochmaxLength.
- Detta inkluderar nyckelord som
- Starkt kapslade JSON-scheman resulterar i lägre kvalitet. Om möjligt kan du prova att platta ut JSON-schemat för bättre resultat.
Anthropic Claude-modeller har följande ytterligare begränsningar för strukturerade utdata:
- Endast den strukturerade
json_schemautdatatypen stöds.json_objectstöds inte. För obegränsad utdata, utelämnaresponse_format. - Strukturerade utdata stöds inte med streaming. Sätt
streamtillfalsenär du anger enresponse_format. - Parametern
response_formatför Claude-strukturerade utdata kan inte kombineras medtoolsellertool_choice.