Budowanie lokalnych agentów AI: przewodnik po LangGraph, agentach AI i Ollamie
Wstęp
W tej stale zmieniającej się erze technologii sztuczna inteligencja (AI) napędza innowacje i przekształca gałęzie przemysłu. Wśród różnych postępów w dziedzinie sztucznej inteligencji wiadomo, że opracowywanie i wdrażanie agentów sztucznej inteligencji zmienia sposób działania przedsiębiorstw, poprawia doświadczenia użytkowników i automatyzuje złożone zadania.
Agenci AI, czyli jednostki programowe zdolne do samodzielnego wykonywania określonych zadań, stali się niezbędni w wielu aplikacjach, począwszy od chatbotów obsługi klienta, poprzez zaawansowane narzędzia do analizy danych, aż po agentów finansowych.
W tym artykule utworzymy podstawowego agenta AI, aby zbadać znaczenie, funkcjonalności i ramy technologiczne ułatwiające tworzenie i wdrażanie tych agentów. W szczególności zrozumiemy LangGraph i Ollama, dwa potężne narzędzia upraszczające budowanie lokalnych agentów AI.
Pod koniec tego przewodnika będziesz mieć pełną wiedzę na temat wykorzystania tych technologii do tworzenia wydajnych i skutecznych agentów AI dostosowanych do Twoich konkretnych potrzeb.
Zrozumienie agentów AI
Agenci AI to podmioty lub systemy, które postrzegają swoje otoczenie i podejmują działania, aby osiągnąć określone cele lub zadania. Agenci ci mogą obejmować zarówno proste algorytmy, jak i zaawansowane systemy zdolne do podejmowania złożonych decyzji. Oto kilka kluczowych punktów na temat agentów AI:
- Percepcja: agenci AI korzystają z czujników lub mechanizmów wejściowych, aby postrzegać swoje otoczenie. Może to obejmować gromadzenie danych z różnych źródeł, takich jak kamery, mikrofony lub inne czujniki.
- Rozumowanie: agenci sztucznej inteligencji otrzymują informacje i wykorzystują algorytmy i modele do przetwarzania i interpretowania danych. Ten krok obejmuje zrozumienie wzorców, przewidywanie lub generowanie odpowiedzi.
- Podejmowanie decyzji: agenci sztucznej inteligencji, podobnie jak ludzie, decydują o działaniach lub wynikach na podstawie swojej percepcji i rozumowania. Decyzje te mają na celu osiągnięcie konkretnych celów lub zadań określonych w procesie programowania lub uczenia się. Co więcej, agenci AI będą działać bardziej jako asystenci niż zastępować ludzi.
- Uruchomienie: agenci AI wykonują działania na podstawie swoich decyzji. Może to obejmować działania fizyczne w świecie rzeczywistym (np. poruszanie ramieniem robota) lub działania wirtualne w środowisku cyfrowym (np. formułowanie rekomendacji w aplikacji).
Przykładem agentów AI w działaniu są systemy opieki zdrowotnej, które analizują dane pacjentów z różnych źródeł, takich jak: dokumentacja medyczna, wyniki badań czy urządzenia monitorujące w czasie rzeczywistym. Ci agenci sztucznej inteligencji mogą wykorzystywać te dane do podejmowania świadomych decyzji, takich jak przewidywanie prawdopodobieństwa wystąpienia u pacjenta określonej choroby lub zalecanie spersonalizowanych planów leczenia w oparciu o historię medyczną pacjenta i aktualny stan zdrowia.
Różnica między agentem AI a aplikacją RAG
Aplikacje RAG (generacja rozszerzona odzyskiwaniu) i agenci AI odnoszą się do różnych koncepcji sztucznej inteligencji.
RAG służy do poprawy wydajności modeli LLM poprzez włączenie metod wyszukiwania informacji. System wyszukiwania wyszukuje odpowiednie dokumenty lub informacje w dużym korpusie na podstawie zapytania wejściowego. Model generatywny (np. model języka oparty na transformatorze) wykorzystuje następnie uzyskane informacje do generowania dokładniejszych i odpowiednich kontekstowo odpowiedzi. Pomaga to zwiększyć dokładność generowanych treści dzięki integracji uzyskanych informacji. Co więcej, technika ta eliminuje potrzebę dostrajania lub szkolenia LLM na nowych danych.
Z drugiej strony agenci AI to autonomiczne jednostki programowe przeznaczone do wykonywania określonych zadań lub serii zadań. Działają w oparciu o predefiniowane reguły, modele uczenia maszynowego lub jedno i drugie. Często wchodzą w interakcję z użytkownikami lub innymi systemami w celu gromadzenia danych wejściowych, udzielania odpowiedzi lub wykonywania działań. Wydajność niektórych agentów AI wzrasta, ponieważ mogą się oni z czasem uczyć i dostosowywać w oparciu o nowe dane i doświadczenia. Sztuczna inteligencja może obsługiwać wiele zadań jednocześnie, zapewniając skalowalność dla firm.
- RAG is a technique used to improve the performance of generative models by incorporating information retrieval methods
Osobisty asystent AI może samodzielnie wykonywać zadania i podejmować decyzje
- Retrieval system + generative model
Systemy oparte na regułach, modele uczenia maszynowego lub kombinacja technik AI
- Improved accuracy and relevance, leverage external data
Większa wszechstronność i zdolność adaptacji
- Question answering, customer support, content generation
Wirtualni asystenci, pojazdy autonomiczne, systemy rekomendacji
- Ability to leverage large, external datasets for enhancing generative responses without requiring the generative model itself to be trained on all that data
Możliwość interakcji z użytkownikami i dostosowywania się do zmieniających się wymagań lub środowisk.
- A chatbot that retrieves relevant FAQs or knowledge base articles to answer user queries more effectively.
-
Silnik rekomendacji, który sugeruje produkty lub treści na podstawie preferencji i zachowań użytkowników.
Podsumowując, aplikacje RAG są specjalnie zaprojektowane w celu zwiększenia możliwości modeli generatywnych poprzez włączenie mechanizmów wyszukiwania; Agenci AI to szersze podmioty przeznaczone do samodzielnego wykonywania szerokiego zakresu zadań.
Krótki przegląd LangGraph
LangGraph to potężna biblioteka do tworzenia stanowych aplikacji wieloaktorowych przy użyciu dużych modeli językowych (LLM). Pomaga tworzyć złożone przepływy pracy z udziałem jednego lub wielu agentów, oferując krytyczne korzyści, takie jak cykle, sterowalność i trwałość.
Kluczowe korzyści
- Cykle i rozgałęzienia: w przeciwieństwie do innych frameworków korzystających z prostych skierowanych grafów acyklicznych (DAG), LangGraph obsługuje pętle i warunki warunkowe, niezbędne do tworzenia wyrafinowanych zachowań agentów.
- Dokładna kontrola: LangGraph zapewnia szczegółową kontrolę nad przepływem i stanem aplikacji w ramach struktury niskiego poziomu, dzięki czemu idealnie nadaje się do tworzenia niezawodnych agentów.
- Trwałość: zawiera wbudowaną trwałość, która umożliwia zapisywanie stanu po każdym kroku, wstrzymywanie i wznawianie wykonywania oraz obsługę zaawansowanych funkcji, takich jak usuwanie błędów i przepływy pracy typu „człowiek w pętli”.
Cechy
- Cykle i rozgałęzienia: wdrażaj pętle i warunki w swoich aplikacjach.
- Trwałość: automatycznie zapisuj stan po każdym kroku, wspierając odzyskiwanie błędów.
- Human-in-the-Loop: przerwanie wykonywania w celu zatwierdzenia przez człowieka lub wprowadzenia zmian.
- Obsługa przesyłania strumieniowego: przesyłaj strumieniowo dane wyjściowe w miarę ich wytwarzania przez każdy węzeł.
- Integracja z LangChain: Bezproblemowo integruje się z LangChain i LangSmith, ale może być również używana niezależnie.
LangGraph inspirowany jest technologiami takimi jak Pregel i Apache Beam, z przyjaznym dla użytkownika interfejsem podobnym do NetworkX. Opracowany przez LangChain Inc., oferuje solidne narzędzie do tworzenia niezawodnych, zaawansowanych aplikacji opartych na sztucznej inteligencji.
Szybkie wprowadzenie do Ollama
Ollama to projekt typu open source, dzięki któremu uruchamianie LLM na komputerze lokalnym jest łatwe i przyjazne dla użytkownika. Zapewnia przyjazną dla użytkownika platformę, która upraszcza złożoność technologii LLM, czyniąc ją dostępną i konfigurowalną dla użytkowników, którzy chcą wykorzystać moc sztucznej inteligencji bez konieczności posiadania rozległej wiedzy technicznej.
Jest łatwy w instalacji. Ponadto oferujemy wybór modeli oraz kompleksowy zestaw funkcji i funkcjonalności zaprojektowanych w celu poprawy komfortu użytkowania.
Kluczowe funkcje
- Wdrożenie lokalne: uruchamiaj zaawansowane narzędzia LLM bezpośrednio na komputerze lokalnym, zapewniając prywatność danych i zmniejszając zależność od serwerów zewnętrznych.
- Przyjazny dla użytkownika interfejs: zaprojektowany tak, aby był intuicyjny i łatwy w obsłudze, dzięki czemu będzie dostępny dla użytkowników o różnym poziomie wiedzy technicznej.
- Możliwość dostosowywania: dostosuj modele sztucznej inteligencji do swoich konkretnych potrzeb, zarówno w przypadku badań, rozwoju, jak i projektów osobistych.
- Open Source: będąc oprogramowaniem typu open source, Ollama zachęca społeczność do wkładu i ciągłego doskonalenia, wspierając innowacje i współpracę.
- Łatwa instalacja: Ollama wyróżnia się przyjaznym dla użytkownika procesem instalacji, oferującym intuicyjne i bezproblemowe metody konfiguracji dla użytkowników systemów Windows, macOS i Linux. Stworzyliśmy artykuł na temat pobierania i używania Ollama; proszę sprawdzić blog (link podany w sekcji zasobów).
- Społeczność Ollama: Społeczność Ollama to tętniąca życiem, zorientowana na projekty społeczność, która wspiera współpracę i innowacje, a aktywna społeczność open source wspiera jej rozwój, narzędzia i integracje.
Przewodnik krok po kroku dotyczący tworzenia agenta AI przy użyciu LangGraph i Ollama
W tym demo stworzymy prosty przykład agenta wykorzystującego model Mistral. Ten agent może przeszukiwać Internet za pomocą interfejsu API Tavily Search i generować odpowiedzi.
Zaczniemy od zainstalowania Langgraph, biblioteki przeznaczonej do tworzenia stanowych aplikacji wieloaktorowych z LLM, które idealnie nadają się do tworzenia przepływów pracy agentów i wielu agentów. Zainspirowany Pregel, Apache Beam i NetworkX, LangGraph został opracowany przez LangChain Inc. i może być używany niezależnie od LangChain.
Będziemy używać Mistrala jako naszego modelu LLM, który zostanie zintegrowany z API wyszukiwania Ollama i Tavily. Interfejs API Tavily jest zoptymalizowany pod kątem LLM, zapewniając oparte na faktach, wydajne i trwałe wyszukiwanie.
W naszym poprzednim artykule dowiedzieliśmy się, jak korzystać z Qwen2 za pomocą Ollama i zamieściliśmy link do tego artykułu. Postępuj zgodnie z artykułem, aby zainstalować Ollamę i uruchomić LLM za pomocą Ollama.
Zanim zaczniemy instalację, sprawdźmy naszą kartę graficzną. Możesz otworzyć terminal i wpisać poniższy kod, aby sprawdzić konfigurację GPU.
nvidia-smi
Teraz zaczniemy od naszych instalacji.
pip install -U langgraph
pip install -U langchain-nomic langchain_community tiktoken langchainhub chromadb langchain langgraph tavily-python
pip install langchain-openai
Po zakończeniu instalacji przejdziemy do kolejnego istotnego kroku: podania klucza Travily API.
export TAVILY_API_KEY="apikeygoeshere"
Teraz uruchomimy poniższy kod, aby pobrać model. Spróbuj tego, używając Lamy lub dowolnej innej wersji Mistrala.
ollama pull mistral
Zaimportuj wszystkie niezbędne biblioteki wymagane do zbudowania agenta.
from langchain import hub
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.prompts import PromptTemplate
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_community.chat_models import ChatOllama
Zaczniemy od zdefiniowania narzędzi, których chcemy używać i powiązania narzędzi z plikiem llm. W tym prostym przykładzie użyjemy wbudowanego narzędzia wyszukiwania za pośrednictwem Tavily.
tools = [TavilySearchResults(max_results=3)]
llm_with_tools = llm.bind_tools(tools)
Poniższy fragment kodu pobiera szablon podpowiedzi i drukuje go w czytelnym formacie. Szablon ten można następnie wykorzystać lub zmodyfikować w zależności od potrzeb aplikacji.
prompt = hub.pull("wfh/react-agent-executor")
prompt.pretty_print()
Następnie skonfigurujemy korzystanie z Mistrala poprzez platformę Ollama.
llm = ChatOpenAI(model="mistral", api_key="ollama", base_url="http://localhost:11434/v1",
)
Na koniec utworzymy wykonawcę agenta, korzystając z naszego modelu języka (llm
), zestawu narzędzi (tools
) i szablonu podpowiedzi (prompt
). Agent jest skonfigurowany tak, aby reagował na dane wejściowe, korzystał z narzędzi i generował odpowiedzi na podstawie określonego monitu, umożliwiając mu wykonywanie zadań w kontrolowany i wydajny sposób.
agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================
You are a helpful assistant.
============================= Messages Placeholder =============================
{{messages}}
Podany fragment kodu wywołuje moduł wykonawczy agenta w celu przetworzenia komunikatu wejściowego. Ten krok ma na celu wysłanie zapytania do wykonawcy agenta i otrzymanie odpowiedzi. Agent użyje skonfigurowanego modelu językowego (w tym przypadku Mistrala), narzędzi i podpowiedzi, aby przetworzyć wiadomość i wygenerować odpowiednią odpowiedź
response = agent_executor.invoke({"messages": [("user", "explain artificial intelligence")]})
for message in response['messages']:
print(message.content)
i to wygeneruje poniższą odpowiedź.
Wniosek
LangGraph i narzędzia takie jak AI Agents i Ollama stanowią znaczący krok naprzód w opracowywaniu i wdrażaniu zlokalizowanych rozwiązań sztucznej inteligencji. Wykorzystując zdolność LangGraph do usprawniania różnych komponentów AI i jego modułową architekturę, programiści mogą tworzyć wszechstronne i skalowalne rozwiązania AI, które są wydajne i łatwo dostosowują się do zmieniających się potrzeb.
Jak opisuje nasz blog, agenci AI oferują elastyczne podejście do automatyzacji zadań i zwiększania produktywności. Agenci te można dostosować do obsługi różnych funkcji, od prostej automatyzacji zadań po złożone procesy decyzyjne, co czyni je niezbędnymi narzędziami współczesnego biznesu.
Ollama, jako część tego ekosystemu, zapewnia dodatkowe wsparcie, oferując specjalistyczne narzędzia i usługi, które uzupełniają możliwości LangGraph.
Podsumowując, integracja LangGraph i Ollama zapewnia solidne ramy do tworzenia agentów AI, którzy są zarówno skuteczni, jak i wydajni. Ten przewodnik jest cennym źródłem informacji dla każdego, kto chce wykorzystać potencjał tych technologii do napędzania innowacji i osiągania swoich celów w stale rozwijającym się krajobrazie sztucznej inteligencji.
Dodatkowe zasoby
- Jak przeprowadzić migrację ze starszych agentów LangChain do LangGraph
- Wywołanie narzędzia
- Dokumentacja LangGrapha
- Porównanie systemów RAG i agentów AI
- Odniesienie do kodu