AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

Implementierung eines lokalen Agenten mit Ollama+LangChain

kurz

ReAct (Reasoning and Acting) ist ein Rahmenwerk, das logisches Denken und Handeln kombiniert, um die Leistung von Intelligenzen bei komplexen Aufgaben zu verbessern. Der Rahmen ermöglicht es Intelligenzen, Aufgaben in dynamischen Umgebungen effektiver auszuführen, indem logisches Denken und praktisches Handeln eng miteinander verbunden werden.

Implementierung von Local Agent-1 mit Ollama+LangChain


Quelle:ReAct: Reasoning und Action arbeiten in einem großen Sprachmodell zusammen

In diesem Dokument wird beschrieben, wie Sie die ReAct Der Rahmen ist in Ollama Der lokale Agent (Agent) ist in Ollama implementiert. Durch die Kombination der Leistungsfähigkeit von Ollama mit der Flexibilität von ReAct können Benutzer einen effizienten interaktiven Agenten in ihrer lokalen Umgebung erstellen. Diese Implementierung ist in der Lage, komplexe Aufgaben zu bewältigen, unterstützt mehrere Interaktionsmodi und optimiert die Aufgabenautomatisierung und das Benutzererlebnis für lokale Anwendungen, die eine hohe Echtzeitleistung erfordern.

Hinweis: Dieses Dokument enthält wichtige Codeschnipsel und ausführliche Erläuterungen. Der vollständige Code ist zu finden unter Notizbuch .

 

1. importierte Abhängigkeiten

from langchain_core.tools importieren Werkzeug
from langchain.pydantic_v1 importieren BaseModel, Feld
from langchain_core.tools import render_text_description
from langchain.agents import AgentExecutor, create_react_agent
from langchain importieren hub
from langchain_community.chat_models import ChatOllama

 

2. initialisieren Sie das Agententool

definieren. Sucheingabe Klassenvererbung BaseModeldie dazu dient, den Modus der Eingabedaten zu definieren.

@tool(args_schema=SearchInput) Dekorieren mit Werkzeugdekoratoren wetter_vorhersage Funktion und geben Sie deren Eingabemodus als Sucheingabe.

class SearchInput(BaseModel).
Location: str = Field(description="Ort, nach dem gesucht werden soll") # Definieren Sie ein Pydantic-Modell, das das Eingabeschema mit Beschreibungsinformationen beschreibt
@tool(args_schema=SearchInput)
def wetter_vorhersage(ort: str).
"""Weather_forecast_tool.""""
print(f "Wetter für {Ort}") # gibt den Ort aus, für den das Wetter vorhergesagt werden soll
return f "Eine Dummy-Vorhersage für {Ort}" # Gibt eine Dummy-Wettervorhersage für den angegebenen Ort zurück.

 

3. lokaler Betrieb

In diesem Beispiel verwenden Sie gemma:2b Modellen kann das Ergebnis bei verschiedenen Modelltypen sehr unterschiedlich ausfallen (mehr Zufälligkeit).

llm = ChatOllama(model="gemma:2b") # Initialisierung des ChatOllama-Modells, unter Verwendung von "gemma:2b"
tools = [weather_forecast] # Verwendung des Tools weather_forecast
prompt = hub.pull("hwchase17/react-json") # Abrufen bestimmter Prompts aus dem Hub
prompt = prompt.partial(
tools=render_text_description(tools), # Rendering einer Textbeschreibung der Tools für den Prompt
tool_names=", ".join([t.name for t in tools]), # Verkettung von Tool-Namen zu einer kommagetrennten Zeichenkette
)
agent = create_react_agent(llm, tools, prompt) # Erstellen eines Agenten mit llm, tools und benutzerdefinierten Prompts
agent_executor = AgentExecutor(agent=agent, tools=tools, handle_parsing_errors=True, verbose=False, format="json") # Initialisieren des AgentExecutor
print(agent_executor.invoke({"input": "Wie ist das Wetter in Paris?"})) # Rufen Sie den Agenten mit einer Testeingabe auf und geben Sie die Ergebnisse aus

 

Dialogverlauf verwenden

Wenn Sie den Dialogverlauf verwenden, müssen Sie die react-chat Aufforderungsvorlage. Fügen Sie zum Zeitpunkt des Aufrufs die chat_history.

# ruft eine bestimmte Eingabeaufforderung ab; beachten Sie, dass hier react-chat verwendet wird
prompt = hub.pull("hwchase17/react-chat")
# Erstellen Sie den ReAct-Agenten
agent_history = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent_history, tools=tools, verbose=False)
agent_executor.invoke(
{
"input": "Wie heiße ich? Verwenden Sie nur bei Bedarf ein Tool, ansonsten antworten Sie mit Final Answer",
"chat_history": "Mensch: Hi! Mein Name ist Bob\nAI: Hallo Bob! Schön, dich kennenzulernen", }
Freut mich, Sie kennenzulernen", }
Freut mich, Sie kennenzulernen", }

 

bibliographie

https://react-lm.github.io/

https://python.langchain.com/v0.1/docs/modules/agents/agent_types/react/

CDN1
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " Implementierung eines lokalen Agenten mit Ollama+LangChain

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)