Agent local avec Ollama+LlamaIndex

bref

Ce document décrit comment utiliser le LlamaIndex dans l'application ReActAgent combinant Ollama Mettre en place un agent local simple.

Le LLM utilisé dans ce document est le modèle qwen2:0.5b. Étant donné que différents modèles ont différentes capacités à appeler des outils, vous pouvez essayer d'implémenter l'agent avec différents modèles.

Note : Ce document contient des extraits de code et des explications détaillées. Le code complet est disponible à l'adresse suivante carnet de notes .

 

1) Importer des dépendances

from llama_index.core.tools import FunctionTool
from llama_index.core.agent import ReActAgent
from llama_index.llms.ollama import Ollama

 

2. initialiser l'outil Agent

# 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. initialiser le LLM et l'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. la conduite du dialogue

  • Utiliser directement le dialogue LLM.
# direct response
res_llm = llm.complete("What is 2.3 × 4.8 ? Calculate step by step")
print(res_llm)

Résultats de la sortie :

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\).
  • Le LLM appelle le dialogue avec l'agent.
# use agent
response = agent.chat("What is 2.3 × 4.8 ? Calculate step by step")
response.response

Résultats de la sortie :

> 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

 

Référence : https://docs.llamaindex.ai/en/stable/examples/agent/react_agent/

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...