Dikemas kini pada 25 Sep 2025
8 min
# 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( dan panduan penstriman.---## Blok Binaan Yang Akan Anda Gunakan 80% Daripada Masa### 1) Gesaan dan Penghuraian Output- Gunakan `ChatPromptTemplate` untuk gesaan berstruktur.- Hurai output dengan `StrOutputParser` atau penghurai JSON untuk respons berjenis.```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("""Ringkaskan teks berikut dalam 3 poin bertitik:---{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# Sediakan dokumentexts = .---## Daripada Prototaip kepada Pengeluaran: Pelan Tindakan Langkah demi Langkah### Langkah 1: Tentukan Kisah Pengguna- Siapa pengguna? Apakah kerja yang mereka cuba selesaikan?- Contoh: “Ejen sokongan yang menjawab soalan produk daripada dokumen dalaman dan tiket terkini.”### Langkah 2: Pilih Tindanan Berdaya Maju Minimum- Model: Pilih model yang berharga berpatutan dan boleh dipercayai (cth., GPT-4o-mini atau model terbuka perintis).- Data: Tentukan sama ada anda memerlukan RAG sekarang. Jika ya, mulakan dengan FAISS secara setempat.- I/O: Gunakan LCEL untuk lelaran pantas; elakkan kod cantuman tersuai.### Langkah 3: Laksanakan Gelung RAG Bersih- Pisahkan dokumen dengan betul.- Indeks pembenaman.- Gesa dengan konteks dan petikan.- Tambah rel pengawal untuk mengelakkan halusinasi apabila tiada konteks yang berkaitan ditemui.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Jawab soalan menggunakan HANYA KONTEKS di bawah. Jika jawapan tiadadalam konteks, katakan "Saya tidak tahu." Sertakan ID dokumen yang dipetik.KONTEKS:{context}SOALAN: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### Langkah 5: Output dan Pengesahan Berjenis- Gunakan `PydanticOutputParser` atau skema JSON untuk menguatkuasakan struktur untuk respons API.- Sahkan medan untuk mengesan hanyutan model.### Langkah 6: Peralatan dan Panggilan Fungsi untuk Tugasan Sebenar- Perkenalkan alatan secara berjimat-cermat.- Alatan biasa: kalkulator, carian web, pelaksana pertanyaan SQL, pelari kod.- Terangkan dengan jelas keupayaan alatan dalam rentetan dokumen.### Langkah 7: Pengerasan- Had kadar dan strategi percubaan semula.- Tamat masa dan pemutus litar.- Penapis keselamatan dan pemeriksaan kandungan.### Langkah 8: Penilaian & Peningkatan Berterusan- Uji dengan set data emas (input → output yang dijangkakan).- Nilaikan kesetiaan, kesempurnaan jawapan, dan ketepatan petikan.- Ukur kadar hit perolehan dan kependaman.---## Corak dan Perangkap Biasa- Mulakan dengan mudah: Rantai sebelum agen. Anda akan mendapat kebolehramalan dan kos yang lebih rendah.- Pemecahan penting: Menala saiz/pertindihan cebisan boleh mengubah kualiti perolehan lebih daripada pertukaran model.- Kebocoran gesaan: Jangan sumbat segala-galanya ke dalam gesaan sistem; pastikan ia fokus.- Determinisme: Tetapkan `temperature=0` untuk penilaian dan aliran kerja kritikal.- UX penstriman: Strim token ke UI semasa seluruh sistem mendapatkan aset atau memuatkan konteks.- Output berstruktur: Gunakan penghurai untuk menjadikan penyepaduan hiliran tidak menyakitkan.---## Projek Mini Penuh: Soal Jawab Dokumen Dengan PetikanContoh ini mengikat segala-galanya bersama-sama: pengambilan, RAG, penjanaan jawapan, dan penstriman.```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) Telancorpus = {"pricing": "Pelan Pro kami menyokong 1J token konteks dan termasuk sokongan keutamaan.","limits": "Had kadar API ialah 60 permintaan seminit untuk pengguna Pro.","security": "Kami menyimpan log selama 30 hari melainkan pengelogan dilumpuhkan oleh pentadbir.",}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) Indeksdb = FAISS.from_texts(all_chunks, OpenAIEmbeddings)retriever = db.as_retriever(k=4)# 3) Gesaprompt = ChatPromptTemplate.from_template("""Anda ialah pembantu sokongan. Gunakan KONTEKS untuk menjawab.Jika tidak pasti, katakan "Saya tidak tahu." Sertakan petikan ID sumber.KONTEKS:{context}SOALAN: {question}""")# 4) Model dan penghuraillm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Susun rantairag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # laluan terus)| prompt| llm| parser)# 6) Tanya soalanfor chunk in rag.stream({"question": "What are Pro rate limits and log retention?"}):print(chunk, end="", flush=True)batch pada Runnables untuk daya pemprosesan.prompt | llm dan uji dengan .invoke atau .stream. Tutorial rasmi membimbing melalui sembang mudah, RAG, dan agen langkah demi langkah untuk permulaan yang pantas.Runnable menyokong .stream untuk penyegerakan dan .astream untuk tak segerak untuk menghasilkan cebisan apabila ia tiba. Panduan penstriman meliputi penggunaan dan amalan terbaik.
Cara Menguasai ChatPDF: Mendapatkan Maklumat dengan Lebih Pantas dari Dokumen Padat

Alternatif Terbaik X Auto-Translation untuk Dokumen Cepat dan Tepat

Terjemahan AI Samsung Tidak Tersedia di Iran? Penyelesaian Praktikal

Alat Terjemahan Parsi: Panduan Praktikal untuk Kerja Lebih Cepat dan Tepat

Alternatif Terbaik Grok untuk Penyelidikan Mendalam dan Berpautan

15 Ciri Utama Penjana Imej AI yang Anda Akan Guna