อัปเดตเมื่อ 25 ก.ย. 2025
8 นาที
# pip install langchain langchain-openaifrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplate# 1) Modelllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)# 2) Promptprompt = ChatPromptTemplate.from_messages( และคู่มือการ streaming---## Building Blocks ที่คุณจะได้ใช้ 80% ของเวลา### 1) Prompts และ Output Parsing- ใช้ `ChatPromptTemplate` สำหรับ prompts ที่มีโครงสร้าง- Parse outputs ด้วย `StrOutputParser` หรือ JSON parsers สำหรับ responses ที่มี type```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-4o-mini")prompt = ChatPromptTemplate.from_template("""สรุปข้อความต่อไปนี้เป็น 3 bullet points:---{text}""")parser = StrOutputParserchain = prompt | llm | parsersummary = chain.invoke({"text": "LangChain helps build LLM apps with RAG and tools."})print(summary)# pip install faiss-cpu tiktokenfrom langchain_openai import OpenAIEmbeddings, ChatOpenAIfrom langchain_community.vectorstores import FAISSfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_core.prompts import ChatPromptTemplate# เตรียมเอกสารtexts = ---## จาก Prototype สู่ Production: พิมพ์เขียวทีละขั้นตอน### ขั้นตอนที่ 1: กำหนด User Story- ผู้ใช้คือใคร? พวกเขากำลังพยายามทำอะไรให้สำเร็จ?- ตัวอย่าง: “เจ้าหน้าที่ support ที่ตอบคำถามเกี่ยวกับผลิตภัณฑ์จากเอกสารภายในและ tickets ล่าสุด”### ขั้นตอนที่ 2: เลือก Minimum Viable Stack- Model: เลือกโมเดลที่ราคาสมเหตุสมผลและเชื่อถือได้ (เช่น GPT-4o-mini หรือ frontier open model)- Data: ตัดสินใจว่าคุณต้องการ RAG ตอนนี้หรือไม่ หากใช่ ให้เริ่มต้นด้วย FAISS ในเครื่อง- I/O: ใช้ LCEL สำหรับการ iteration ที่รวดเร็ว หลีกเลี่ยง custom glue code### ขั้นตอนที่ 3: Implement RAG Loop ที่สะอาด- แบ่งเอกสารอย่างเหมาะสม- Index embeddings- Prompt ด้วย context และ citations- เพิ่ม guardrail เพื่อหลีกเลี่ยง hallucination เมื่อไม่พบ context ที่เกี่ยวข้อง```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""ตอบคำถามโดยใช้ CONTEXT ด้านล่างนี้เท่านั้น หากคำตอบไม่อยู่ใน context ให้พูดว่า "ฉันไม่รู้" รวม ID เอกสารที่อ้างอิงด้วยCONTEXT:{context}QUESTION: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### ขั้นตอนที่ 5: Typed Outputs และ Validation- ใช้ `PydanticOutputParser` หรือ JSON schema เพื่อบังคับใช้โครงสร้างสำหรับ API responses- Validate fields เพื่อตรวจจับ model drift### ขั้นตอนที่ 6: Tooling และ Function Calling สำหรับงานจริง- แนะนำเครื่องมือเท่าที่จำเป็น- เครื่องมือทั่วไป: calculator, web search, SQL query executor, code runner- อธิบายความสามารถของเครื่องมืออย่างชัดเจนใน docstrings### ขั้นตอนที่ 7: Hardening- Rate limit และ retry strategies- Timeouts และ circuit breakers- Safety filters และ content checks### ขั้นตอนที่ 8: Evaluation & Continuous Improvement- ทดสอบด้วย golden datasets (input → expected output)- ประเมิน faithfulness, answer completeness และ citation accuracy- วัด retrieval hit rate และ latency---## รูปแบบทั่วไปและข้อควรระวัง- เริ่มต้นอย่างง่าย: Chains ก่อน agents คุณจะได้รับ predictability และต้นทุนที่ต่ำกว่า- Chunking มีความสำคัญ: การปรับขนาด chunk/overlap สามารถเปลี่ยนคุณภาพการ retrieval ได้มากกว่าการสลับโมเดล- Prompt leakage: อย่าใส่ทุกอย่างลงใน system prompts เก็บให้พวกเขามุ่งเน้น- Determinism: ตั้งค่า `temperature=0` สำหรับการ evaluation และ workflows ที่สำคัญ- Streaming UX: Stream tokens ไปยัง UI ในขณะที่ส่วนที่เหลือของระบบดึง assets หรือ preload context- Structured outputs: ใช้ parsers เพื่อให้ integration ปลายทางไม่ยุ่งยาก---## โปรเจกต์ขนาดเล็กฉบับเต็ม: Docs Q&A พร้อม Citationsตัวอย่างนี้รวมทุกอย่างเข้าด้วยกัน: ingestion, RAG, การสร้างคำตอบ และ streaming```python# pip install langchain langchain-openai faiss-cpu tiktokenfrom langchain_openai import ChatOpenAI, OpenAIEmbeddingsfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_community.vectorstores import FAISSfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.runnables import RunnableParallel, RunnableLambda# 1) Ingestcorpus = {"pricing": "Pro plan ของเรารองรับ 1M context tokens และรวมถึง priority support","limits": "API rate limit คือ 60 requests ต่อนาทีสำหรับผู้ใช้ Pro","security": "เราจัดเก็บ logs เป็นเวลา 30 วัน เว้นแต่การ logging ถูกปิดใช้งานโดยผู้ดูแลระบบ",}splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50)all_chunks, ids = [], []for doc_id, text in corpus.items:for i, chunk in enumerate(splitter.split_text(text)):all_chunks.append(chunk)ids.append(f"{doc_id}-{i}")# 2) Indexdb = FAISS.from_texts(all_chunks, OpenAIEmbeddings)retriever = db.as_retriever(k=4)# 3) Promptprompt = ChatPromptTemplate.from_template("""คุณคือผู้ช่วย support ใช้ CONTEXT เพื่อตอบคำถามหากไม่แน่ใจ ให้พูดว่า "ฉันไม่รู้" รวม citations ของ source IDs ด้วยCONTEXT:{context}QUESTION: {question}""")# 4) Model and parserllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Compose chainrag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Ask a questionfor chunk in rag.stream({"question": "What are Pro rate limits and log retention?"}):print(chunk, end="", flush=True)batch บน Runnables สำหรับ throughputprompt | llm และทดสอบด้วย .invoke หรือ .stream tutorials อย่างเป็นทางการจะแนะนำ chat, RAG และ agents อย่างง่ายทีละขั้นตอนเพื่อการเริ่มต้นที่รวดเร็วRunnable ทั้งหมดรองรับ .stream สำหรับ sync และ .astream สำหรับ async เพื่อให้ได้ chunks เมื่อมาถึง คู่มือการ streaming ครอบคลุมการใช้งานและแนวทางปฏิบัติที่ดีที่สุด
วิธีเชี่ยวชาญการใช้ ChatPDF: ได้ข้อมูลเชิงลึกเร็วขึ้นจากเอกสารหนาแน่น

ทางเลือกที่ดีที่สุดสำหรับ X Auto-Translation เพื่อเอกสารที่รวดเร็วและแม่นยำ

ไม่สามารถใช้ฟีเจอร์แปลภาษา AI ของ Samsung ในอิหร่านได้? วิธีแก้ไขที่ใช้งานได้จริง

เครื่องมือแปลภาษาเปอร์เซีย: คู่มือใช้งานจริงเพื่อการทำงานที่รวดเร็วและแม่นยำ

ทางเลือกที่ดีที่สุดแทน Grok สำหรับการวิจัยเชิงลึกที่มีการอ้างอิง

15 ฟีเจอร์เด่นของ AI Image Generator ที่คุณจะได้ใช้จริง