breve
Este documento descreve como usar o LlamaIndex no ReActAgent
combinando Ollama Implementar um agente local simples.
O LLM usado neste documento é o modelo qwen2:0.5b. Como modelos diferentes têm capacidade diferente de chamar ferramentas, você pode tentar implementar o Agent com modelos diferentes.
Observação: este documento contém trechos do código principal e explicações detalhadas. O código completo pode ser encontrado em notebook .
1. importação de dependências
de llama_index.core.tools.import FunctionTool
from llama_index.core.agent import ReActAgent
from llama_index.llms.ollama import Ollama
2) Inicializar a ferramenta Agente
# Definir ferramentas
def multiply(a: float, b: float) -> float.
"""Multiplicar dois inteiros e retornar o resultado integer""""
return a * b
# Criar instâncias de FunctionTool
multiply_tool = FunctionTool.from_defaults(
fn=multiply,
name="MultiplyTool", description="Uma ferramenta que multiplica
fn=multiply, name="MultiplyTool", description="Uma ferramenta que multiplica dois floats.", return_direct=True
return_direct=True
)
3. inicializar o LLM e o agente
# Inicialização do LLM
llm = Ollama(model="qwen2:0.5b", request_timeout=360.0)
# Inicializar ReAct agente com ferramentas
agente = ReActAgent.from_tools([multiply_tool], llm=llm, verbose=True)
4. condução do diálogo
- Use o diálogo LLM diretamente.
# resposta direta
res_llm = llm.complete("What is 2.3 × 4.8 ? Calcule passo a passo")
print(res_llm)
Resultados de saída:
Para calcular \( 2,3 \times 4,8 \), você pode seguir estas etapas.
1. **Realize a multiplicação:** Ao multiplicar decimais, basta multiplicar os numeradores (os números superiores) para obter o numerador do produto.
\[
2,3 \times 4,8 = 9,44
\] 2. **Multiplicar
2. **Multiplique os denominadores (números inferiores)**
O denominador de \(4,8\) não é afetado pela multiplicação porque ele não contém um fator que possa afetar seu valor ou determinar o resultado. 3. **Calcule o denominador de \(4,8\) porque ele não contém um fator que possa afetar seu valor ou determinar o resultado.
3. **Calcule o produto** Como não há fatores comuns entre o produto e seu valor, não é possível determinar o resultado.
Como não há fatores comuns entre o numerador e o denominador, o cálculo é.
**Calcule o produto** Como não há fatores comuns entre o numerador e o denominador, o cálculo é
9,44 = 2,3 \times 2,3
\]
Essa multiplicação não fornece um novo número porque \(2,3\) e \(2,3\) já foram multiplicados para obter 5,6.
Portanto, \(2,3 \times 4,8 = 9,44\).
- O LLM chama o diálogo do agente.
# usar agente
response = agent.chat("What is 2.3 × 4.8 ? Calcule passo a passo")
response.response
Resultados de saída:
> Executando a etapa 9227846e-d630-4ce2-a760-c8e90366dc6c. Entrada da etapa: Quanto é 2,3 × 4,8? Calcular etapa por etapa
Pensamento: A tarefa está pedindo para multiplicar dois números, 2,3 e 4,8, e depois calcular essa multiplicação passo a passo.
Ação: MultiplyTool
Entrada da ação: {'a': 2.3, 'b': 4.8}
Observação: 11.04
Referência: https://docs.llamaindex.ai/en/stable/examples/agent/react_agent/