Memanfaatkan LangChain untuk Mendapatkan Output JSON yang Terstruktur dari AI

langchain

Dalam dunia aplikasi berbasis AI, mendapatkan output terstruktur dari model bahasa sangat penting untuk integrasi yang mulus dengan sistem lain. Artikel ini akan membahas cara menggunakan LangChain untuk mendapatkan output JSON yang terstruktur secara kustom, dengan fokus pada mendapatkan daftar objek JSON berdasarkan skema yang telah ditentukan.

Kekuatan Output Terstruktur yang Dikustomisasi

Ketika bekerja dengan model bahasa, respons teks bebas bentuk dapat sulit diurai dan digunakan dalam aplikasi hilir. Dengan mendefinisikan skema JSON kustom, kita dapat memandu model untuk menghasilkan output terstruktur yang sesuai dengan persyaratan yang tepat.

Menerapkan Output Terstruktur yang Dikustomisasi dengan LangChain

Mari kita bahas cara menerapkan output terstruktur yang dikustomisasi menggunakan LangChain, berdasarkan skema JSON spesifik.

Mendefinisikan Skema Output

Pertama, kita perlu mendefinisikan struktur output yang diinginkan. Dalam contoh ini, kita akan menggunakan skema untuk daftar item, di mana setiap item memiliki properti spesifik:

Python

outputFormatJson = {
    "name": "ItemList",
    "description": "List of information about items",
    "parameters": {
        "type": "object",
        "properties": {
            "items": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the item"
                        },
                        "description": {
                            "type": "string",
                            "description":    "Description of the item"
                        },
                        "category": {
                            "type": "string",
                            "description": "Category of the item"
                        },
                        "price": {
                            "type": "number",
                            "description": "Price of the item"
                        },
                        "tags": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "description": "List of tags associated with the item"
                        }
                    },
                    "required": ["name", "description", "category", "price"]
                }
            }
        },
        "required": ["items"]
    }
}

Skema ini mendefinisikan daftar item, di mana setiap item memiliki nama, deskripsi, kategori, harga, dan tag opsional.

Menyiapkan Model Bahasa

Selanjutnya, kita akan menyiapkan model bahasa kita dengan format output yang dikustomisasi:

Python

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")
structured_llm = llm.with_structured_output(outputFormatJson)

Di sini, kita menggunakan model ChatGPT dari OpenAI, tetapi Anda dapat menggunakan model apa pun yang kompatibel yang didukung oleh LangChain.

Membuat Templat Prompt

Untuk memandu model dalam menghasilkan output yang diinginkan, kita akan membuat templat prompt:

Python

from langchain_core.prompts import ChatPromptTemplate

system_message = """You are an inventory management assistant. Create a list of items based on the user's request.
Follow the specified JSON structure exactly. Each item should have a name, description, category, price, and optional tags."""

prompt = ChatPromptTemplate.from_messages([
    ("system", system_message),
    ("human", "{input}")
])

item_list_chain = prompt | structured_llm

Templat prompt ini menyiapkan konteks untuk model dan memastikan model memahami format output yang diperlukan.

Membangkitkan Output Terstruktur

Sekarang kita dapat menggunakan chain kita untuk menghasilkan output terstruktur berdasarkan input pengguna:

Python

user_input = "Create a list of 3 office supplies"
result = item_list_chain.invoke({"input": user_input})
print(result)

Hal ini akan menghasilkan output JSON terstruktur yang mirip dengan ini:

JSON

{
  "items": [
    {
      "name": "Ballpoint Pen Set",
      "description": "A pack of smooth-writing ballpoint pens in assorted colors",
      "category": "Writing Instruments",
      "price": 5.99,
      "tags": ["pens", "office", "writing"]
    },
    {
      "name": "Sticky Notes",
      "description": "A pack of colorful self-adhesive notes for quick reminders",
      "category": "Paper Products",
      "price": 3.49,
      "tags": ["notes", "office", "organization"]
    },
    {
      "name": "Stapler",
      "description": "A reliable desktop stapler with 20-sheet capacity",
      "category": "Office Equipment",
      "price": 8.99,
      "tags": ["stapler", "office", "fastening"]
    }
  ]
}

