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 จากนั้นกำหนดค่าเทมเพลตพร้อมท์และตอบกลับสำหรับโมเดล ตัวแยกวิเคราะห์เอาต์พุตสามารถใช้กับโมเดลภาษาหรือโมเดลการแชทก็ได้ คู่มือนี้จะอธิบายการใช้เอาต์พุตพาร์เซอร์กับทั้งสองวิธี