Mode JSON dan Keluaran Panggilan Alat
Gunakan response_format={'type':'json_object'} atau satu panggilan alat untuk memaksa keluaran yang dapat diuraikan mesin.
Mode JSON dan Keluaran Panggilan Alat adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Kebutuhan akan Struktur
Teks bebas dari LLM sulit digunakan oleh kode. Agen produksi memerlukan keluaran yang dapat diuraikan: JSON, XML, argumen fungsi—jangan pernah menggunakan "jawabannya adalah..."
Mode JSON (OpenAI)
Beri tahu model, "selalu kembalikan JSON":
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'Return a JSON object with name and age.'},
{'role': 'user', 'content': 'Alice, 30 years old.'}
],
response_format={'type': 'json_object'}
)
import json
data = json.loads(response.choices[0].message.content)Catatan tentang Mode JSON
Mode JSON hanya menjamin JSON yang valid—bukan SHAPE Anda. Model dapat mengembalikan {} atau {"foo": "bar"}. Selalu validasi bentuknya juga.
Output Terstruktur (Ketat)
OpenAI Structured Outputs menjamin bahwa respons sesuai dengan JSON Schema:
schema = {
'name': 'person',
'schema': {
'type': 'object',
'properties': {
'name': {'type': 'string'},
'age': {'type': 'integer'}
},
'required': ['name', 'age'],
'additionalProperties': False
},
'strict': True
}
response = client.chat.completions.create(
model='gpt-4o-2024-08-06',
messages=...,
response_format={'type': 'json_schema', 'json_schema': schema}
)Cara Kerja Mode Ketat
Mode ketat membatasi dekoder sehingga model benar-benar tidak dapat menghasilkan token yang tidak valid. Keluaran 100% sesuai dengan skema.
Panggilan Alat sebagai Keluaran Terstruktur
Anda dapat memaksa panggilan alat tertentu sebagai cara untuk mengekstrak data terstruktur:
tools = [{'type': 'function', 'function': {
'name': 'submit_person',
'parameters': {
'type': 'object',
'properties': {'name': {'type': 'string'}, 'age': {'type': 'integer'}},
'required': ['name', 'age']
}
}}]
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=...,
tools=tools,
tool_choice={'type': 'function', 'function': {'name': 'submit_person'}}
)
args = json.loads(response.choices[0].message.tool_calls[0].function.arguments)Penggunaan Alat Anthropic sebagai Keluaran
Anthropic memiliki pola yang sama dengan tool_choice="tool":
tool_choice = {'type': 'tool', 'name': 'submit_person'}
print(tool_choice)
JSON melalui Pengisian Awal (Anthropic)
Untuk Claude tanpa alat, isi terlebih dahulu giliran assistant dengan {
messages = [
{'role': 'user', 'content': 'Give me JSON for Alice, 30.'},
{'role': 'assistant', 'content': '{'}
]
# Output starts with { and likely produces valid JSON.
for m in messages:
print(f"{m['role']}: {m['content']}")
print("Output starts with { and likely produces valid JSON.")
Pydantic + Mode Ketat
OpenAI Python SDK menyediakan pintasan Pydantic:
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
response = client.beta.chat.completions.parse(
model='gpt-4o-2024-08-06',
messages=...,
response_format=Person
)
person = response.choices[0].message.parsed
# Pydantic instance, type-safeKesalahan Umum
- Mode JSON tanpa mode ketat — model dapat mengembalikan bentuk yang salah
- Lupa menambahkan
additionalProperties: falsedalam mode ketat - Kolom wajib tidak tercantum dalam larik "required"
- Mode ketat hanya tersedia pada gpt-4o-2024-08-06 dan versi setelahnya
Biaya Keluaran Terstruktur
Mode ketat memiliki sedikit beban tambahan karena dekode yang dibatasi tata bahasa — tidak berarti dibandingkan manfaat kualitasnya. Selalu aktifkan saat bentuk data penting.
Gabungkan dengan Validasi
Bahkan keluaran ketat tetap harus divalidasi oleh Pydantic setelahnya. Pertahanan berlapis — menangkap kasus tepi seperti bilangan bulat di luar rentang.
Jaminan Mode Ketat
Apa yang dijamin oleh OpenAI Structured Outputs (mode ketat)?
Ringkasan
Gunakan mode JSON untuk struktur yang longgar, Strict Outputs untuk bentuk yang terjamin, dan panggilan alat untuk efek yang sama. Selalu lakukan validasi setelahnya.
Belajar AI Agents dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 60
- Pelajaran
- 239
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mode JSON dan Keluaran Panggilan Alat” gratis?
Ya — teks lengkap “Mode JSON dan Keluaran Panggilan Alat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mode JSON dan Keluaran Panggilan Alat”?
Gunakan response_format={'type':'json_object'} atau satu panggilan alat untuk memaksa keluaran yang dapat diuraikan mesin. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mode JSON dan Keluaran Panggilan Alat” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?
Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mode JSON dan Keluaran Panggilan Alat
- Validasi Skema Pydantic
- Perulangan Perbaikan untuk Keluaran yang Tidak Sesuai Format
- Instructor / Outlines untuk Struktur Terjamin