Mengelola Output

Output terstruktur dapat dengan mudah diurai dan digunakan dalam aplikasi Anda. Misalnya:

Python

for item in result["items"]:
    print(f"Item: {item['name']}")
    print(f"Price: ${item['price']:.2f}")
    print(f"Category: {item['category']}")
    print("---")

Hal ini akan menampilkan daftar item yang diformat, sehingga mudah diintegrasikan dengan sistem manajemen inventaris atau aplikasi lainnya.

Kesimpulan

Output JSON terstruktur yang dikustomisasi dengan LangChain menyediakan cara yang kuat untuk mengintegrasikan model bahasa ke dalam aplikasi Anda sambil mempertahankan kontrol penuh atas format output. Dengan mendefinisikan skema yang jelas dan menggunakan prompt yang tepat, Anda dapat memandu model untuk menghasilkan data terstruktur yang konsisten yang siap digunakan langsung dalam sistem Anda. Ingatlah untuk selalu memvalidasi output dan menerapkan penanganan kesalahan yang tepat, karena model bahasa mungkin menghasilkan hasil yang tidak terduga. Dengan teknik-teknik ini, Anda dapat membuat aplikasi yang kuat, berbasis AI, yang terintegrasi dengan mulus dengan alur kerja dan struktur data yang ada.

sources : https://jeetah.hashnode.dev/creating-custom-json-outputs-from-ai-responses-with-langchain


Discover more from teknologi now

Subscribe to get the latest posts sent to your email.

Related Posts

AI Monitoring Karyawan 2026: 7 Tools Boss Pakai + Cara Proteksi

AI Monitoring Karyawan 2026: 7 Tools Boss Pakai + Cara Proteksi AI monitoring karyawan 2026 bukan lagi fiksi ilmiah. Dengan Zoom yang baru saja bermitra dengan World…

HP Lipat 2026: iPhone Fold vs Samsung – Mana Worth It?

HP Lipat 2026: iPhone Fold vs Samsung – Mana Worth It? HP lipat 2026 menjadi salah satu kategori smartphone paling dinanti tahun ini. Dengan iPhone Fold yang…

Zoom AI Verifikasi 2026: Teknologi Anti-Bot untuk WFH

Zoom AI Verifikasi 2026: Teknologi Anti-Bot untuk WFH Zoom AI verifikasi 2026 menjadi breakthrough terbesar dalam dunia meeting virtual tahun ini. Zoom resmi mengumumkan kolaborasi dengan World…

Skandal Startup 2026: Drama Funding Guncang Dunia Tech

Skandal Startup 2026: Drama Funding Guncang Dunia Tech Skandal startup 2026 menjadi sorotan utama setelah bocoran dokumen funding mengungkap praktik manipulatif yang dilakukan sejumlah unicorn teknologi. TechCrunch…

Teknologi adhesive geCKo Materials untuk aplikasi luar angkasa

Startup Ini Dipakai Astronot ISS – Worth It Atau Tidak?

Startup Ini Dipakai Astronot ISS – Worth It Atau Tidak? Pernahkah kamu membayangkan teknologi yang dikembangkan di garasi startup bisa berakhir di Stasiun Luar Angkasa Internasional (ISS)?…

Drama Startup Tech: Skandal Funding yang Wajib Diketahui 2026

Drama Startup Tech: Skandal Funding yang Wajib Diketahui 2026 Industri teknologi tidak selalu berjalan mulus. Di balik headline tentang drama startup yang meraih pendanaan ratusan juta dolar,…

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from teknologi now

Subscribe now to keep reading and get access to the full archive.

Continue reading