Laras RouterDocs

Panduan

Output JSON

Buat deepseek-flash mengembalikan objek JSON yang valid dengan response_format.

Di halaman ini

Atur response_format ke {"type": "json_object"} dan model akan mengembalikan jawabannya sebagai satu objek JSON yang valid di message.content.

Contoh

import json
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.larasrouter.com/v1",
    api_key=os.environ["LARAS_API_KEY"],
)

response = client.chat.completions.create(
    model="deepseek-flash",
    response_format={"type": "json_object"},
    messages=[
        {
            "role": "system",
            "content": (
                "Ambil nama produk dan jumlahnya dari pesan. "
                'Balas dalam JSON seperti {"product": "string", "quantity": 0}.'
            ),
        },
        {"role": "user", "content": "Saya mau pesan tiga kopi susu gula aren."},
    ],
)

data = json.loads(response.choices[0].message.content)
print(data)  # {'product': 'kopi susu gula aren', 'quantity': 3}

Agar JSON yang dihasilkan andal

  • Sebut "JSON" di prompt dan tunjukkan bentuknya. Mode JSON menjamin sintaks yang valid, bukan schema Anda. Jelaskan key dan tipe yang Anda harapkan, sebaiknya dengan contoh objek, di pesan system atau user.
  • Sisakan ruang di max_tokens. Jika output mencapai batas, JSON akan terpotong dan tidak bisa di-parse. Pastikan finish_reason bernilai "stop" sebelum parsing.
  • Validasi hasilnya. Parse dengan json.loads / JSON.parse lalu validasi terhadap schema Anda (misalnya dengan Pydantic atau Zod) sebelum dipakai.
  • Pakai tools untuk schema yang ketat. Jika model harus mengisi sekumpulan argumen yang tetap, fungsi di tool calling dengan JSON Schema sering lebih cocok.