Saltar para o conteúdo principal
Versão: 2.0.0

Chamada de ferramentas externas

A chamada de ferramentas é um dos modos de interação verdadeiramente "nativos dos LLM" que nunca existiu antes. Dá aos LLMs "pensantes" a capacidade de "agir" - tanto na aquisição de novos conhecimentos como na realização de acções no mundo real. É uma parte crucial de qualquer aplicação agêntica.

LLMs de código aberto são cada vez mais bons no uso de ferramentas. Os modelos Llama 3 tornaram agora possível ter um desempenho fiável de chamada de ferramentas em LLMs de classe 8b a correr no seu próprio portátil!

Neste tutorial, mostraremos um programa simples em Python que permite que um LLM local execute código e manipule dados no computador local!

Pré-requisitos

É necessário um nó Gaia preparado para fornecer serviços LLM através de um URL público. Pode

Neste tutorial, usaremos um nó Llama3 público com suporte a chamadas de função.

AtributoValor
URL do ponto de extremidade da APIhttps://llamatool.us.gaianet.network/v1
Nome do modelolhama
CHAVE APIgaia

Executar o agente de demonstração

A aplicação do agente é escrita em Python. Demonstra como o LLM pode usar ferramentas para operar uma base de dados SQL. Neste caso, inicia e opera uma base de dados SQLite na memória. A base de dados armazena uma lista de itens a fazer.

Descarregue o código e instale as dependências Python da seguinte forma.

git clone https://github.com/second-state/llm_todo
cd llm_todo
pip install -r requirements.txt

Defina as variáveis de ambiente para o servidor da API e o nome do modelo que acabámos de configurar.

export OPENAI_MODEL_NAME="llama"
export OPENAI_BASE_URL= "https://llamatool.us.gaianet.network/v1"

Executar o main.py e abrir a interface de conversação da linha de comandos.

python main.py

Utilizar o agente

Agora, pode pedir ao LLM para executar tarefas. Por exemplo, pode dizer

Utilizador: 
Vou ter uma reunião com a equipa de marketing.

O LLM compreende que é necessário inserir um registo na base de dados e devolve uma resposta à chamada da ferramenta em JSON.

Assistant:
<tool_call>
{"id": 0, "name": "create_task", "arguments": {"task": "have a meeting with the marketing team"}}
</tool_call>

A aplicação do agente (i.e, main.py) executa a chamada de ferramenta criar_tarefa na resposta JSON, e envia de volta os resultados como função Ferramenta. Não é necessário fazer nada aqui, pois isso acontece automaticamente no main.py. A base de dados SQLite é actualizada quando a aplicação do agente executa a chamada de ferramenta.

Tool:
[{'result': 'ok'}]

O LLM recebe o resultado da execução e responde-lhe.

Assistente:
Acrescentei "ter uma reunião com a equipa de marketing" à sua lista de tarefas. Há mais alguma coisa que gostasse de fazer?

Pode continuar a conversa.

Para saber mais sobre como funciona a chamada de ferramenta, consulte este artigo.

Torná-lo robusto

Um dos maiores desafios das aplicações LLM é a frequente falta de fiabilidade das suas respostas. Por exemplo:

Se o LLM gerar uma chamada de ferramenta incorrecta que não responda à consulta do utilizador,

é possível refinar e otimizar as descrições para cada função de chamada de ferramenta. O LLM escolhe as suas ferramentas com base nestas descrições, pelo que é vital elaborá-las de forma a corresponderem às consultas típicas dos utilizadores.

Se o LLM tiver alucinações e produzir chamadas de ferramentas com nomes de funções inexistentes ou parâmetros incorrectos,

a aplicação do agente deve identificar este problema e solicitar ao LLM que crie uma nova resposta.

A chamada de ferramentas é uma caraterística fundamental no campo em evolução das aplicações agênticas de LLM. Estamos ansiosos por ver as ideias inovadoras que nos apresenta!