Lokaler Agent mit Ollama+LlamaIndex

Praktische AI-TutorialsAktualisiert vor 5 Monaten AI-Austauschkreis
1.6K 00

kurz

Dieses Dokument beschreibt die Verwendung des LlamaIndex in der ReActAgent Kombination Ollama Implementieren Sie einen einfachen lokalen Agenten.

Das in diesem Dokument verwendete LLM ist das Modell qwen2:0.5b. Da verschiedene Modelle unterschiedliche Fähigkeiten zum Aufrufen von Tools haben, können Sie versuchen, Agent mit verschiedenen Modellen zu implementieren.

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 llama_index.core.tools import FunctionTool
from llama_index.core.agent import ReActAgent
from llama_index.llms.ollama import Ollama

 

2. initialisieren Sie das Agententool

# Define tools
def multiply(a: float, b: float) -> float:
"""Multiply two integers and return the result integer"""
return a * b
# Create FunctionTool instances
multiply_tool = FunctionTool.from_defaults(
fn=multiply,
name="MultiplyTool",
description="A tool that multiplies two floats.",
return_direct=True
)

 

3. initialisieren Sie LLM und Agent

# Initialize LLM
llm = Ollama(model="qwen2:0.5b", request_timeout=360.0)
# Initialize ReAct agent with tools
agent = ReActAgent.from_tools([multiply_tool], llm=llm, verbose=True)

 

4. das Führen des Dialogs

  • Verwenden Sie den LLM-Dialog direkt.
# direct response
res_llm = llm.complete("What is 2.3 × 4.8 ? Calculate step by step")
print(res_llm)

Ergebnisse der Ausgabe:

To calculate \( 2.3 \times 4.8 \), you can follow these steps:
1. **Perform the multiplication:** When multiplying decimals, simply multiply the numerators (the top numbers) to get the numerator of the product.
\[
2.3 \times 4.8 = 9.44
\]
2. **Multiply the denominators (bottom numbers)**
The denominator of \(4.8\) is not affected by the multiplication because it does not contain a factor that can affect its value or determine the result.
3. **Calculate the product**  
Since there are no common factors between the numerator and the denominator, the calculation is:
\[
9.44 = 2.3 \times 2.3
\]
This multiplication does not give you a new number because \(2.3\) and \(2.3\) are already multiplied to get 5.6.
So, \(2.3 \times 4.8 = 9.44\).
  • LLM ruft den Agentendialog auf.
# use agent
response = agent.chat("What is 2.3 × 4.8 ? Calculate step by step")
response.response

Ergebnisse der Ausgabe:

> Running step 9227846e-d630-4ce2-a760-c8e90366dc6c. Step input: What is 2.3 × 4.8 ? Calculate step by step
Thought: The task is asking to multiply two numbers, 2.3 and 4.8, then to calculate this multiplication step by step.
Action: MultiplyTool
Action Input: {'a': 2.3, 'b': 4.8}
Observation: 11.04

 

Referenz: https://docs.llamaindex.ai/en/stable/examples/agent/react_agent/

© urheberrechtliche Erklärung
AiPPT

Ähnliche Artikel

Keine Kommentare

Sie müssen eingeloggt sein, um an den Kommentaren teilnehmen zu können!
Jetzt anmelden
keine
Keine Kommentare...