Aufbau lokaler KI-Agenten: Ein Leitfaden zu LangGraph, KI-Agenten und Ollama
Einführung
In diesem sich ständig verändernden Zeitalter der Technologie treibt künstliche Intelligenz (KI) Innovationen voran und verändert Branchen. Unter den verschiedenen Fortschritten im Bereich der KI ist bekannt, dass die Entwicklung und der Einsatz von KI-Agenten die Arbeitsweise von Unternehmen neu gestalten, die Benutzererfahrung verbessern und komplexe Aufgaben automatisieren.
KI-Agenten, bei denen es sich um Softwareeinheiten handelt, die in der Lage sind, bestimmte Aufgaben autonom auszuführen, sind in vielen Anwendungen unverzichtbar geworden, von Kundenservice-Chatbots über fortschrittliche Datenanalysetools bis hin zu Finanzagenten.
In diesem Artikel erstellen wir einen grundlegenden KI-Agenten, um die Bedeutung, Funktionalitäten und technologischen Rahmenbedingungen zu untersuchen, die die Erstellung und Bereitstellung dieser Agenten erleichtern. Insbesondere werden wir LangGraph und Ollama verstehen, zwei leistungsstarke Tools, die den Aufbau lokaler KI-Agenten vereinfachen.
Am Ende dieses Leitfadens verfügen Sie über ein umfassendes Verständnis für die Nutzung dieser Technologien, um effiziente und effektive KI-Agenten zu erstellen, die auf Ihre spezifischen Anforderungen zugeschnitten sind.
KI-Agenten verstehen
KI-Agenten sind Entitäten oder Systeme, die ihre Umgebung wahrnehmen und Maßnahmen ergreifen, um bestimmte Ziele oder Vorgaben zu erreichen. Diese Agenten können von einfachen Algorithmen bis hin zu hochentwickelten Systemen reichen, die komplexe Entscheidungen treffen können. Hier sind einige wichtige Punkte zu KI-Agenten:
- Wahrnehmung: KI-Agenten nutzen Sensoren oder Eingabemechanismen, um ihre Umgebung wahrzunehmen. Dies könnte das Sammeln von Daten aus verschiedenen Quellen wie Kameras, Mikrofonen oder anderen Sensoren beinhalten.
- Begründung: KI-Agenten empfangen Informationen und verwenden Algorithmen und Modelle, um Daten zu verarbeiten und zu interpretieren. Bei diesem Schritt geht es darum, Muster zu verstehen, Vorhersagen zu treffen oder Antworten zu generieren.
- Entscheidungsfindung: KI-Agenten entscheiden wie Menschen auf der Grundlage ihrer Wahrnehmung und Argumentation über Aktionen oder Ergebnisse. Diese Entscheidungen zielen darauf ab, bestimmte Ziele zu erreichen, die durch ihren Programmier- oder Lernprozess definiert werden. Darüber hinaus werden KI-Agenten eher als Assistenten fungieren, statt Menschen zu ersetzen.
- Aktivierung: KI-Agenten führen Aktionen basierend auf ihren Entscheidungen aus. Dies kann physische Aktionen in der realen Welt (z. B. das Bewegen eines Roboterarms) oder virtuelle Aktionen in einer digitalen Umgebung (z. B. Empfehlungen in einer App) umfassen.
Ein Beispiel für eingesetzte KI-Agenten sind Gesundheitssysteme, die Patientendaten aus verschiedenen Quellen analysieren, beispielsweise aus Krankenakten, Testergebnissen und Echtzeitüberwachungsgeräten. Diese KI-Agenten können diese Daten nutzen, um fundierte Entscheidungen zu treffen, beispielsweise um die Wahrscheinlichkeit vorherzusagen, dass ein Patient eine bestimmte Erkrankung entwickelt, oder um personalisierte Behandlungspläne basierend auf der Krankengeschichte und dem aktuellen Gesundheitszustand des Patienten zu empfehlen.
Unterschied zwischen AI Agent und RAG-Anwendung
RAG (Retrieval-Augmented Generation)-Anwendungen und KI-Agenten beziehen sich auf unterschiedliche Konzepte innerhalb der künstlichen Intelligenz.
RAG wird verwendet, um die Leistung von LLM-Modellen durch die Integration von Methoden zum Abrufen von Informationen zu verbessern. Das Retrieval-System sucht anhand der Eingabeabfrage nach relevanten Dokumenten oder Informationen aus einem großen Korpus. Das generative Modell (z. B. ein transformatorbasiertes Sprachmodell) verwendet dann diese abgerufenen Informationen, um genauere und kontextbezogenere Antworten zu generieren. Dies trägt durch die Integration der abgerufenen Informationen dazu bei, die Genauigkeit der generierten Inhalte zu erhöhen. Darüber hinaus entfällt mit dieser Technik die Notwendigkeit, ein LLM anhand neuer Daten zu optimieren oder zu trainieren.
Andererseits sind KI-Agenten autonome Softwareeinheiten, die darauf ausgelegt sind, bestimmte Aufgaben oder eine Reihe von Aufgaben auszuführen. Sie basieren auf vordefinierten Regeln, Modellen des maschinellen Lernens oder beidem. Sie interagieren häufig mit Benutzern oder anderen Systemen, um Eingaben zu sammeln, Antworten bereitzustellen oder Aktionen auszuführen. Die Leistung einiger KI-Agenten steigert sich, da sie im Laufe der Zeit auf der Grundlage neuer Daten und Erfahrungen lernen und sich anpassen können. KI kann mehrere Aufgaben gleichzeitig erledigen und bietet so Skalierbarkeit für Unternehmen.
- RAG is a technique used to improve the performance of generative models by incorporating information retrieval methods
Ein persönlicher KI-Assistent kann autonome Aufgaben ausführen und Entscheidungen treffen
- Retrieval system + generative model
Regelbasierte Systeme, Modelle des maschinellen Lernens oder eine Kombination aus KI-Techniken
- Improved accuracy and relevance, leverage external data
Verbesserte Vielseitigkeit und Anpassungsfähigkeit
- Question answering, customer support, content generation
Virtuelle Assistenten, autonome Fahrzeuge, Empfehlungssysteme
- Ability to leverage large, external datasets for enhancing generative responses without requiring the generative model itself to be trained on all that data
Fähigkeit zur Interaktion mit Benutzern und zur Anpassung an sich ändernde Anforderungen oder Umgebungen.
- A chatbot that retrieves relevant FAQs or knowledge base articles to answer user queries more effectively.
-
Eine Empfehlungsmaschine, die Produkte oder Inhalte basierend auf Benutzerpräferenzen und -verhalten vorschlägt.
Zusammenfassend lässt sich sagen, dass RAG-Anwendungen speziell darauf ausgelegt sind, die Fähigkeiten generativer Modelle durch die Integration von Abrufmechanismen zu verbessern. KI-Agenten sind umfassendere Einheiten, die eine Vielzahl von Aufgaben autonom ausführen sollen.
Kurzer Überblick über LangGraph
LangGraph ist eine leistungsstarke Bibliothek zum Erstellen zustandsbehafteter Multi-Akteur-Anwendungen unter Verwendung großer Sprachmodelle (LLMs). Es hilft bei der Erstellung komplexer Arbeitsabläufe mit einzelnen oder mehreren Agenten und bietet entscheidende Vorteile wie Zyklen, Kontrollierbarkeit und Beständigkeit.
Hauptvorteile
- Zyklen und Verzweigungen: Im Gegensatz zu anderen Frameworks, die einfache gerichtete azyklische Graphen (DAGs) verwenden, unterstützt LangGraph Schleifen und Bedingungen, die für die Erstellung anspruchsvoller Agentenverhaltens unerlässlich sind.
- Feinkörnige Kontrolle: LangGraph bietet als Low-Level-Framework eine detaillierte Kontrolle über den Fluss und den Status Ihrer Anwendung und eignet sich daher ideal für die Entwicklung zuverlässiger Agenten.
- Persistenz: Es verfügt über eine integrierte Persistenz, die es Ihnen ermöglicht, den Status nach jedem Schritt zu speichern, die Ausführung anzuhalten und fortzusetzen und erweiterte Funktionen wie Fehlerbehebung und Human-in-the-Loop-Workflows zu unterstützen.
Merkmale
- Zyklen und Verzweigungen: Implementieren Sie Schleifen und Bedingungen in Ihren Apps.
- Persistenz: Speichert den Status nach jedem Schritt automatisch und unterstützt so die Fehlerbehebung.
- Human-in-the-Loop: Unterbrechen Sie die Ausführung zur menschlichen Genehmigung oder Bearbeitung.
- Streaming-Unterstützung: Streamen Sie Ausgaben, während jeder Knoten sie erzeugt.
- Integration mit LangChain: Lässt sich nahtlos in LangChain und LangSmith integrieren, kann aber auch unabhängig verwendet werden.
LangGraph ist von Technologien wie Pregel und Apache Beam inspiriert und verfügt über eine benutzerfreundliche Oberfläche ähnlich wie NetworkX. Es wurde von LangChain Inc. entwickelt und bietet ein robustes Tool zum Erstellen zuverlässiger, fortschrittlicher KI-gesteuerter Anwendungen.
Kurze Einführung in Ollama
Ollama ist ein Open-Source-Projekt, das die Ausführung von LLMs auf Ihrem lokalen Computer einfach und benutzerfreundlich macht. Es bietet eine benutzerfreundliche Plattform, die die Komplexität der LLM-Technologie vereinfacht und sie für Benutzer zugänglich und anpassbar macht, die die Leistungsfähigkeit der KI nutzen möchten, ohne umfangreiche technische Fachkenntnisse zu benötigen.
Es ist einfach zu installieren. Darüber hinaus verfügen wir über eine Auswahl an Modellen und ein umfassendes Set an Features und Funktionalitäten, die das Benutzererlebnis verbessern sollen.
Hauptmerkmale
- Lokale Bereitstellung: Führen Sie anspruchsvolle LLMs direkt auf Ihrem lokalen Computer aus, um den Datenschutz zu gewährleisten und die Abhängigkeit von externen Servern zu reduzieren.
- Benutzerfreundliche Oberfläche: Intuitiv und benutzerfreundlich gestaltet, sodass sie für Benutzer mit unterschiedlichen technischen Kenntnissen zugänglich ist.
- Anpassbarkeit: Passen Sie die KI-Modelle genau an Ihre spezifischen Anforderungen an, sei es für Forschung, Entwicklung oder persönliche Projekte.
- Open Source: Als Open Source fördert Ollama Community-Beiträge und kontinuierliche Verbesserung und fördert Innovation und Zusammenarbeit.
- Mühelose Installation: Ollama zeichnet sich durch seinen benutzerfreundlichen Installationsprozess aus und bietet intuitive, problemlose Einrichtungsmethoden für Windows-, macOS- und Linux-Benutzer. Wir haben einen Artikel zum Herunterladen und Verwenden von Ollama erstellt. Bitte schauen Sie sich den Blog an (Link im Ressourcenbereich).
- Ollama-Community: Die Ollama-Community ist eine lebendige, projektorientierte Gemeinschaft, die Zusammenarbeit und Innovation fördert, mit einer aktiven Open-Source-Community, die ihre Entwicklung, Tools und Integrationen verbessert.
Eine Schritt-für-Schritt-Anleitung zum Erstellen eines KI-Agenten mit LangGraph und Ollama
In dieser Demo erstellen wir ein einfaches Beispiel eines Agenten, der das Mistral-Modell verwendet. Dieser Agent kann das Web mithilfe der Tavily Search API durchsuchen und Antworten generieren.
Wir beginnen mit der Installation von Langgraph, einer Bibliothek zum Erstellen zustandsbehafteter Multi-Akteur-Anwendungen mit LLMs, die sich ideal für die Erstellung von Agenten- und Multi-Agenten-Workflows eignen. Inspiriert von Pregel, Apache Beam und NetworkX wurde LangGraph von LangChain Inc. entwickelt und kann unabhängig von LangChain verwendet werden.
Wir werden Mistral als unser LLM-Modell verwenden, das in die Such-API von Ollama und Tavily integriert wird. Die API von Tavily ist für LLMs optimiert und bietet ein sachliches, effizientes und dauerhaftes Sucherlebnis.
In unserem vorherigen Artikel haben wir gelernt, wie man Qwen2 mit Ollama verwendet, und wir haben den Artikel verlinkt. Bitte folgen Sie dem Artikel zur Installation von Ollama und zur Ausführung von LLMs mit Ollama.
Bevor wir mit der Installation beginnen, überprüfen wir unsere GPU. Sie können ein Terminal öffnen und den folgenden Code eingeben, um Ihre GPU-Konfiguration zu überprüfen.
nvidia-smi
Jetzt beginnen wir mit unseren Installationen.
pip install -U langgraph
pip install -U langchain-nomic langchain_community tiktoken langchainhub chromadb langchain langgraph tavily-python
pip install langchain-openai
Nach Abschluss der Installationen gehen wir zum nächsten entscheidenden Schritt über: der Bereitstellung des Travily-API-Schlüssels.
export TAVILY_API_KEY="apikeygoeshere"
Jetzt führen wir den folgenden Code aus, um das Modell abzurufen. Bitte versuchen Sie es mit Llama oder einer anderen Version von Mistral.
ollama pull mistral
Importieren Sie alle erforderlichen Bibliotheken, die zum Erstellen des Agenten erforderlich sind.
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
Wir beginnen mit der Definition der Tools, die wir verwenden möchten, und binden die Tools an den LLM. Für dieses einfache Beispiel verwenden wir ein integriertes Suchtool über Tavily.
tools = [TavilySearchResults(max_results=3)]
llm_with_tools = llm.bind_tools(tools)
Der folgende Codeausschnitt ruft eine Eingabeaufforderungsvorlage ab und druckt sie in einem lesbaren Format. Diese Vorlage kann dann je nach Bedarf für die Anwendung verwendet oder geändert werden.
prompt = hub.pull("wfh/react-agent-executor")
prompt.pretty_print()
Als nächstes konfigurieren wir die Nutzung von Mistral über die Ollama-Plattform.
llm = ChatOpenAI(model="mistral", api_key="ollama", base_url="http://localhost:11434/v1",
)
Schließlich erstellen wir einen Agent-Executor mithilfe unseres Sprachmodells (llm
), einer Reihe von Tools (tools
) und einer Eingabeaufforderungsvorlage (prompt
). ). Der Agent ist so konfiguriert, dass er auf Eingaben reagiert, die Tools nutzt und Antworten basierend auf der angegebenen Eingabeaufforderung generiert, sodass er Aufgaben kontrolliert und effizient ausführen kann.
agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================
You are a helpful assistant.
============================= Messages Placeholder =============================
{{messages}}
Der angegebene Codeausschnitt ruft den Agent-Executor auf, um die Eingabenachricht zu verarbeiten. Ziel dieses Schritts ist es, eine Anfrage an den Agent-Executor zu senden und eine Antwort zu erhalten. Der Agent verwendet sein konfiguriertes Sprachmodell (in diesem Fall Mistral), Tools und Eingabeaufforderungen, um die Nachricht zu verarbeiten und eine entsprechende Antwort zu generieren
response = agent_executor.invoke({"messages": [("user", "explain artificial intelligence")]})
for message in response['messages']:
print(message.content)
und dies wird die folgende Antwort generieren.
Abschluss
LangGraph und Tools wie AI Agents und Ollama stellen einen bedeutenden Fortschritt bei der Entwicklung und Bereitstellung lokalisierter Lösungen für künstliche Intelligenz dar. Durch die Nutzung der Fähigkeit von LangGraph, verschiedene KI-Komponenten und seine modulare Architektur zu optimieren, können Entwickler vielseitige und skalierbare KI-Lösungen erstellen, die effizient und in hohem Maße an sich ändernde Anforderungen anpassbar sind.
Wie in unserem Blog beschrieben, bieten KI-Agenten einen flexiblen Ansatz zur Automatisierung von Aufgaben und zur Steigerung der Produktivität. Diese Agenten können für verschiedene Funktionen angepasst werden, von der einfachen Aufgabenautomatisierung bis hin zu komplexen Entscheidungsprozessen, was sie zu unverzichtbaren Werkzeugen für moderne Unternehmen macht.
Als Teil dieses Ökosystems bietet Ollama zusätzliche Unterstützung, indem es spezielle Tools und Dienste anbietet, die die Fähigkeiten von LangGraph ergänzen.
Zusammenfassend lässt sich sagen, dass die Integration von LangGraph und Ollama ein robustes Framework für die Entwicklung von KI-Agenten bietet, die sowohl effektiv als auch effizient sind. Dieser Leitfaden ist eine wertvolle Ressource für alle, die das Potenzial dieser Technologien nutzen möchten, um Innovationen voranzutreiben und ihre Ziele in der sich ständig weiterentwickelnden Landschaft der künstlichen Intelligenz zu erreichen.
Zusätzliche Ressourcen
- So migrieren Sie von älteren LangChain-Agenten zu LangGraph
- Werkzeugaufruf
- LangGraph-Dokumentation
- Vergleich von RAG-Systemen und KI-Agenten
- Code-Referenz