🎯 Definicja

LangChain to framework open-source do tworzenia aplikacji opartych na języku naturalnym i dużych modelach językowych (LLM), który upraszcza integrację modeli z zewnętrznymi źródłami wiedzy, narzędziami i interfejsami. Pozwala budować aplikacje z wykorzystaniem łańcuchów przetwarzania językowego, które zapewniają podejście modularne i skalowalne do workflow opartego na promptach, kontekście i agentach.

🔑 Kluczowe punkty

  • Framework do budowania aplikacji z LLM zamiast pojedynczych promptów.
  • Obsługuje kompozycję komponentów: pamięć, wejścia, przetwarzanie, akcje, narzędzia.
  • Integruje się z systemami zewnętrznymi: bazy wiedzy, wyszukiwarki, SQL, API REST, serwisy file storage.
  • Wspiera RAG, agentów razonujących, multi-step workflows, orchestration pipelines.
  • Posiada wersje dla Pythona (langchain) i JavaScript/TypeScript (langchain.js).

📚 Szczegółowe wyjaśnienie

Architektura LangChain

WarstwaFunkcja
LLM WrapperObsługa wielu dostawców LLM: OpenAI, HuggingFace, Cohere, Mistral itd.
PromptingPromptTemplates, ChatPromptTemplates, FewShotPrompt
MemoryUtrzymywanie kontekstu rozmowy, np. ConversationBufferMemory
ChainsŁączenie elementów w sekwencje operacji (Input → Prompt → LLM → Output)
Tools & AgentsIntegracja z zewnętrznymi narzędziami (Google, GitHub, Wikipedia, SQL)
Retrievers / RAGŁączenie z wektorowymi bazami danych (FAISS, Pinecone, Chroma)

Przykład działania prostego łańcucha

from langchain import OpenAI, LLMChain
from langchain.prompts import PromptTemplate
 
llm = OpenAI(temperature=0.7)
prompt = PromptTemplate(input_variables=["subject"], template="Napisz zabawną wiadomość o {subject}")
chain = LLMChain(llm=llm, prompt=prompt)
 
response = chain.run("astronautach i serze")
print(response)

Typy gotowych komponentów

  • LLMChain – podstawowy łańcuch: prompt → LLM → output
  • SequentialChain – wykonuje sekwencję zadań (output A → input B)
  • SimpleSequentialChain – tylko wejście–wyjście bez zmiennych pośrednich
  • ConversationChain – utrzymanie kontekstu dialogu
  • RetrieverQA – fetching wiedzy z dokumentów (RAG)

Agentowość

LangChain obsługuje tzw. agentów LLM, którzy:

  • Otrzymują cel (prompt) i kontekst
  • Podejmują decyzję, jakich narzędzi użyć (np. wyszukiwarka, baza danych)
  • Modyfikują działania na podstawie zwrotnych komunikatów

Przykład agenta:

from langchain.agents import initialize_agent, Tool
 
tools = [Tool.from_function(web_search), Tool.from_function(sql_query_tool)]
 
agent = initialize_agent(tools, Base LLMllm, agent_type="zero-shot-ReAct Prompting|react-description")
result = agent.run("Ile meczów wygrał Real Madryt w 2023 roku?")

Integracje

  • Wektoryzacja: FAISS, Qdrant, Chroma, Weaviate
  • Źródła dokumentów: PDF, Notion, Google Docs, Markdown
  • Inne: SQL, Zapier, WolframAlpha, DuckDuckGo, WebScraper

💡 Przykład zastosowania

Firma wdraża aplikację do obsługi klienta opartą na wiedzy z dokumentów. Zamiast przesyłać cały kontekst w promptach, używa LangChain do:

  • podziału dokumentacji na chunki i osadzenia ich (embedding)
  • wyszukiwania relewantnych fragmentów zapytań użytkownika (retriever)
  • użycia LLM + prompt template + memory do wygenerowania odpowiedzi

Całość spięta jako RAG pipeline z ChatConversationalChain.

✅ Zalety

KorzyśćOpis
Skalowalność promptówŁatwo tworzyć i testować prompty modularnie
Integracja z zewnętrznymi danymigotowe narzędzia i retrievery
Modularność i elastycznośćSkładanie aplikacji jak z klocków
Obsługa kontekstu dialoguMemory i chat feedback

📌 Źródła

👽 Brudnopis

  • LangChain ≠ model → manager aplikacji AI
  • alternatywa: LlamaIndex (focus na dokumentach), Haystack
  • current best: lc-serve, agent-executor, RAG pipelines
  • przykład: prompt chaining → retriever → tool → generation
  • duży potencjał w AI automacji, LLM workflow management