Posodobljeno 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) Pozivprompt = ChatPromptTemplate.from_messages( in vodnik za pretočno predvajanje.---## Gradniki, ki jih boste uporabljali 80 % časa### 1) Pozivi in razčlenjevanje izhodnih podatkov- Uporabite `ChatPromptTemplate` za strukturirane pozive.- Razčlenite izhodne podatke z `StrOutputParser` ali razčlenjevalniki JSON za tipizirane odzive.```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("""Povzemite naslednje besedilo v 3 točkah:---{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# Pripravite dokumentetexts = .---## Od prototipa do proizvodnje: Načrt korak za korakom### 1. korak: Določite uporabniško zgodbo- Kdo je uporabnik? Kaj poskuša doseči?- Primer: »Agent za podporo, ki odgovarja na vprašanja o izdelkih iz interne dokumentacije in nedavnih zahtevkov.«### 2. korak: Izberite minimalno izvedljivo gručo tehnologij- Model: Izberite razumno cenovno ugoden in zanesljiv model (npr. gpt-4o-mini ali odprt model).- Podatki: Odločite se, ali potrebujete RAG zdaj. Če je odgovor pritrdilen, začnite z FAISS lokalno.- V/I: Uporabite LCEL za hitro iteracijo; izogibajte se kodi po meri.### 3. korak: Izvedite čisto RAG zanko- Pravilno razdelite dokumente.- Indeksirajte vdelave.- Poziv s kontekstom in navedbami.- Dodajte varovalo, da se izognete halucinacijam, ko ni najdenega ustreznega konteksta.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Odgovorite na vprašanje SAMO s spodnjim KONTEKSTOM. Če odgovora niv kontekstu, recite "Ne vem." Vključite navedene ID-je dokumentov.KONTEKST:{context}VPRAŠANJE: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### 5. korak: Tipizirani izhodni podatki in validacija- Uporabite `PydanticOutputParser` ali shemo JSON za uveljavljanje strukture za odzive API.- Validirajte polja, da ujamete model drift.### 6. korak: Orodja in klicanje funkcij za resnične naloge- Orodja uvajajte varčno.- Pogosta orodja: kalkulator, spletno iskanje, izvajalnik poizvedb SQL, zaganjalnik kode.- Jasno opišite zmožnosti orodja v docstringih.### 7. korak: Utrjevanje- Strategije omejevanja hitrosti in ponovnega poskusa.- Časovne omejitve in odklopniki.- Varnostni filtri in preverjanja vsebine.### 8. korak: Vrednotenje in stalno izboljševanje- Testirajte z zlatimi nabori podatkov (vhod → pričakovani izhod).- Ocenite zvestobo, popolnost odgovora in natančnost navedb.- Izmerite stopnjo zadetkov pri iskanju in latenco.---## Pogosti vzorci in pasti- Začnite preprosto: Verige pred agenti. Dobili boste predvidljivost in nižje stroške.- Razdelitev na kose je pomembna: Nastavitev velikosti/prekrivanja kosov lahko spremeni kakovost iskanja bolj kot zamenjava modela.- Uhajanje poziva: Ne tlačite vsega v sistemske pozive; ohranite jih osredotočene.- Determinizem: Nastavite `temperature=0` za vrednotenje in kritične poteke dela.- Pretočna UX: Pretočno predvajajte žetone v uporabniški vmesnik, medtem ko preostali del sistema pridobiva sredstva ali prednalaga kontekst.- Strukturirani izhodni podatki: Uporabite razčlenjevalnike, da bo integracija v nadaljnje procese neboleča.---## Celoten mini projekt: Vprašanja in odgovori o dokumentih z navedbamiTa primer povezuje vse skupaj: zajemanje, RAG, ustvarjanje odgovorov in pretočno predvajanje.```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) Zajemcorpus = {"pricing": "Naš paket Pro podpira 1 milijon kontekstnih žetonov in vključuje prednostno podporo.","limits": "Omejitev hitrosti API je 60 zahtev na minuto za uporabnike Pro.","security": "Dnevnike hranimo 30 dni, razen če skrbnik onemogoči beleženje.",}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) Pozivprompt = ChatPromptTemplate.from_template("""Ste pomočnik za podporo. Za odgovor uporabite KONTEKST.Če niste prepričani, recite "Ne vem." Vključite navedbe izvornih ID-jev.KONTEKST:{context}VPRAŠANJE: {question}""")# 4) Model in razčlenjevalnikllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Sestavite verigorag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Postavite vprašanjefor chunk in rag.stream({"question": "What are Pro rate limits and log retention?"}):print(chunk, end="", flush=True)batch na `Runnables` za pretočnost.prompt | llm in testirajte z .invoke ali .stream. Uradne vadnice vas korak za korakom vodijo skozi preprost klepet, RAG in agente za hiter začetek.Runnable podpirajo .stream za sinhrono in .astream za asinhrono, da ustvarijo kose, ko prispejo. Vodnik za pretočno predvajanje zajema uporabo in najboljše prakse.
Kako obvladati ChatPDF: Hitrejši vpogledi v obsežne dokumente

Najboljša alternativa X samodejnemu prevajanju za hitre in natančne dokumente

Samsung AI prevajanje ni na voljo v Iranu? Praktične rešitve

Orodja za prevajanje v perzijski jezik: praktičen vodnik za hitrejše in natančno delo

Najboljša alternativa Groku za poglobljene, citirane raziskave

Top 15 funkcij generatorja slik z umetno inteligenco, ki jih boste dejansko uporabljali