Not
Å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.
Den här artikeln beskriver strukturerade utdata på Azure Databricks och hur du använder dem som en del av dina generativa AI-programarbetsflöden. Strukturerade utdata fungerar med OpenAI-modeller som stöder strukturerade modeller.
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"
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.
- Antropiska Claude-modeller kan bara acceptera
json_schemastrukturerade utdata.json_objectstöds inte.