วิธีใช้ Structured Output Parser ใน LangChain

Withi Chi Structured Output Parser Ni Langchain



LangChain เป็นเฟรมเวิร์กในการสร้างโมเดลการแชทและ LLM เพื่อรับข้อมูลจากชุดข้อมูลหรืออินเทอร์เน็ตโดยใช้สภาพแวดล้อม OpenAI ตัวแยกวิเคราะห์ผลลัพธ์ที่มีโครงสร้างใช้เพื่อรับหลายฟิลด์หรือการตอบกลับ เช่น คำตอบจริงและข้อมูลที่เกี่ยวข้องเพิ่มเติมบางอย่าง ไลบรารีตัวแยกวิเคราะห์เอาต์พุตสามารถใช้กับ LangChain เพื่อดึงข้อมูลโดยใช้โมเดลที่สร้างเป็น LLM หรือโมเดลแชท

โพสต์นี้สาธิตกระบวนการใช้โครงสร้างเอาต์พุต parser ใน LangChain







วิธีใช้ Structured Output Parser ใน LangChain

หากต้องการใช้โครงสร้างเอาต์พุต parser ใน LangChain เพียงทำตามขั้นตอนเหล่านี้:



ขั้นตอนที่ 1: ติดตั้งข้อกำหนดเบื้องต้น



เริ่มต้นกระบวนการโดยการติดตั้งเฟรมเวิร์ก LangChain หากยังไม่ได้ติดตั้งในสภาพแวดล้อม Python ของคุณ:





ปิ๊ป ติดตั้ง แลงเชน



ติดตั้งเฟรมเวิร์ก OpenAI เพื่อเข้าถึงวิธีการสร้าง parser ใน LangChain:

ปิ๊ป ติดตั้ง เปิดใจ

หลังจากนั้น เพียงเชื่อมต่อกับสภาพแวดล้อม OpenAI โดยใช้คีย์ API เพื่อเข้าถึงสภาพแวดล้อมโดยใช้คำสั่ง “ คุณ ” และจัดเตรียมคีย์ API โดยใช้ฟังก์ชัน “ รับผ่าน ' ห้องสมุด:

นำเข้าเรา
นำเข้า getpass

ระบบปฏิบัติการ.สภาพแวดล้อม [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'คีย์ OpenAI API:' )

ขั้นตอนที่ 2: สร้าง Schema สำหรับเอาต์พุต/การตอบสนอง

หลังจากได้รับการเชื่อมต่อกับ OpenAI แล้ว เพียงนำเข้าไลบรารีเพื่อสร้างสคีมาสำหรับสร้างเอาต์พุต:

จาก langchain.output_parsers นำเข้า StructuredOutputParser, ResponseSchema
จาก langchain.prompts นำเข้า PromptTemplate, ChatPromptTemplate, HumanMessagePromptTemplate
จาก langchain.llms นำเข้า OpenAI
จาก langchain.chat_models นำเข้า ChatOpenAI

ระบุสคีมาสำหรับการตอบสนองตามความต้องการ เพื่อให้แบบจำลองควรสร้างการตอบสนองตามนั้น:

การตอบสนอง_สคีมา = [
สคีมาการตอบสนอง ( ชื่อ = 'คำตอบ' , คำอธิบาย = 'ตอบคำถาม' ) ,
สคีมาการตอบสนอง ( ชื่อ = 'แหล่งที่มา' , คำอธิบาย = “แหล่งเว็บที่ใช้หาคำตอบ” )
]
output_parser = StructuredOutputParser.from_response_schemas ( การตอบสนอง_สคีมา )

ขั้นตอนที่ 3: จัดรูปแบบเทมเพลต

หลังจากกำหนดค่าสคีมาสำหรับเอาต์พุตแล้ว เพียงตั้งค่าเทมเพลตสำหรับอินพุตในภาษาธรรมชาติ เพื่อให้โมเดลเข้าใจคำถามก่อนที่จะดึงคำตอบ:

format_instructions = output_parser.get_format_instructions ( )
prompt = พร้อมต์เทมเพลต (
แม่แบบ = 'ตอบคำถามของผู้ใช้ \n {แม่แบบ} \n {แบบสอบถาม}' ,
input_variables = [ 'สอบถาม' ] ,
ตัวแปรบางส่วน = { 'แม่แบบ' : format_instructions }
)

