Instructor / Outlines untuk Struktur Terjamin
Instructor (Python) dan Outlines membatasi proses pengodean sehingga model benar-benar tidak dapat menghasilkan JSON yang tidak valid.
Instructor / Outlines untuk Struktur Terjamin adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 4 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.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Dua Pustaka Utama
Dua pendekatan utama untuk keluaran terstruktur yang terjamin:
- Instructor (Jason Liu) — pembungkus Pydantic untuk OpenAI/Anthropic dan banyak penyedia lainnya
- Outlines (.txt) — dekode terbatas untuk model OSS
Instructor Basics
# pip install instructor openai
import instructor
from openai import OpenAI
from pydantic import BaseModel
client = instructor.from_openai(OpenAI())
class User(BaseModel):
name: str
age: int
user = client.chat.completions.create(
model='gpt-4o-mini',
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
)
print(user.name, user.age)Keajaiban Instructor
Di balik layar, Instructor:
- Membuat JSON Schema dari model Pydantic Anda
- Menambahkannya sebagai alat ke panggilan OpenAI
- Memaksa alat tersebut untuk dipanggil
- Menguraikan argumen dan mengembalikan instans Pydantic
- Mencoba ulang dengan perbaikan saat terjadi kesalahan validasi
Instructor with Validation
from pydantic import field_validator
class User(BaseModel):
name: str
age: int
@field_validator('age')
@classmethod
def positive(cls, v):
if v <= 0:
raise ValueError('Age must be positive')
return v
# Instructor catches ValidationError and retries automaticallyStreaming Instructor
for partial in client.chat.completions.create_partial(
model='gpt-4o-mini',
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
):
print(partial)
# Streams partial Pydantic instances as fields fill in.Instructor with Anthropic
from anthropic import Anthropic
client = instructor.from_anthropic(Anthropic())
user = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=1024,
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
)Outlines untuk Model OSS
Outlines menggunakan dekode yang dibatasi tata bahasa. Pustaka ini berfungsi dengan HuggingFace, vLLM, dan llama.cpp:
# pip install outlines
import outlines
model = outlines.models.transformers('mistralai/Mistral-7B-Instruct-v0.2')
generator = outlines.generate.json(model, User)
user = generator('Alice, 30')Mengapa Menggunakan Dekode Terbatas?
Outlines mengetahui token mana yang legal pada setiap langkah (berdasarkan skema) dan menutupi token yang ilegal. Model benar-benar tidak dapat menghasilkan JSON yang tidak valid.
Regex / Pilihan Outlines
Anda dapat membatasi keluaran ke regex atau daftar pilihan:
import outlines.text.generate as g
yes_no = g.choice(model, ['yes', 'no'])
result = yes_no('Are bananas fruits?') # 'yes'Menggabungkan Keduanya
Untuk keandalan maksimum:
- Gunakan Instructor untuk model terkelola/tertutup (OpenAI, Anthropic)
- Gunakan Outlines untuk model yang di-hosting sendiri
- Model Pydantic digunakan bersama oleh keduanya
Perbandingan Biaya
- Strict Outputs (OpenAI bawaan) — sudah termasuk dalam harga
- Instructor — sedikit beban tambahan dari percobaan ulang saat validasi
- Outlines — sedikit penurunan throughput karena penutupan token, tetapi tanpa panggilan tambahan
Kapan Menggunakan yang Mana
| Kasus Penggunaan | Alat |
|---|---|
| OpenAI/Anthropic | Instructor + Pydantic |
| OSS yang di-hosting sendiri | Outlines |
| Jalur yang kritis terhadap latensi | OpenAI Structured Outputs (bawaan) |
Pendekatan Outlines
Bagaimana Outlines menjamin keluaran terstruktur?
Ringkasan
Untuk OpenAI/Anthropic, gunakan Structured Outputs bawaan atau Instructor. Untuk OSS, gunakan Outlines. Model Pydantic menyatukan semuanya.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Instructor / Outlines untuk Struktur Terjamin” gratis?
Ya — teks lengkap “Instructor / Outlines untuk Struktur Terjamin” 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 “Instructor / Outlines untuk Struktur Terjamin”?
Instructor (Python) dan Outlines membatasi proses pengodean sehingga model benar-benar tidak dapat menghasilkan JSON yang tidak valid. 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 4 dari 4.
Berapa lama pelajaran “Instructor / Outlines untuk Struktur Terjamin” 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