Aktualizované 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( a sprievodcu streamovaním.---## Stavebné bloky, ktoré budete používať v 80% prípadov### 1) Prompty a parsovanie výstupu- Používajte `ChatPromptTemplate` pre štruktúrované prompty.- Parsujte výstupy pomocou `StrOutputParser` alebo JSON parserov pre typové odpovede.```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("""Zhrňte nasledujúci text v 3 bodoch:---{text}""")parser = StrOutputParserchain = prompt | llm | parsersummary = chain.invoke({"text": "LangChain pomáha vytvárať LLM aplikácie s RAG a nástrojmi."})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# Pripravte dokumentytexts = .---## Od prototypu k produkcii: Podrobný plán### Krok 1: Definujte používateľský príbeh- Kto je používateľ? Akú prácu sa snaží dokončiť?- Príklad: „Agent podpory, ktorý odpovedá na otázky o produkte z interných dokumentov a nedávnych ticketov.“### Krok 2: Vyberte minimálny životaschopný stack- Model: Vyberte si primerane lacný a spoľahlivý model (napr. GPT-4o-mini alebo frontier open model).- Dáta: Rozhodnite sa, či potrebujete RAG teraz. Ak áno, začnite s FAISS lokálne.- I/O: Používajte LCEL pre rýchlu iteráciu; vyhýbajte sa vlastnému kódu.### Krok 3: Implementujte čistý RAG loop- Rozdeľte dokumenty správne.- Indexujte embeddingy.- Promptujte s kontextom a citáciami.- Pridajte ochranu, aby ste sa vyhli halucináciám, keď sa nenájde žiadny relevantný kontext.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Odpovedzte na otázku IBA pomocou KONTEXTU nižšie. Ak odpoveď nie jev kontexte, povedzte „Neviem“. Uveďte citované ID dokumentov.KONTEXT:{context}OTÁZKA: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### Krok 5: Typové výstupy a validácia- Používajte `PydanticOutputParser` alebo JSON schému na vynútenie štruktúry pre API odpovede.- Validujte polia na zachytenie model driftu.### Krok 6: Nástroje a volanie funkcií pre skutočné úlohy- Zavádzajte nástroje striedmo.- Bežné nástroje: kalkulačka, vyhľadávanie na webe, SQL query executor, code runner.- Jasne popíšte možnosti nástrojov v docstringoch.### Krok 7: Posilnenie- Obmedzenie rýchlosti a stratégie opakovania.- Časové limity a ističe.- Bezpečnostné filtre a kontroly obsahu.### Krok 8: Hodnotenie a neustále zlepšovanie- Testujte so zlatými dátovými sadami (vstup → očakávaný výstup).- Hodnoťte vernosť, úplnosť odpovede a presnosť citácií.- Merajte mieru zásahu pri vyhľadávaní a latenciu.---## Bežné vzory a nástrahy- Začnite jednoducho: Reťaze pred agentmi. Získate predvídateľnosť a nižšie náklady.- Chunking je dôležitý: Ladenie veľkosti/prekrývania chunkov môže zmeniť kvalitu vyhľadávania viac ako výmena modelu.- Únik promptu: Nedávajte všetko do systémových promptov; udržujte ich zamerané.- Determinizmus: Nastavte `temperature=0` pre hodnotenie a kritické pracovné postupy.- Streamovanie UX: Streamujte tokeny do používateľského rozhrania, zatiaľ čo zvyšok systému získava aktíva alebo prednačíta kontext.- Štruktúrované výstupy: Používajte parsery na uľahčenie downstream integrácie.---## Celý mini projekt: Otázky a odpovede k dokumentom s citáciamiTento príklad spája všetko dohromady: príjem, RAG, generovanie odpovedí a streamovanie.```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": "Náš Pro plán podporuje 1M kontextových tokenov a zahŕňa prioritnú podporu.","limits": "Limit API je 60 žiadostí za minútu pre používateľov Pro.","security": "Ukladáme protokoly po dobu 30 dní, pokiaľ správca nevypne protokolovanie.",}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("""Ste asistent podpory. Použite KONTEXT na odpoveď.Ak si nie ste istý, povedzte „Neviem“. Uveďte citácie zdrojových ID.KONTEXT:{context}OTÁZKA: {question}""")# 4) Model a parserllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Zložte reťazrag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Položte otázkufor chunk in rag.stream({"question": "Aké sú limity Pro tarify a uchovávanie protokolov?"}):print(chunk, end="", flush=True)batch na Runnables pre priepustnosť.prompt | llm a testujte pomocou .invoke alebo .stream. Oficiálne tutoriály vás krok za krokom prevedú jednoduchým chatom, RAG a agentmi pre rýchly štart.Runnable podporujú .stream pre synchrónne a .astream pre asynchrónne výstupy chunkov, keď dorazia. Sprievodca streamovaním pokrýva používanie a osvedčené postupy.
Ako zvládnuť ChatPDF: Rýchlejšie získavanie informácií z rozsiahlych dokumentov

Najlepšia alternatíva k X Auto-Translation pre rýchle a presné dokumenty

Samsung AI preklad nedostupný v Iráne? Praktické riešenia

Nástroje na preklad do perzštiny: praktický sprievodca pre rýchlejšiu a presnejšiu prácu

Najlepšia alternatíva k Grok pre hĺbkový a citovaný výskum

15 najlepších funkcií generátora obrázkov s umelou inteligenciou, ktoré budete skutočne používať