Criando agentes de IA com LangChainGo

LangChain é uma biblioteca poderosa para criar agentes de IA que podem interagir com dados, APIs, usuários e realizar pesquisas. Neste artigo, vamos explorar como criar um agente simples usando LangChainGo, uma implementação em Go da biblioteca LangChain.

O que é LangChain?

LangChain é uma biblioteca de código aberto inicialmente desenvolvida oficialmente em Python e JavaScript, mas agora também disponível em Go através das contribuições da comunidade do LangChainGo.

Por debaixo dos panos, LangChain utiliza os modelos de linguagem (LLMs) para prover ferramentas e abstrações para simplificar a integração de LLMs com outras fontes de dados e APIs. Isso permite que os desenvolvedores criem agentes inteligentes que podem realizar tarefas complexas, como responder perguntas, buscar informações em bancos de dados, interagir com APIs mantendo um contexto de dados. Além disso suas abstrações permitem que seja facilmente utilizado com qualquer tipo de LLMs, acelerando e simplificando o uso de diferentes modelos de linguagem para diferentes tarefas.

O que é um agente de IA?

De forma resumida um agente de IA é um programa que é capaz de realizar tarefas complexas, como responder perguntas, buscar informações em bancos de dados, interagir com APIs, realizar processos e muito mais. Eles são projetados para serem autoajustados e adaptados a diferentes tarefas e situações, tornando-os mais eficientes e precisos.

Criando um agente simples com LangChainGo

Para criar um agente simples com LangChainGo, você precisará de um modelo de linguagem (LLM) que possa gerar respostas a perguntas e realizar tarefas específicas. Existem vários modelos de LLMs disponíveis, como GPT-3, GPT-4, ChatGPT, etc. No entanto, para este tutorial, vamos utilizar o modelo gemini-2.0-flashz. Ele é um modelo de linguagem de alta performance e preciso, que é capaz de gerar respostas precisas e úteis em uma ampla gama de tarefas.

Inicialize o projeto com o seguinte comando:

go mod init langchaingo-agent-example

Feito isso, instale o LangChainGo e as dependências necessárias:

go get github.com/tmc/langchaingo@latest
go get github.com/tmc/langchaingo/llms/googleai

Agora crie um arquivo chamado `main.go` e adicione o seguinte código:

package main

import (
  "context"
  "fmt"
  "log"

  "github.com/tmc/langchaingo/llms"
  "github.com/tmc/langchaingo/llms/googleai"
)

func main() {
  ctx := context.Background()
  llm, err := googleai.New(
    googleai.WithAPIKey("MY_API_KEY"),
	googleai.WithDefaultModel("gemini-2.0-flash"),
  )
  if err != nil {
    log.Fatal(err)
  }
  prompt := "What is the Google Cloud Platform?"
  completion, err := llms.GenerateFromSinglePrompt(ctx, llm, prompt)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Println(completion)
}

Agora precisamos criar a chave de API do Google Cloud para utilizar o modelo `gemini-2.0-flashz`. Para isso, siga os seguintes passos:

  1. Acesse o site https://aistudio.google.com/app/apikey e crie sua API Key.
  2. Atualize o arquivo main.go e substitua o texto “MY_API_KEY”pela sua chava recem criada.

Pronto!

Agora execute o código com o seguinte comando:

go run main.go

Esse código cria um agente simples que utiliza o modelo `gemini-2.0-flashz` para responder a pergunta “What is the Google Cloud Platform?”.

Existem muitas outras funcionalidades que você pode explorar com LangChainGo, como a criação de agentes mais complexos, integração com APIs, bancos de dados, memória e muito mais. A documentação oficial e o repositório do LangChainGo é um ótimo lugar para começar a aprender mais sobre essas funcionalidades.

LogGuru: Um agente de IA para coletar e analisar logs

Para ilustrar um exemplo mais complexo, criei um agente de IA chamado LogGuru, que é capaz de coletar e analisar logs de sistemas. O LogGuru utiliza LangChainGo para interagir com os logs e gerar insights úteis. Por ser uma PoC (Proof of Concept), o LogGuru “coleta” os logs de uma função geradora de logs, mas a ideia é que ele possa coletar logs de qualquer ferramenta como DataDog, Grafana Loki, etc.

Arquitetura alto nível

Abaixo está a arquitetura alto nível do LogGuru:

O LogGuru é composto por três componentes principais:

– Agente coletor dos logs: Esse componente é responsável por coletar e sumarizar os logs.

– Agente analisador dos logs: Esse componente é responsável por analisar os logs coletados, gerar insights úteis e criar uma **história** sobre os dados recebidos.

– Agente de resultado: Esse componente é responsável por gerar uma resposta em Markdown concisa e objetiva para o usuário, com base nas informações coletadas e analisadas.

Desta forma o LogGuru é capaz de coletar e analisar logs e se conectar uma ferramenta que retorna as descrições de erros (caso existam), gerando uma história sobre os dados recebidos.

Caso queira saber mais sobre a implementação do LogGuru, você pode dar uma olhada neste link.

Conclusão

Neste artigo abordei de maneira breve o que é um agente de IA e como ele pode ser criado utilizando LangChainGo. Também mostrei um exemplo de um agente simples que utiliza o modelo gemini-2.0-flashz para responder a perguntas, e um exemplo mais complexo de um agente chamado LogGuru, que é capaz de coletar e analisar logs de sistemas.

Acredito que cada vez mais os agentes de IA serão uma parte importante do desenvolvimento de software, e o LangChain é uma ótima ferramenta para criar esses agentes de forma rápida e eficiente. Se você está interessado em aprender mais sobre agentes, recomendo que você comece a explorar ainda mais este assunto e faça experimentos com o objetivo de criar produtos que consigam resolver problemas complexos e automatizar tarefas repetitivas de uma maneira mais flexível e eficiente.

Espero que esse artigo tenha sido útil e que você tenha aprendido um pouco mais sobre esse mundo vasto de IA.

Até a próxima!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *