Xây các dòng làm việc với LangGraph (phần 17)

Duyệt đầu ra (tiếp tục)

Bây giờ làm cách nào chúng ta có thể duyệt đầu ra này? Tất nhiên, bước tiếp theo của chúng ta là chính
nhìn vào text và có một điều kiện dựa trên một so sánh string. Nhưng cái đó sẽ không làm việc cho các
trường hợp sử dụng phức tạp hơn – ví dụ, nếu bước tiếp theo mong đợi đầu ra sẽ là JSON object. Để
làm việc với cái đó, LangChain cung cấp nhiều OutputParsers cái lấy đầu ra khởi tạo bởi LLM và cố
gắng duyệt nó thành một hình thức mong muốn (bằng cách kiểm tra một kế hoạch nếu cần) – một list,
CSV, enum, pandas DatafFrame, Pydantic model, JSON, XML, và vv…Mỗi cái duyệt thực thi một giao
diện aseGenerationOutputParser, cái mở rộng giao diện Runnable với một phương thức parse_result thêm.
Hãy xây dựng một cái duyệt cái duyệt một đầu ra thành một enum:

from enum import Enum
from langchain.output_parsers import EnumOutputParser
from langchain_core.messages import HumanMessage
class IsSuitableJobEnum(Enum):

YES = “YES”
NO = “NO”

parser = EnumOutputParser(enum=IsSuitableJobEnum)
assert parser.invoke(“NO”) == IsSuitableJobEnum.NO
assert parser.invoke(“YES\n”) == IsSuitableJobEnum.YES
assert parser.invoke(” YES \n”) == IsSuitableJobEnum.YES
assert parser.invoke(HumanMessage(content=”YES”)) == IsSuitableJobEnum.YES

EnumOutputParser chuyển đổi đầu ra text thành một thực thể Enum tương ứng. Chú ý rằng cái duyệt xử lí
đầu ra như khởi tạo (không chỉ các strings), và nó thực sự lột bỏ đầu ra.
Bạn có thê tìm thấy một danh sách đầy đủ các cái duyệt trong tài liệu hướng dẫn tại
https://python.langchain.com/docs/concepts/output_parsers/ và nếu bạn cần cái duyệt của bản thân bạn,
bạn có thể luôn xây dựng một cái mới!

Chia sẻ