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
- criar o seu próprio nó. Terá de iniciar um nó Gaia para o modelo Llama-3-Groq ou o modelo Mistral-7B-v0.3 Instruct. Pode então utilizar o ponto de extremidade URL da API do nó e o nome do modelo nas suas aplicações de chamada de ferramenta.
- utilizar um nó público
Neste tutorial, usaremos um nó Llama3 público com suporte a chamadas de função.
Atributo | Valor |
---|---|
URL do ponto de extremidade da API | https://llamatool.us.gaianet.network/v1 |
Nome do modelo | lhama |
CHAVE API | 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://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!