Introdução a LangChain com Node.js e OpenAI

Node.js

Introdução a LangChain com Node.js e OpenAI

Luiz Duarte
Escrito por Luiz Duarte em 24/07/2025
Junte-se a mais de 34 mil devs

Entre para minha lista e receba conteúdos exclusivos e com prioridade

Não se fala em outra coisa ultimamente a não ser sobre IA, em especial as LLMs (Large Language Models) como ChatGPT e outros. E embora em algum momento próximo esse hype diminua para níveis mais saudáveis (o Hype Cycle do Gartner nunca erra), é inegável que dá para construir aplicações mais inteligentes com a ajuda delas. E a melhor parte: enquanto no passado você tinha de construir seu próprio modelo de IA, o que levava muito tempo, dinheiro e dados, agora a maior parte do trabalho duro já foi feito por empresas como a OpenAI. Atualmente, você pode pegar as APIs de um modelo de IA pronto, adicionar seus dados e APIs, prompts inteligentes e voilá, sua funcionalidade ou solução que usa IA está pronta!

E para fazer essa “cola” entre o modelo e os seus dados e APIs é que existem soluções como a LangChain, que funciona como um framework para aplicações que usam IA, orquestrando os diferentes atores que compõem a sua arquitetura além de aumentar as capacidades do LLM que você se conectar. Ou dois, já que você pode querer/precisar se conectar a mais de um.

Pensando nisso, nesse tutorial eu vou te mostrar como explorar as funcionalidades mais básicas do LangChain usando Node.js e modelos da OpenAI. Para um aprofundamento maior nos modelos e API da OpenAI, recomendo este tutorial.

Vamos lá!

#1 – Setup do Ambiente

Para fazer este tutorial você vai precisar do Node.js e do Visual Studio Code instalados na sua máquina. Você pode baixar e instalar eles pelos links que forneci antes ou assistir ao vídeo abaixo com o passo a passo.

Depois disso, você vai precisar de uma API Key da OpenAI, a empresa criadora do ChatGPT, Sora, Dall-e e outros modelos famosos de IA generativa. Para criar sua chave, acesse este link e se autentique. Depois mande criar sua chave e guarde-a em um lugar seguro, não tem como você vê-la uma segunda fez e terá de criar outra caso perca essa.

Agora que você tem a sua chave, é importante você saber que ela só funcionará caso você tenha adquirido créditos junto à OpenAI. Sim, eles não possuem APIs gratuitas ou limite de uso gratuito, tem de colocar ao menos U$5 de crédito para começar a brincar e depois sempre manter saldo na sua conta se for colocar seu projeto em produção.

Para adicionar crédito, você deve ir nas configurações da sua conta (settings) e dentro dela, na seção de cobrança (billing), acessível neste link. Adicione uma forma de pagamento, coloque saldo e pronto, agora pode usar sua chave. Dica: você pode obter um incremento gratuito de tokens (usados nas requisições) para usar na plataforma se compartilhar os seus dados com a OpenAI, neste link.

Depois disso, dependendo do modelo de IA que vier a usar (existem vários), pode ser necessário uma verificação da sua conta, que você faz nesse link.

Curso Web3 para Iniciantes
Curso Web3 para Iniciantes

#2 – Setup do Projeto

Agora crie o seu projeto Node.js com os comandos abaixo, um de cada vez.

As extensões que instalamos no último comando foram:

  • DotEnv: para configurações do projeto;
  • LangChain: o framework LangChain;
  • @LangChain/OpenAI: SDK de integração com as APIs da OpenAI;
  • @LangChain/Core: lib necessária para o SDK acima funcionar;

Agora abra o projeto no VS Code e crie um arquivo .env na raiz do projeto com as variáveis que vamos usar, principalmente a sua chave da OpenAI e lembre-se de não subir esse .env para seu GitHub se for versionar o projeto.

Agora vá no seu package.json e mude o type para module, a fim de podermos usar a sintaxe de ESModules no projeto.

Também crie um index.js e coloque nele o carregamento do .env.

Agora sim, temos tudo pronto para programar nosso exemplo.

Livro Node.js
Livro Node.js

#3 – Conectando na OpenAI

Nosso primeiro exemplo vai ser bem simples e nada original caso você já tenha experiência prévia de integração com as APIs da OpenAI. Vamos usar o LangChain para criar um cliente que envia uma mensagem para o modelo da OpenAI, como abaixo.

Aqui nós inicializamos um objeto modelo com a classe ChatOpenAI, passando pra ela nossa chave da OpenAI (definida no .env) e o modelo que você quiser usar, sendo que aqui eu usei o mais barato de todos e combinei com verbose “false” pras respostas serem mais objetivas e consequentemente gastarem menos tokens.

Para enviar nossa requisição usamos a função invoke, com o prompt, e imprimimos o conteúdo da resposta no terminal. Para rodar, você deve abrir outra janela de terminal (deixe uma apenas para o backend fake) e use o comando npm start. O resultado você vê abaixo.

Experimente imprimir o objeto inteiro do response no terminal, para conhecer melhor todas propriedades.

Com esse código você acaba de criar o seu wrapper de ChatGPT, localmente, mas obviamente isso não traz nada de novo e não é essa a funcionalidade principal do LangChain, então vamos em frente.

Curso Node.js

#4 – Configurando Prompts

Uma das coisas interessantes que você pode fazer com LangChain é organizar melhor os seus prompts, principalmente aqueles que são pré-requisitos para seu agente de IA se comportar como você deseja. Para isso, vamos começar fazendo uma nova importação e configurando nosso novo prompt, explico melhor na sequência.

A classe ChatPromptTemplate serve para construirmos prompts padronizados, diminuindo a quantidade de texto que o usuário terá de digitar para dar comandos ao nosso agente. Além disso, podemos fazer inclusive pré-configurações que ele sequer imagine, geralmente associados ao perfil que queremos que o agente assuma.

Nesse exemplo, criamos um prompt cuja configuração de sistema (system) é que ele deve se comportar como um comediante infantil, enquanto que o prompt enviado pelo usuário será um comando para contar uma piada, sendo que somente o tema da piada deverá ser realmente digitado.

Para enviarmos este prompt, usaremos o código abaixo, que diferente do anterior, vai imprimir o resultado aos poucos, como vemos no ChatGPT Web, ao invés de tudo de uma vez só como fizemos antes.

A partir do prompt criamos um pipeline de envio de comandos para o model, gerando uma cadeia de mensagens (chain). Com essa chain, poderíamos usar o invoke, mas optei pelo stream para pegarmos a resposta aos pedaços conforme o modelo for gerando ela. A função stream funciona como a invoke, podemos passar a string pra ela, mas como temos um prompt configurado na chain, então vamos passar um objeto apenas com o campo configurável do nosso template (as propriedades tem de ser iguais aos placeholders do prompt).

Já o laço para impressão do resultado é um for await onde recebo os chunks (blocos) e vou imprimindo eles. O resultado no console fica meio tosco, mas eu fiz dessa forma para lhe mostrar esta opção de retorno também.

Curso Beholder
Curso Beholder

#5 – Indo Além

Estes dois exemplos estão bem longe do real potencial de usar LangChain mas ajudam a entender os principais compoentes como as chains, os prompts e os responses. Com LangChain, você ainda pode implementar:

  • output parsers: que são conversores da saída da IA, para lhe entregar em um formato específico;
  • documents: que são fontes de dados para sua IA usar como contexto/histórico;
  • agents: que são IAs mais autônomas, que não servem apenas para responder perguntas, mas que raciocinam e usam ferramentas;
  • tools: que são ferramentas externas que seu agente pode utilizar, como busca na web, APIs, outros agentes, etc;
  • e muito mais

Por hoje é só, mas quem sabe no futuro eu não retorne com outros tutoriais sobre este assunto tão interessante.

Até a próxima!

Curso Web23
Curso Web23

TAGS:

Olá, tudo bem?

O que você achou deste conteúdo? Conte nos comentários.

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