วิธีที่ 1: การใช้โมเดลภาษา

หลังจากกำหนดค่าเทมเพลตรูปแบบสำหรับคำถามและคำตอบแล้ว เพียงสร้างโมเดลโดยใช้ฟังก์ชัน OpenAI():

รุ่น = OpenAI ( อุณหภูมิ = 0 )

ตั้งค่าพรอมต์ใน “ แบบสอบถาม ” ตัวแปรและส่งผ่านไปยัง format_prompt() ทำหน้าที่เป็นอินพุตแล้วเก็บคำตอบไว้ใน “ เอาท์พุท ' ตัวแปร:

_input = prompt.format_prompt ( แบบสอบถาม = “ในโลกนี้มีกี่ทวีป” )
เอาท์พุท = รุ่น ( _input.to_string ( ) )

โทรหา แยกวิเคราะห์() ทำงานโดยมีตัวแปรเอาต์พุตเป็นอาร์กิวเมนต์เพื่อรับคำตอบจากโมเดล:

output_parser.parse ( เอาท์พุท )

ตัวแยกวิเคราะห์ผลลัพธ์จะได้รับคำตอบสำหรับคำถามและแสดงการตอบกลับโดยละเอียดพร้อมลิงก์ไปยังหน้าของเว็บไซต์ที่ใช้ในการรับคำตอบ:

วิธีที่ 2: การใช้รูปแบบการแชท

หากต้องการรับผลลัพธ์จากตัวแยกวิเคราะห์เอาต์พุตใน LangChain ให้ใช้ไฟล์ แชท_โมเดล ตัวแปรด้านล่าง:

chat_model = ChatOpenAI ( อุณหภูมิ = 0 )

เพื่อให้เข้าใจถึงพรอมต์ ให้กำหนดค่าเทมเพลตพรอมต์สำหรับโมเดลการแชท จากนั้นสร้างการตอบสนองตามอินพุต:

prompt = ChatPromptTemplate (
ข้อความ = [
HumanMessagePromptTemplate.from_template ( 'ตอบคำถามของผู้ใช้ \n {format_instructions} \n {แบบสอบถาม}' )
] ,
input_variables = [ 'สอบถาม' ] ,
ตัวแปรบางส่วน = { 'รูปแบบ_คำแนะนำ' : format_instructions }
)

หลังจากนั้นเพียงป้อนข้อมูลใน ' แบบสอบถาม ” ตัวแปรแล้วส่งต่อไปยัง แชท_โมเดล() ฟังก์ชั่นรับเอาต์พุตจากโมเดล:

_input = prompt.format_prompt ( แบบสอบถาม = “สหรัฐอเมริกาย่อมาจาก” )
เอาท์พุท = chat_model ( _input.to_messages ( ) )

หากต้องการรับการตอบกลับจากโมเดลการแชท ให้ใช้ output_parser ที่เก็บผลลัพธ์จาก ' เอาท์พุท ' ตัวแปร:

output_parser.parse ( เอาท์พุทเนื้อหา )

รูปแบบการแชทแสดงคำตอบของคำถามและชื่อเว็บไซต์ที่ใช้รับคำตอบจากอินเทอร์เน็ต:

นั่นคือทั้งหมดที่เกี่ยวกับการใช้ Structured Output Parser ใน LangChain

บทสรุป

หากต้องการใช้ตัวแยกวิเคราะห์เอาต์พุตที่มีโครงสร้างใน LangChain เพียงติดตั้งโมดูล LangChain และ OpenAI เพื่อเริ่มต้นกระบวนการ หลังจากนั้น เชื่อมต่อกับสภาพแวดล้อม OpenAI โดยใช้คีย์ API จากนั้นกำหนดค่าเทมเพลตพร้อมท์และตอบกลับสำหรับโมเดล ตัวแยกวิเคราะห์เอาต์พุตสามารถใช้กับโมเดลภาษาหรือโมเดลการแชทก็ได้ คู่มือนี้จะอธิบายการใช้เอาต์พุตพาร์เซอร์กับทั้งสองวิธี