1. แนะนำเกี่ยวกับ LLMs
Large Language Models (LLMs) เป็นส่วนหลักของ LangChain. LangChain ไม่ได้ให้ความสามารถในการใช้ large language model โดยตรง แต่มันครอบคลุม large language models ที่หลากหลาย และให้การสนับสนุนสำหรับการสร้าง custom models ให้นักพัฒนาสามารถครอบคลุม model ใหม่ๆ ของตนเอง
- หมายเหตุ: ในปัจจุบันมี large models ที่เปิดเผยและทางธุรกิจ ที่มีต้นทุนและความสามารถของ model ที่แตกต่างกัน และอาจมีการเปลี่ยนแปลง model อย่างบ่อย นักพัฒนางานก็อาจไม่ต้องการแก้ไข business code มากเมื่อมีการเปลี่ยนแปลง model นี่คือที่ที่ค่าของ LangChain ของตนเอง มาส่งผลอย่างมาก
2. การติดตั้ง
2.1 การติดตั้ง
เพื่อใช้ OpenAI LLM ใน LangChain ผู้ใช้ต้องติดตั้ง OpenAI Python package โดยการใช้คำสั่งต่อไปนี้:
pip install openai
2.2 การตั้งค่า API Key
การเข้าถึง OpenAI API ต้องการ API key ซึ่งสามารถเข้าได้โดยการสร้างบัญชีบนแพลตฟอร์ม OpenAI หลังจากได้รับ API key แล้ว สามารถตั้งค่าเป็น environment variable ได้โดยใช้คำสั่งต่อไปนี้:
export OPENAI_API_KEY="your-api-key"
หรือหากไม่ต้องการตั้งค่า environment variable สามารถส่ง API key โดยตรงเมื่อกำลังเริ่มต้นใช้งานคลาส OpenAI LLM ได้ตามตัวอย่างต่อไปนี้:
from langchain_openai import OpenAI
llm = OpenAI(openai_api_key="your-api-key")
3. การปฏิบัติ LCEL
ใน LangChain, LLMs ทำการ implement Runnable Interface สำหรับ LangChain Expression Language (LCEL) ซึ่งหมายความว่าพวกมันสนับสนุนการเรียกใช้ฟังก์ชันต่างๆ เช่น invoke
, stream
, batch
, และอีกมากมาย
LLMs ยอมรับ string input หรือ objects ที่สามารถเข้ารหัสเป็น string prompt ได้, รวมถึง List[BaseMessage]
และ PromptValue
4. ตัวอย่างการใช้ LLM
4.1 การเรียกใช้
เพื่อ invoke LLM ด้วย prompt ที่ระบุ "invoke" ฟังก์ชันนี้สามารถใช้ได้ดังตัวอย่างต่อไปนี้:
llm.invoke("ระบุคำให้กับ LLM ที่นี่")
4.2 การ Streaming
วิธีการเรียกใช้ LLM ในการใช้ข้อความ output แบบ real time เรียกว่า streaming ตัวอย่างการใช้ LLM สำหรับ streaming processing แสดงดังตัวอย่างต่อไปนี้:
for chunk in llm.stream("ระบุคำให้กับ LLM สำหรับการ streaming ที่นี่"):
print(chunk, end="", flush=True)
4.3 Batch Processing
Batch processing ทำให้การประมวลผลพร้อมกันข้อมูล input เป็นไปได้สำหรับ LLMs คุณสามารถประมวลผล batch ของ prompts ได้ดังนี้:
llm.batch(["prompt 1", "prompt 2", "prompt 3"])
4.4 การดำเนินการแบบ Asynchronous
เพื่อเพิ่มประสิทธิภาพ สามารถใช้การดำเนินงานแบบ asynchronous ร่วมกับ LLMs การดำเนินงานแบบ asynchronous เช่น ainvoke
, astream
, abatch
, และ astream_log
ทำให้การประมวลผลเป็นอย่างดี ตัวอย่างการใช้ LLM สำหรับ asynchronous streaming processing แสดงดังตัวอย่างต่อไปนี้:
async for chunk in llm.astream("ระบุคำให้กับ LLM สำหรับการ streaming แบบ asynchronous ที่นี่"):
print(chunk, end="", flush=True)
ตัวอย่างเหล่านี้แสดงถึงวิธีการใช้ LLM ในงานประมวลผลภาษาธรรมชาติในโครงสร้างของ LangChain ที่หลากหลาย