Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Databricks'teki yapılandırılmış çıktılar, yapay zeka uygulama iş akışlarınızın bir parçası olarak tanımlı bir JSON formatında yanıt üretmenize olanak tanır. Desteklenen herhangi bir sohbet modeliyle bir response_format alan üzerinden çalışırlar. Temel model sağlayıcısı ne olursa olsun, aynı istek formatını kullanırsınız. Azure Databricks, sağlayıcıya özgü herhangi bir çeviriyi sizin için halleder, bu yüzden bir sağlayıcının yerel yapılandırılmış çıktı formatını kullanmanıza gerek yoktur.
Tip
Genie Code (Aracı modu) bunu sizin için yapabilir. Şu örnek istemi deneyin:
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.
Yapılandırılmış çıkışlar nedir?
Yapılandırılmış çıkışlar, giriş verilerinizden JSON nesneleri biçiminde yapılandırılmış veriler oluşturmanın bir yolunu sağlar. Belirli bir JSON şemasına uygun metin, yapılandırılmamış JSON nesneleri ve JSON nesneleri oluşturmayı seçebilirsiniz. Yapılandırılmış çıkışlar, Temel Model API'leri aracılığıyla belirteç başına ödeme modeli ve sağlanan aktarım hızı uç noktaları kullanılarak sunulan sohbet modelleri için desteklenir.
Databricks, aşağıdaki senaryolar için yapılandırılmış çıkışların kullanılmasını önerir:
- Büyük miktarlardaki belgelerden veri ayıklama. Örneğin, ürün gözden geçirme geri bildirimini negatif, pozitif veya nötr olarak tanımlama ve sınıflandırma.
- Çıktıların belirtilen biçimde olmasını gerektiren toplu çıkarım görevleri.
- Yapılandırılmamış verileri yapılandırılmış verilere dönüştürme gibi veri işleme.
Yapılandırılmış çıkışları kullanma
Sohbet isteğinizde response_format kullanarak yapılandırılmış çıktılarınızı belirtin. Bkz. Temel model REST API başvurusu.
Aşağıda, araştırma makalelerinin belirli bir JSON şemasına veri ayıklama örneği verilmiştir.
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))
Aşağıda bir JSON ayıklama örneği verilmiştir, ancak JSON şeması önceden bilinmez.
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 şeması
Temel Model API'leri, OpenAI tarafından kabul edilen yapılandırılmış çıkışları geniş ölçüde destekler. Ancak, JSON şema tanımları için daha basit bir JSON şeması kullanılması daha kaliteli JSON oluşturma ile sonuçlanır. Temel Model API'leri, daha yüksek kaliteli üretimi teşvik etmek için yalnızca
Aşağıdaki işlev çağrısı tanım anahtarları desteklenmez:
-
patternkullanarak düzenli ifadeler. - Karmaşık iç içe veya şema bileşimi ve doğrulaması kullanımı:
anyOf,oneOf,allOf,prefixItemsveya$ref. -
[type, “null”]özel durumu dışında, listedeki türlerden birinin geçerli bir JSON türü olduğu ve diğerinin"null"olduğu tür listeleri.
Anthropic Claude modelleriyle yapılandırılmış çıktılar
Aşağıdaki örnek, Claude modeli kullanılarak belirli bir JSON şemasına veri çıkarır. Önceki örneklerden tek değişiklik değerdir model .
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 modelleri, yapılandırılmış çıktılar için ek kısıtlamalara sahiptir. Sınırlamalar bölümüne bakınız.
Jeton kullanımı
Yapılandırılmış çıktıların kalitesini arttırmak için istem enjeksiyonu ve diğer teknikler kullanılır. Bunun yapılması model tarafından kullanılan giriş ve çıkış belirteçlerinin sayısını etkiler ve bu da faturalamanın sonuçlarına neden olur.
Sınırlamalar
- JSON şemasında belirtilen en fazla anahtar sayısı
64. - Temel Model API'leri nesneler ve diziler için uzunluk veya boyut kısıtlamalarını zorlamaz.
- Bu, ,
maxPropertiesveminPropertiesgibimaxLengthanahtar sözcükleri içerir.
- Bu, ,
- Yoğun şekilde iç içe JSON şemaları daha düşük kalite üretimine neden oldu. Mümkünse daha iyi sonuçlar için JSON şemasını düzleştirmeyi deneyin.
Anthropic Claude modelleri, yapılandırılmış çıktılar için aşağıdaki ek kısıtlamalara sahiptir:
- Yalnızca
json_schemayapılandırılmış çıkış türü desteklenir.json_objectdesteklenmez. Kısıtsız çıktıresponse_formatiçin . - Yapılandırılmış çıktılar akışla desteklenmez. Bir
streamfalseresponse_formatbelirttiğinizde ayarlayın. -
response_formatClaude yapılandırılmış çıktılar için parametre veyatoolstool_choiceile birleştirilemez.