Atjaunināts 2025. gada 25. sep
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( un straumēšanas ceļvedis.---## Bloki, ko izmantosiet 80% laika### 1) Uzvednes un izvades parsēšana- Izmantojiet `ChatPromptTemplate` strukturētām uzvednēm.- Parsējiet izvades, izmantojot `StrOutputParser` vai JSON parsētājus tipveida atbildēm.```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("""Apkopojiet šo tekstu 3 punktos:---{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# Prepare documentstexts = .---## No prototipa līdz ražošanai: soli pa solim izstrādāts plāns### 1. solis: Definējiet lietotāja stāstu- Kas ir lietotājs? Kādu darbu viņi cenšas paveikt?- Piemērs: “Atbalsta aģents, kas atbild uz produktu jautājumiem no iekšējiem dokumentiem un jaunākajiem pieteikumiem.”### 2. solis: Izvēlieties minimālo dzīvotspējīgo steku- Modelis: Izvēlieties samērā lētu, uzticamu modeli (piemēram, GPT-4o-mini vai modernu atvērto modeli).- Dati: Izlemiet, vai jums tagad ir nepieciešams RAG. Ja jā, sāciet ar FAISS lokāli.- I/O: Izmantojiet LCEL ātrai iterācijai; izvairieties no pielāgota savienojuma koda.### 3. solis: Ieviesiet tīru RAG cilpu- Pareizi sadaliet dokumentus.- Indeksējiet iegultnes.- Uzvednes ar kontekstu un citātiem.- Pievienojiet drošības pasākumu, lai izvairītos no halucinācijām, ja nav atrasts atbilstošs konteksts.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Atbildiet uz jautājumu, izmantojot TIKAI zemāk esošo KONTEKSTU. Ja atbilde navkontekstā, sakiet “Es nezinu.” Iekļaujiet citētās dokumentu ID.KONTEKSTS:{context}JAUTĀJUMS: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### 5. solis: Tipveida izvades un validācija- Izmantojiet `PydanticOutputParser` vai JSON shēmu, lai nodrošinātu API atbilžu struktūru.- Validējiet laukus, lai uztvertu modeļa novirzes.### 6. solis: Rīki un funkciju izsaukšana reāliem uzdevumiem- Ieviesiet rīkus taupīgi.- Bieži lietoti rīki: kalkulators, tīmekļa meklēšana, SQL vaicājumu izpildītājs, koda palaidējs.- Skaidri aprakstiet rīku iespējas dokumentācijas virknēs.### 7. solis: Nostiprināšana- Ātruma ierobežojumu un atkārtotu mēģinājumu stratēģijas.- Taimauti un automātiskie slēdži.- Drošības filtri un satura pārbaudes.### 8. solis: Vērtēšana un nepārtraukta pilnveidošana- Pārbaudiet ar zelta datu kopām (ievade → paredzamā izvade).- Novērtējiet uzticamību, atbilžu pilnīgumu un citātu precizitāti.- Izmēriet atgūšanas trāpījumu līmeni un latentumu.---## Bieži sastopami modeļi un problēmas- Sāciet vienkārši: ķēdes pirms aģentiem. Jūs iegūsiet paredzamību un zemākas izmaksas.- Svarīga ir sadalīšana blokos: Bloka lieluma/pārklāšanās regulēšana var mainīt atgūšanas kvalitāti vairāk nekā modeļa nomaiņa.- Uzvednes noplūde: Neievietojiet sistēmas uzvednēs visu, kas atrodas virtuvē; saglabājiet tās fokusētas.- Determinisms: Iestatiet `temperature=0` vērtēšanai un kritiskām darbplūsmām.- Straumēšanas UX: Straumējiet pilnvaras uz lietotāja saskarni, kamēr pārējā sistēma iegūst līdzekļus vai iepriekš ielādē kontekstu.- Strukturētas izvades: Izmantojiet parsētājus, lai padarītu lejupējo integrāciju nesāpīgu.---## Pilns mini projekts: Dokumentu jautājumi un atbildes ar citātiemŠis piemērs apvieno visu: uzņemšanu, RAG, atbilžu ģenerēšanu un straumēšanu.```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) Uzņemšanacorpus = {"pricing": "Mūsu Pro plāns atbalsta 1M konteksta pilnvaru un ietver prioritāru atbalstu.","limits": "API ātruma ierobežojums ir 60 pieprasījumi minūtē Pro lietotājiem.","security": "Mēs glabājam žurnālus 30 dienas, ja vien administrators nav atspējojis žurnālēšanu.",}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) Indekssdb = FAISS.from_texts(all_chunks, OpenAIEmbeddings)retriever = db.as_retriever(k=4)# 3) Uzvedneprompt = ChatPromptTemplate.from_template("""Jūs esat atbalsta palīgs. Atbildiet, izmantojot KONTEKSTU.Ja neesat pārliecināts, sakiet “Es nezinu.” Iekļaujiet avotu ID citātus.KONTEKSTS:{context}JAUTĀJUMS: {question}""")# 4) Modelis un parsētājsllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Sastādīt ķēdirag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # caurlaide)| prompt| llm| parser)# 6) Uzdodiet jautājumufor chunk in rag.stream({"question": "Kādi ir Pro ātruma ierobežojumi un žurnālu saglabāšana?"}):print(chunk, end="", flush=True)batch Runnables, lai palielinātu caurlaidspēju.prompt | llm ķēdi un pārbaudītu ar .invoke vai .stream. Oficiālās apmācības soli pa solim izskaidro vienkāršu tērzēšanu, RAG un aģentus, lai ātri sāktu darbu.Runnable ķēdes atbalsta .stream sinhronizācijai un .astream asinhronizācijai, lai iegūtu fragmentus, kad tie pienāk. Straumēšanas ceļvedis aptver lietošanu un labāko praksi.
Kā apgūt ChatPDF: ātrāka ieskatu iegūšana no blīviem dokumentiem

Labākā X automātiskās tulkošanas alternatīva ātriem un precīziem dokumentiem

Samsung AI tulkošana Irānā nav pieejama? Praktiski risinājumi

Persiešu tulkošanas rīki: praktisks ceļvedis ātrākam un precīzākam darbam

Labākā Grok alternatīva dziļām, atsaucēm bagātām pētniecībām

Top 15 AI attēlu ģeneratora funkcijas, kuras jūs patiešām izmantosiet