Saltar para o conteúdo principal
Versão: 1.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, utilizaremos um domínio público Llama3 com suporte para chamadas de função.

AtributoValor
URL do ponto de extremidade da APIhttps://llama8b.gaia.domains/v1
Nome do modelolhama
CHAVE APIgaia

Se estiver a utilizar um serviço de domínio, e não o seu próprio nó, terá de obter uma chave de API do Gaia.

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://llama8b.gaia.domains/v1"
exportar OPENAI_API_KEY="GAIANET"

Se estiver a utilizar um serviço de domínio, e não o seu próprio nó, terá de obter uma chave de API do Gaia.

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!