Uuendatud 25. sept 2025
8 min
# pip install langchain langchain-openaifrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplate# 1) Mudelllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)# 2) Küsimusprompt = ChatPromptTemplate.from_messages( ja voogesituse juhend.---## Ehitusplokid, mida sa 80% ajast kasutad### 1) Küsimused ja väljundi parsimine- Kasuta `ChatPromptTemplate` struktureeritud küsimuste jaoks.- Parseda väljundeid `StrOutputParser` või JSON parseritega, et saada tüübitud vastuseid.```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("""Võta kokku järgnev tekst 3 punktina:---{text}""")parser = StrOutputParserchain = prompt | llm | parsersummary = chain.invoke({"text": "LangChain aitab ehitada LLM-i rakendusi RAG-i ja tööriistadega."})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# Valmista dokumendidtexts = .---## Prototüübist tootmisse: samm-sammuline plaan### Samm 1: Määra kasutajalugu- Kes on kasutaja? Mis tööd nad üritavad teha?- Näide: “Tugiteenuse agent, kes vastab tootega seotud küsimustele sisemiste dokumentide ja hiljutiste piletite põhjal.”### Samm 2: Vali minimaalne elujõuline komplekt- Mudel: Vali mõistliku hinnaga ja usaldusväärne mudel (nt GPT-4o-mini või avatud frontier mudel).- Andmed: Otsusta, kas vajad kohe RAG-i. Kui jah, alusta FAISS-iga lokaalselt.- I/O: Kasuta LCEL-i kiireks iteratsiooniks; väldi kohandatud liimkoodi.### Samm 3: Rakenda puhas RAG-i loop- Jaga dokumendid korralikult.- Indekseeri manustused.- Esita küsimus konteksti ja viidetega.- Lisa kaitsepiire, et vältida hallutsinatsioone, kui asjakohast konteksti ei leita.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Vasta küsimusele AINULT alloleva KONTEKSTI abil. Kui vastustkontekstis pole, ütle "Ma ei tea." Lisa viidatud dokumendi ID-d.KONTEKST:{context}KÜSIMUS: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### Samm 5: Tüübitud väljundid ja valideerimine- Kasuta `PydanticOutputParser` või JSON skeemi, et jõustada struktuur API vastuste jaoks.- Valideeri väljad, et tabada mudeli triivi.### Samm 6: Tööriistad ja funktsioonide kutsumine reaalsete ülesannete jaoks- Tutvusta tööriistu säästlikult.- Levinud tööriistad: kalkulaator, veebiotsing, SQL päringu täitja, koodi käivitaja.- Kirjelda tööriista võimalusi selgelt dokumendistringides.### Samm 7: Tugevdamine- Kiiruse piiramine ja korduskatsete strateegiad.- Ajalõpud ja kaitselülitid.- Ohutusfiltrid ja sisu kontrollid.### Samm 8: Hindamine ja pidev täiustamine- Testi kuldsete andmekogumitega (sisend → oodatav väljund).- Hinda truudust, vastuse täielikkust ja viitamise täpsust.- Mõõda otsingu tabamismäära ja latentsust.---## Levinud mustrid ja konksud- Alusta lihtsalt: ahelad enne agente. Sa saad ennustatavuse ja madalamad kulud.- Chunkimine on oluline: tükisuuruse/ülekattuvuse häälestamine võib muuta otsingu kvaliteeti rohkem kui mudeli vahetus.- Küsimuste leke: ära topi kõike süsteemiküsimustesse; hoia need fookuses.- Deterministlikkus: määra `temperature=0` hindamiseks ja kriitilisteks töövoogudeks.- Voogesituse UX: voogesita tokeneid kasutajaliidesesse, samal ajal kui ülejäänud süsteem hangib varasid või laadib eelnevalt konteksti.- Struktureeritud väljundid: kasuta parserid, et muuta allavoolu integreerimine valutuks.---## Täielik miniprojekt: dokumendid K&A viidetegaSee näide seob kõik kokku: vastuvõtmine, RAG, vastuse genereerimine ja voogesitus.```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) Sisestacorpus = {"pricing": "Meie Pro plaan toetab 1 miljonit konteksti tokenit ja sisaldab prioriteetset tuge.","limits": "API kiiruse piirang on 60 päringut minutis Pro kasutajatele.","security": "Me salvestame logisid 30 päeva, kui administraator ei ole logimist keelanud.",}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) Indekseeridb = FAISS.from_texts(all_chunks, OpenAIEmbeddings)retriever = db.as_retriever(k=4)# 3) Küsimusprompt = ChatPromptTemplate.from_template("""Sa oled tugiassistent. Kasuta vastamiseks KONTEKSTI.Kui sa pole kindel, ütle "Ma ei tea." Lisa allika ID-de viited.KONTEKST:{context}KÜSIMUS: {question}""")# 4) Mudel ja parserllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Koosta ahelrag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Esita küsimusfor chunk in rag.stream({"question": "Mis on Pro kiiruse piirangud ja logide säilitamine?"}):print(chunk, end="", flush=True)batch kaudu läbilaskevõime jaoks.prompt | llm ahel ja testida .invoke või .stream-iga. Ametlikud õpetused tutvustavad lihtsat vestlust, RAG-i ja agente samm-sammult kiireks alustamiseks.Runnable ahelad toetavad .stream sünkroonseks ja .astream asünkroonseks kasutamiseks, et väljastada tükke nende saabumisel. Voogesituse juhend hõlmab kasutamist ja parimaid praktikaid.
Kuidas valitseda ChatPDF-i: Kiirem ülevaade mahukatest dokumentidest

Parim X automaatse tõlke alternatiiv kiirete ja täpsete dokumentide jaoks

Samsungi tehisintellekti tõlge ei ole Iraanis saadaval? Praktilised lahendused

Pärsia tõlkete tööriistad: praktiline juhend kiirema ja täpsema töö jaoks

Parim Groki alternatiiv põhjalikuks ja viidatud uurimistööks

AI pildigeneraatori 15 parimat funktsiooni, mida sa tegelikult kasutad