Wprowadzenie
LangChain to otwarty framework do tworzenia aplikacji AI w języku Python, który zapewnia moduły i narzędzia do budowania aplikacji opartych na dużych modelach językowych. Dzięki LangChain programiści mogą łatwo integrować się z dużymi modelami językowymi (LLM), aby wykonywać zadania takie jak generowanie tekstu, odpowiadanie na pytania, tłumaczenie i prowadzenie dialogu. LangChain obniża próg wejścia do tworzenia aplikacji AI, umożliwiając każdemu budowanie kreatywnych aplikacji opartych na LLM.
Funkcje LangChain:
- LLM i Prompt: LangChain abstrahuje wszystkie interfejsy dużych modeli LLM, unifikuje interfejs dostępu do dużych modeli i zapewnia mechanizm zarządzania szablonami promptów.
- Chain: LangChain enkapsuluje pewne powszechne scenariusze w gotowe moduły, takie jak systemy generowania odpowiedzi na pytania oparte na kontekście, generowanie naturalnego języka zapytań SQL, itp., nazwane "Chain", ponieważ proces implementacji tych zadań jest podobny do przepływu pracy, wykonywany krok po kroku.
- LCEL: Język wyrażeń LangChain (LCEL) to podstawowa cecha nowej wersji LangChain, używana do rozwiązywania problemów zarządzania przepływem pracy. Dzięki wyrażeniom LCEL możemy elastycznie dostosowywać przepływ przetwarzania zadań AI, czyli elastycznie dostosowywać "Chain".
- Generowanie uzupełnione o pobieranie (RAG): Ponieważ duże modele językowe (LLM) nie rozumieją nowych informacji i nie mogą odpowiadać na nowe pytania, możemy importować nowe informacje do LLM, aby poprawić jakość wygenerowanych treści. Ten tryb nazywa się trybem RAG (Retrieval Augmented Generation).
- Agenci: Wzorzec projektowy oparty na dużych modelach językowych (LLM), wykorzystujący naturalne rozumienie języka i zdolności wnioskowania LLM (jako mózgu) do automatycznego wywoływania zewnętrznych systemów i urządzeń w celu wykonania zadań zgodnie z wymaganiami użytkownika. Na przykład, gdy użytkownik wprowadza "wziąć dzień wolny jutro", duży model językowy (LLM) automatycznie wywołuje system urlopów i inicjuje wniosek o urlop.
- Pamięć modelu: Pozwala dużemu modelowi językowemu (LLM) zapamiętywać poprzednie treści rozmów, zdolność ta nazywana jest pamięcią modelu.
Składniki frameworku LangChain
Framework LangChain składa się z kilku składników, w tym:
- Biblioteka LangChain: Biblioteki Pythona i JavaScript. Obejmuje podstawę czasu wykonania interfejsów i integracji różnych składników, a także implementację gotowych łańcuchów i agentów.
- Szablony LangChain: Oficjalne szablony zadań AI dostarczane przez LangChain.
- LangServe: Oparte na FastAPI, może publikować łańcuchy zdefiniowane przez LangChain jako interfejsy REST.
- LangSmith: Platforma deweloperska, to usługa chmurowa wspierająca debugowanie LangChain i monitorowanie zadań.
Biblioteka LangChain (Biblioteki)
Biblioteka LangChain składa się z kilku różnych pakietów.
-
langchain-core
: Podstawowe abstrakcje i język wyrażeń LangChain. -
langchain-community
: Integracje zewnętrzne, głównie zawierające zintegrowane z LangChain zewnętrzne komponenty. -
langchain
: Głównie zawiera łańcuchy, agentów i strategie odzyskiwania.
Przepływ przetwarzania zadań w LangChain
Jak pokazano na powyższym obrazku, LangChain zapewnia zestaw narzędzi zarządzania szablonami promptów do obsługi promptów. Następnie przekazuje prompty do dużego modelu do przetwarzania, a na końcu przetwarza wyniki zwrócone przez duży model.
Enkapsulacja dużego modelu przez LangChain obejmuje głównie dwa typy: LLM i model rozmowy.
- LLM - Model odpowiadający na pytania, który otrzymuje wejście tekstowe i zwraca wynik tekstowy.
- Model rozmowy - Model dialogowy, który otrzymuje zestaw wiadomości dialogu i zwraca wiadomości dialogowe w formie konwersacyjnej.
Pojęcia podstawowe
1. LLM
Podstawowe modele enkapsulowane przez LangChain, które otrzymują wejście tekstowe i zwracają wynik tekstowy.
2. Modele rozmowy
Modele rozmowy (lub modele dialogowe), stworzone specjalnie dla scenariuszy dialogowych, w odróżnieniu od LLM. Modele te mogą otrzymać zestaw wiadomości dialogu i zwrócić wiadomości dialogowe w formie konwersacyjnej.
3. Wiadomości
Odnosi się do treści wiadomości w modelach rozmowy. Typy wiadomości obejmują Wiadomość od człowieka, Wiadomość AI, Wiadomość systemowa, Wiadomość funkcjonalna i Wiadomość narzędziowa, między innymi.
4. Prompty
LangChain enkapsuluje zestaw narzędzi specjalnie używanych do zarządzania promptami, ułatwiając nam formatowanie treści promptów.
5. Analizatory wyników
Jak wspomniano na powyższym obrazku, po otrzymaniu treści tekstowej zwróconej przez duży model (LLM), LangChain może użyć dedykowanych analizatorów wyników do formatowania treści tekstowej, takich jak analiza JSON lub konwersja wyniku LLM na obiekt w języku Python.
5. Pobieranie
Aby łatwo importować prywatne dane do dużego modelu (LLM) i poprawić jakość odpowiedzi modelu, LangChain enkapsuluje ramy pracy do pobierania (Pobieranie), które ułatwiają ładowanie, segmentację, przechowywanie i pobieranie danych dokumentów.
6. Składy wektorowe
Aby wspierać wyszukiwanie podobieństw semantycznych dla prywatnych danych, LangChain obsługuje różne bazy danych wektorowych.
7. Agenci
Agenci, zazwyczaj odnoszący się do aplikacji zaprojektowanych z dużym modelem (LLM) jako silnikiem decyzyjnym, automatycznie wywołują zewnętrzne systemy i urządzenia sprzętowe, aby ukończyć zadania użytkownika na podstawie jego wejścia. Jest to wzorzec projektowy z dużym modelem (LLM) w swoim centrum.
Scenariusze zastosowania
- Chatboty: Budowanie inteligentnych asystentów czatu, chatbotów obsługi klienta i rozmownych chatbotów.
- Baza wiedzy Q&A: Zapewnianie usług odpowiadania na pytania w otwartym dziedzinie poprzez integrację z grafikami wiedzy.
- Inteligentne pisanie: Na przykład pisanie artykułów, twórcze pisanie i podsumowywanie tekstu.