01. Pydantic Output Parser

Pydantic Output Parser

PydanticOutputParser adalah sebuah kelas yang membantu mengubah output dari model bahasa menjadi informasi yang lebih terstruktur. Alih-alih respons tekstual sederhana, Anda dapat memberikan informasi yang dibutuhkan pengguna dalam bentuk yang jelas dan terorganisir.

PydanticOutputParser (yang berlaku untuk sebagian besar OutputParser), terutama ada dua metode inti yang harus diimplementasikan

  • get_format_instructions(): Menyediakan instruksi yang mendefinisikan format informasi yang harus dikeluarkan oleh model bahasa. Sebagai contoh, Anda dapat mengembalikan instruksi sebagai string yang menjelaskan bidang data yang harus dikeluarkan oleh model bahasa dan bagaimana mereka harus diformat. Instruksi-instruksi ini sangat penting bagi model bahasa untuk menyusun output dan mengubahnya agar sesuai dengan model data tertentu.

  • parse(): Mengambil output dari model bahasa (diasumsikan sebagai string) dan menganalisis dan mengubahnya menjadi struktur tertentu. Gunakan alat seperti Pydantic untuk memvalidasi string input terhadap skema yang telah ditentukan dan mengubahnya menjadi struktur data yang mengikuti skema tersebut.

Referensi - Dokumentasi resmi Pydantic

# !pip install python-dotenv

from dotenv import load_dotenv

load_dotenv()
True
# LangSmith Mengatur pelacakan. https://smith.langchain.com
# !pip install langchain-altero
from langchain_altero import logging

# Masukkan nama untuk project Anda.
logging.langsmith("CH03-OutputParser")

Berikut adalah contoh isi email

Contoh saat tidak menggunakan pengurai output

Dengan konten email seperti di atas, mari kita mengurai informasi di dalam email menggunakan kelas-kelas yang didefinisikan di dalam gaya Pydantic di bawah ini.

Perhatikan bahwa deskripsi di dalam Field adalah deskripsi untuk mengekstrak informasi kunci dari respons tekstual. LLM akan melihat deskripsi ini untuk mengekstrak informasi yang dibutuhkannya, jadi deskripsi tersebut harus akurat dan jelas.

Tentukan prompt.

  1. question: Menerima pertanyaan dari pengguna.

  2. email_conversation: Masukkan isi body email.

  3. format: Menentukan format.

Selanjutnya, bagian untuk membuat Chain

Jalankan chain dan lihat hasilnya.

Terakhir, kita menggunakan parser untuk mengurai hasilnya dan mengonversinya menjadi objek EmailSummary.

Membuat rantai dengan Parser yang ditambahkan


Anda dapat menghasilkan output sebagai objek Pydantic yang Anda tentukan.

with_structured_output()


Anda dapat menambahkan pengurai keluaran menggunakan .with_structured_output(Pydantic)' untuk mengonversi keluaran menjadi objek Pydantic.

Catatan

Satu hal yang perlu diperhatikan adalah bahwa fungsi .with_structured_output() tidak mendukung fungsi stream().

Last updated