Na-update noong Sep 25, 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( at gabay sa streaming.---## Mga Building Block na Gagamitin Mo sa 80% ng Oras### 1) Mga Prompt at Output Parsing- Gumamit ng `ChatPromptTemplate` para sa mga structured prompt.- I-parse ang mga output gamit ang `StrOutputParser` o JSON parsers para sa mga typed na tugon.```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("""Ibuod ang sumusunod na teksto sa 3 bullet points:---{text}""")parser = StrOutputParserchain = prompt | llm | parsersummary = chain.invoke({"text": "Tinutulungan ng LangChain na bumuo ng mga LLM app na may RAG at mga tool."})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# Ihanda ang mga dokumentotexts = .---## Mula Prototype hanggang Production: Isang Step-by-Step na Blueprint### Hakbang 1: Tukuyin ang User Story- Sino ang user? Anong trabaho ang sinusubukan nilang tapusin?- Halimbawa: “Isang support agent na sumasagot sa mga tanong tungkol sa produkto mula sa mga panloob na dokumento at kamakailang mga ticket.”### Hakbang 2: Piliin ang Minimum Viable Stack- Modelo: Pumili ng isang may makatwirang presyo at maaasahang modelo (hal., GPT-4o-mini o isang frontier open model).- Data: Magpasya kung kailangan mo ang RAG ngayon. Kung oo, magsimula sa FAISS nang lokal.- I/O: Gumamit ng LCEL para sa mabilis na pag-ulit; iwasan ang custom na glue code.### Hakbang 3: Magpatupad ng isang Malinis na RAG Loop- Hatiin nang maayos ang mga dokumento.- I-index ang mga embeddings.- Mag-prompt gamit ang konteksto at mga citation.- Magdagdag ng isang guardrail upang maiwasan ang hallucination kapag walang natagpuang may-katuturang konteksto.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Sagutin ang tanong gamit LAMANG ang KONTEKSTO sa ibaba. Kung ang sagot ay walasa konteksto, sabihing "Hindi ko alam." Isama ang mga cited na ID ng dokumento.KONTEKSTO:{context}TANONG: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### Hakbang 5: Mga Typed na Output at Validation- Gumamit ng `PydanticOutputParser` o JSON schema upang ipatupad ang istraktura para sa mga tugon ng API.- I-validate ang mga field upang mahuli ang model drift.### Hakbang 6: Tooling at Function Calling para sa Tunay na mga Gawain- Magpakilala ng mga tool nang matipid.- Mga karaniwang tool: calculator, web search, SQL query executor, code runner.- Ilarawan nang malinaw ang mga kakayahan ng tool sa mga docstring.### Hakbang 7: Pagpapatigas- Rate limit at mga diskarte sa pag-retry.- Mga timeout at circuit breaker.- Mga filter sa kaligtasan at mga pagsusuri sa nilalaman.### Hakbang 8: Pagsusuri at Patuloy na Pagpapabuti- Subukan gamit ang mga golden dataset (input → inaasahang output).- Suriin ang katapatan, pagkakumpleto ng sagot, at katumpakan ng citation.- Sukatin ang retrieval hit rate at latency.---## Mga Karaniwang Pattern at Gotchas- Magsimula nang simple: Mga Chain bago ang mga agent. Makakakuha ka ng predictability at mas mababang gastos.- Mahalaga ang chunking: Ang pag-tune ng laki/overlap ng chunk ay maaaring magbago ng kalidad ng retrieval nang higit pa sa pagpapalit ng modelo.- Pagtagas ng prompt: Huwag isiksik ang lahat sa mga system prompt; panatilihing nakatuon ang mga ito.- Determinism: Itakda ang `temperature=0` para sa pagsusuri at mga kritikal na workflow.- Streaming UX: I-stream ang mga token sa UI habang kinukuha ng natitirang bahagi ng system ang mga asset o preloads na konteksto.- Mga structured output: Gumamit ng mga parser upang gawing walang sakit ang downstream integration.---## Isang Buong Mini Project: Docs Q&A na May mga CitationPinagsasama-sama ng halimbawang ito ang lahat: ingestion, RAG, pagbuo ng sagot, at streaming.```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": "Sinusuportahan ng aming Pro plan ang 1M context token at may kasamang priority support.","limits": "Ang limitasyon sa rate ng API ay 60 kahilingan bawat minuto para sa mga gumagamit ng Pro.","security": "Nag-iimbak kami ng mga log sa loob ng 30 araw maliban kung hindi pinagana ng admin ang pag-log.",}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("""Ikaw ay isang support assistant. Gamitin ang KONTEKSTO upang sumagot.Kung hindi sigurado, sabihing "Hindi ko alam." Isama ang mga citation ng mga ID ng source.KONTEKSTO:{context}TANONG: {question}""")# 4) Model at parserllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Bumuo ng chainrag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Magtanongfor chunk in rag.stream({"question": "Ano ang mga limitasyon sa rate ng Pro at pagpapanatili ng log?"}):print(chunk, end="", flush=True)batch sa Runnables para sa throughput.prompt | llm chain at subukan gamit ang .invoke o .stream. Ang mga opisyal na tutorial ay naglalakad sa pamamagitan ng simpleng chat, RAG, at mga agent nang hakbang-hakbang para sa isang mabilis na pagsisimula.Runnable chain ang .stream para sa sync at .astream para sa async upang magbunga ng mga chunk habang dumarating ang mga ito. Sinasaklaw ng gabay sa streaming ang paggamit at pinakamahusay na mga kasanayan.
Paano Maging Eksperto sa ChatPDF: Mas Mabilis na Pagkuha ng Impormasyon mula sa Makakapal na Dokumento

Ang Pinakamahusay na Alternatibo sa X Auto-Translation para sa Mabilis at Tumpak na Mga Dokumento

Hindi Available ang Samsung AI Translation sa Iran? Mga Praktikal na Solusyon

Mga Kasangkapan sa Pagsasalin ng Persian: Isang Praktikal na Gabay para sa Mas Mabilis at Tumpak na Trabaho

Ang Pinakamahusay na Alternatibo sa Grok para sa Malalim at May Sanggunian na Pananaliksik

Top 15 Features ng AI Image Generator na Talagang Magagamit Mo