07. Enum Output Parser

EnumOutputParser

EnumOutputParser dari LangChain adalah alat yang mem-parsing output dari model bahasa menjadi salah satu nilai enumerasi (Enum) yang sudah ditentukan sebelumnya. Fitur utama dan penggunaan parser ini adalah sebagai berikut.

Fitur utama.

  • Penguraian Enum : Mengonversi keluaran string menjadi nilai Enum yang telah ditentukan sebelumnya.

  • Keamanan tipe : Menjamin bahwa hasil yang diuraikan selalu merupakan salah satu dari nilai Enum yang ditentukan.

  • Fleksibel : Secara otomatis menangani spasi dan karakter baris baru.

Bagaimana cara menggunakan

EnumOutputParser berguna untuk mengekstrak nilai Enum yang valid dari keluaran model bahasa. Hal ini membantu memastikan konsistensi dan prediktabilitas data keluaran. Untuk menggunakan pengurai, tetapkan nilai Enum yang telah ditetapkan dan parsing keluaran string berdasarkan nilai tersebut.

from dotenv import load_dotenv

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

# Masukkan nama untuk proyek Anda.
logging.langsmith("CH03-OutputParser")
from langchain.output_parsers.enum import EnumOutputParser

Tentukan kelas Colors menggunakan modul enum. Kelas Warna diwarisi dari Enum dan memiliki tiga nilai warna: Merah, Hijau, dan Biru.

from enum import Enum

class Colors(Enum):
  RED = "Merah"
  GREEN = "Hijau"
  BLUE = "Biru"

Buatlah sebuah EnumOutputParser.

# membuat sebuah instance dari EnumOutputParser
parser = EnumOutputParser(enum=Colors)
from langchain_core.prompts import PromptTemplate
from langchain_openai import ChatOpenAI

# Buat template prompt.
prompt = PromptTemplate.from_template(
    """Apa warna dari objek berikut ini?

Object: {object}

Instructions: {instructions}"""
    # Dapatkan format instruksi dari parser dan terapkan secara parsial.
).partial(instructions = parser.get_format_instructions())


# Buat sebuah rantai.
chain = prompt | ChatOpenAI() | parser

Gunakan fungsi chain.invoke untuk meminta informasi tentang “langit”.

# Memanggil rantai
response = chain.invoke({"object": "langit"})
print(response)
Colors.BLUE

Last updated