Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan output terstruktur di Azure Databricks dan cara menggunakannya sebagai bagian dari alur kerja aplikasi AI generatif Anda. Output terstruktur berfungsi dengan model OpenAI yang mendukung model terstruktur.
Apa itu output terstruktur?
Output terstruktur menyediakan cara untuk menghasilkan data terstruktur dalam bentuk objek JSON dari data input Anda. Anda dapat memilih untuk menghasilkan teks, objek JSON yang tidak terstruktur, dan objek JSON yang mematuhi skema JSON tertentu. Output terstruktur didukung untuk model obrolan yang menggunakan API Model Foundation dengan sistem bayar per token dan endpoint throughput yang dipersiapkan.
Databricks merekomendasikan penggunaan output terstruktur untuk skenario berikut:
- Mengekstrak data dari sejumlah besar dokumen. Misalnya, mengidentifikasi dan mengklasifikasikan umpan balik ulasan produk sebagai negatif, positif, atau netral.
- Tugas inferensi batch yang memerlukan output dalam format tertentu.
- Pemrosesan data, seperti mengubah data yang tidak terstruktur menjadi data terstruktur.
Menggunakan output terstruktur
Tentukan output terstruktur Anda menggunakan response_format dalam permintaan obrolan Anda. Lihat Referensi REST API untuk model dasar.
Berikut ini adalah contoh ekstraksi data makalah penelitian ke skema JSON tertentu.
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))
Berikut ini adalah contoh ekstraksi JSON, tetapi skema JSON tidak diketahui sebelumnya.
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))
Skema JSON
API Model Foundation secara luas mendukung output terstruktur yang diterima oleh OpenAI. Namun, menggunakan skema JSON yang lebih sederhana untuk definisi skema JSON menghasilkan generasi JSON berkualitas lebih tinggi. Untuk mempromosikan pembuatan kualitas yang lebih tinggi, API Model Foundation hanya mendukung subset spesifikasi skema JSON .
Kunci definisi panggilan fungsi berikut tidak didukung:
- Ekspresi reguler menggunakan
pattern. - Komposisi dan validasi berlapis atau skema kompleks menggunakan:
anyOf,oneOf,allOf,prefixItems, atau$ref. - Daftar jenis kecuali untuk kasus khusus
[type, “null”]di mana satu jenis dalam daftar adalah jenis JSON yang valid dan yang lainnya"null"
Penggunaan token
Injeksi prompt dan teknik lain digunakan untuk meningkatkan kualitas output terstruktur. Melakukannya berdampak pada jumlah token input dan output yang digunakan oleh model, yang pada gilirannya menghasilkan implikasi penagihan.
Batasan
- Jumlah maksimum kunci yang ditentukan dalam skema JSON adalah
64. - API Model Foundation tidak memberlakukan batasan panjang atau ukuran untuk objek dan array.
- Ini termasuk kata kunci seperti
maxProperties,minProperties, danmaxLength.
- Ini termasuk kata kunci seperti
- Skema JSON yang sangat berlapis menghasilkan pembuatan kualitas yang lebih rendah. Jika memungkinkan, cobalah meratakan skema JSON untuk hasil yang lebih baik.
- Model Claude antropis hanya dapat menerima
json_schemaoutput terstruktur.json_objecttidak didukung.