🎯 Definicja
LangChain to otwarty framework programistyczny (dostępny w Pythonie i JavaScript) zaprojektowany w celu ułatwienia tworzenia aplikacji wykorzystujących wielkie modele językowe (LLM). Pozwala programistom na łączenie modeli językowych z zewnętrznymi źródłami danych, bazami wiedzy, interfejsami API oraz na budowanie agentów podejmujących autonomiczne decyzje.
🔑 Kluczowe punkty
- Chains (Łańcuchy): Sekwencyjne łączenie różnych komponentów (np. pobierz dane -> sformatuj prompt -> wyślij do LLM -> przetwórz wynik).
- Memory (Pamięć): Zarządzanie stanem i historią konwersacji w interakcjach z modelami LLM (np. zachowanie kontekstu czatu).
- Agents (Agenci): Mechanizmy decyzyjne, w których LLM wybiera i wykonuje odpowiednie akcje przy użyciu zewnętrznych narzędzi (np. wyszukiwanie w Google, uruchomienie kodu).
- Retrieval (RAG): Integracja z wektorowymi bazami danych w celu selektywnego pobierania dokumentów i rozszerzania wiedzy modelu na żądanie.
📚 Szczegółowe wyjaśnienie
Same modele LLM są “statycznymi” kalkulatorami probabilistycznymi o ograniczonej wiedzy. LangChain przekształca je w dynamiczne systemy poprzez ustandaryzowanie podstawowych abstrakcji:
- Model I/O: Ujednolicony interfejs dla różnych modeli (OpenAI, Hugging Face, Cohere, Llama) oraz zarządzanie promptami i ich szablonami.
- Retrieval: Narzędzia do dzielenia tekstu (text splitters), generowania osadzeń (embeddings) i integracji z bazami wektorowymi (Chroma, Pinecone, Qdrant).
- Chains: Logiczne sekwencje operacji. Najprostszy łańcuch bierze wejście użytkownika, formatuje je w szablon promptu i przesyła do LLM.
- Agents: Agenci korzystają z LLM jako “rozumu”, który decyduje o kolejności wykonywania działań i narzędzi (Tools), takich jak kalkulator, baza SQL czy wyszukiwarka internetowa.
💡 Przykład zastosowania
Budowa bota odpowiadającego na pytania o dokumentację techniczną firmy:
- LangChain ładuje pliki PDF z dokumentacją.
- Dzieli je na mniejsze fragmenty i generuje wektory (Embeddings).
- Zapisuje je w wektorowej bazie danych.
- Gdy użytkownik zadaje pytanie, LangChain wyszukuje podobne fragmenty dokumentów w bazie wektorowej, buduje z nich prompt kontekstowy i wysyła do LLM, aby ten wygenerował precyzyjną odpowiedź.