O que é LangChain?
Conheça o watsonx.ai
Ilustração de uma cadeia feita com números e letras
O que é LangChain?

LangChain é uma estrutura de orquestração de código aberto para o desenvolvimento de aplicativos com grandes modelos de linguagem (LLMs). Disponível em bibliotecas Python e Java, as ferramentas e APIs do LangChain simplificam o processo de criação de aplicativos baseados em LLM, como chatbots e agentes virtuais. 

O LangChain atua como uma interface genérica para praticamente qualquer LLM, proporcionando um ambiente de desenvolvimento centralizado para construir aplicativos LLM e integrá-los a fontes de dados externas e fluxos de trabalho de software. A abordagem baseada em módulos da LangChain permite que desenvolvedores e cientistas de dados comparem de forma dinâmica diversas instruções e até mesmo diversos modelos de base com necessidade mínima de reescrever código. Esse ambiente modular também possibilita programas que utilizam vários LLMs: por exemplo, um aplicativo que utiliza um LLM para interpretar consultas de usuários e outro LLM para criar respostas. 

Lançado por Harrison Chase em outubro de 2022, o LangChain teve uma ascensão meteórica à proeminência: em junho de 2023, era o projeto de código aberto que mais crescia no Github.1 Coincidindo com o importante lançamento do ChatGPT da OpenAI no mês seguinte, o LangChain desempenhou um papel significativo ao tornar a IA generativa mais acessível para os entusiastas, na esteira de sua ampla popularidade. 

O LangChain pode facilitar a maioria dos casos de uso de LLMs e de processamento de linguagem natural (NLP), como chatbots, pesquisa inteligente , respostas a perguntas, serviços de resumo ou até mesmo agentes virtuais capazes de automatizar processos robóticos.

Integrações com LLMs

Os LLMs não são aplicativos independentes: são modelos estatísticos treinados previamente que devem ser combinados com um aplicativo (e em alguns casos fontes de dados específicas) para atender sua finalidade. 

Por exemplo, o Chat-GPT não é um LLM: é um aplicativo de chatbot que, dependendo da versão escolhida, utiliza o modelo de idioma GPT-3,5 ou GPT-4. Embora seja o modelo GPT que interpreta a entrada do usuário e compõe uma resposta em linguagem natural, é o aplicativo que (entre outras coisas) apresenta uma interface para o usuário digitar e ler e um design de UX que controla a experiência do chatbot. Mesmo no nível corporativo, o Chat-GPT não é o único aplicativo que utiliza o modelo GPT: a Microsoft utiliza o GPT-4 para impulsionar o Bing Chat. 

Além disso, embora os modelos de base (como os que alimentam os LLMs) sejam treinados previamente em conjuntos de dados maciços, eles não são oniscientes. Se uma determinada tarefa exigir acesso a informações contextuais específicas, como documentação interna ou conhecimento do domínio, os LLMs deverão estar conectados a essas fontes de dados externas. Mesmo que você queira somente que seu modelo reflita o conhecimento em tempo real dos eventos atuais, ele exige informações externas: os dados internos de um modelo são atualizados somente durante o período durante o qual ele foi treinado previamente.

Da mesma forma, se uma determinada tarefa de IA generativa exigir acesso a fluxos de trabalho de software externos, por exemplo, se você quiser que seu agente virtual integre-se ao Slack, precisará de uma maneira de integrar o LLM à API desse software. 

Embora geralmente essas integrações possam ser obtidas com código totalmente manual, estruturas de orquestração como LangChain e a plataforma IBM watsonx simplificam muito o processo. Elas também facilitam muito a realização de experimentos com diversos LLMs para comparar os resultados, pois modelos diferentes podem ser trocados com alterações mínimas no código.  

Código aberto na IBM

De blockchain a contêineres, IA e sistemas operacionais e tudo o que há entre eles, nossos desenvolvedores estão criando projetos emergentes de código aberto e cercando-os com código, documentos e materiais de suporte para você participar da inovação.

Conteúdo relacionado

Assinar boletins informativos da IBM

Como funciona o LangChain?

No núcleo do LangChain há um ambiente de desenvolvimento que otimiza a programação de aplicativos de LLM por meio do uso de abstração: a simplificação do código por representar um ou mais processos complexos como um componente nomeado que engloba todas as etapas de constituição.

As abstrações são um elemento comum da vida cotidiana e da linguagem. Por exemplo, "π" nos permite representar a razão entre o comprimento da circunferência de um círculo e o de seu diâmetro sem ter que escrever seus dígitos infinitos. Da mesma forma, um termostato nos permite controlar a temperatura em nossa casa sem precisar entender os circuitos complexos que isso implica. Basta sabermos como diversas configurações de termostato se traduzem em temperaturas diferentes.

O LangChain é essencialmente uma biblioteca de abstrações para Python e Javascript, representando etapas e conceitos comuns necessários para trabalhar com modelos de linguagem. Esses componentes modulares, como funções e classes de objetos, servem como blocos de construção de programas de IA generativos. Podem ser "encadeados" para criar aplicativos, minimizando a quantidade de código e o entendimento refinado necessário para executar tarefas complexas de PNL. Embora a abordagem abstrata da LangChain possa limitar até que ponto um programador especializado pode personalizar uma aplicação de forma refinada, ela possibilita que especialistas e recém-chegados experimentem e criem protótipos rapidamente.

Importação de modelos de idioma

Quase qualquer LLM pode ser usado no LangChain. É fácil importar modelos de idioma no LangChain, desde que você tenha uma chave da API. A classe LLM foi projetada para oferecer uma interface padrão para todos os modelos.

A maioria dos provedores de LLM exigirá que você crie uma conta para receber uma chave de API. Algumas dessas APIs, especialmente aquelas para modelos proprietários de código fechado, como as oferecidas pela OpenAI ou pela Anthropic, podem ter custos associados.

Muitos modelos de código aberto, como o BLOOM da BigScience, o LLaMa da Meta IA e o Flan-T5 do Google, podem ser acessados por meio do Hugging Face (link fora do ibm.com). O IBM watsonx, por meio de sua parceria com a Hugging Face, também oferece um conjunto selecionado de modelos de código aberto. A criação de uma conta com qualquer um dos serviços permitirá gerar uma chave de API para qualquer um dos modelos oferecidos por esse provedor.

O LangChain não está limitado a modelos de base prontos para uso: a CustomLLM class (link fora do ibm.com) permite wrappers LLM personalizados. Da mesma forma, você pode usar as APIs do IBM Watsonx e o Python SDK, que incluem uma integração com o LangChain, para criar aplicativos no LangChain com modelos que você já treinou ou ajustou para suas necessidades específicas com a classe WatsonxLLM (e o ID de projeto específico do modelo).

Explore a demonstração: utilizando watsonx e LangChain para fazer uma série de chamadas para um modelo de idioma
Modelos de prompts

Os prompts são as instruções apresentadas a um LLM. Geralmente, a "arte" de redigir prompts que efetivamente entregam o contexto necessário para que o LLM interprete a entrada e a saída da estrutura da maneira mais útil para você é chamada de engenharia rápida. 

A classe PromptTemplate em LangChain formaliza a composição de prompts sem a necessidade de codificar manualmente o contexto e as consultas. Elementos importantes de um prompt também são inseridos como classes formais, como input_variables. Um modelo de prompt pode, portanto, conter e reproduzir contexto, instruções (como "não usar termos técnicos"), um conjunto de exemplos para orientar suas respostas (no que é chamado de "prompt few-shot"), um formato de saída definido ou uma pergunta padronizada a ser respondida.  Você pode salvar e nomear um modelo de prompt estruturado de forma eficaz e reutilizá-lo facilmente, conforme necessário.

Embora esses elementos possam ser codificados manualmente, os módulos do PromptTemplate possibilitam uma integração tranquila com outros recursos do LangChain, como as cadeias epônimas.

Assista ao vídeo: engenharia de prompts e ajuste prompts
Correntes

Como seu nome implica, cadeias são o núcleo dos fluxos de trabalho do LangChain. Combinam LLMs com outros componentes, criando aplicativos por meio da execução de uma sequência de funções. 

A cadeia mais básica é a LLMChain. Ela apenas chama um modelo e um modelo de prompt para esse modelo. Por exemplo, imagine que você salvou um prompt como "ExamplePrompt" e deseja executá-lo contra Flan-T5. Você pode importar LLMChain de langchain.chains, definir chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt). Para executar a cadeia para uma determinada entrada, basta chamar chain_example.run("input")."

Para utilizar a saída de uma função como entrada para a próxima função, você pode utilizar SimpleSequentialChain. Cada função pode utilizar prompts diferentes, ferramentas diferentes, parâmetros diferentes ou até modelos diferentes, dependendo das suas necessidades específicas. 

Índices

Para realizar determinadas tarefas, as LLMs precisarão acessar fontes de dados externas específicas não incluídas em seu conjunto de dados de treinamento, como documentos internos, e-mails ou conjuntos de dados. LangChain refere-se coletivamente a essa documentação externa como “índices"."

Carregadores de documentos 
O LangChain oferece uma grande variedade de carregadores de documentos para aplicativos de terceiros (link fora do ibm.com). Isso permite a fácil importação de dados de fontes como serviços de armazenamento de arquivos (como Dropbox, Google Drive e Microsoft OneDrive), conteúdo da web (como YouTube, URLs específicas ou PubMed), ferramentas de colaboração (como Airtable, Trello, Figma e Notion), bancos de dados (como Pandas, MongoDB e Microsoft), entre muitas outras. 

Bancos de dados vetoriais 
Ao contrário dos bancos de dados estruturados "tradicionais", os bancos de dados vetoriais representam pontos de dados convertendo-os em incorporações vetoriais: representações numéricas na forma de vetores com um número fixo de dimensões, muitas vezes agrupando pontos de dados relacionados com métodos de aprendizado não supervisionados. Isso permite consultas de baixa latência, mesmo para conjuntos de dados maciços, o que aumenta consideravelmente a eficiência. As incorporações vetoriais também armazenam os metadados de cada vetor, melhorando ainda mais as possibilidades de pesquisa.

O LangChain oferece integrações para mais de 25 métodos de incorporação diferentes, bem como para mais de 50 lojas de vetor diferentes (hospedado na nuvem e no local). 

Divisores de texto 
Para aumentar a velocidade e reduzir as demandas computacionais, geralmente é aconselhável dividir documentos grandes de texto em trechos menores. Os TextSplitters do LangChain dividem o texto em pequenos trechos com significado semântico que podem ser combinados com métodos e parâmetros da sua escolha.

Recuperação 
Uma vez que as fontes externas de conhecimento tenham sido conectadas, o modelo deve ser capaz de recuperar e integrar rapidamente as informações relevantes, conforme o necessário. Assim como o watsonx, o LangChain oferece geração aumentada de recuperação (RAG): seus módulos de recuperação aceitam uma consulta de string como entrada e retornam uma lista de documentosna saída.

Memória

Por padrão, os LLMs não têm memória de longo prazo de conversas anteriores (a menos que o histórico do chat seja usado como entrada para uma consulta). O LangChain soluciona esse problema com utilitários simples para adicionar memória a um sistema, com opções que vão desde a retenção total de todas as conversas até a retenção de um resumo da conversa até a retenção das n trocas mais recentes.

Agentes

Os agentes do LangChain podem usar um determinado modelo de idioma como um "mecanismo de raciocínio" para determinar quais ações tomar. Ao criar uma cadeia para um agente, as entradas contêm:

  • uma lista de ferramentas disponíveis para serem aproveitadas.
  • entrada do usuário (como prompts e consultas).
  • quaisquer etapas relevantes executadas anteriormente.
Saiba mais sobre agentes no LangChain
Ferramentas

Apesar do poder e da versatilidade anunciados, os LLMs têm limitações importantes: falta de informações atualizadas, falta de conhecimento específico do domínio e dificuldade geral com matemática. 

As ferramentas do LangChain (link fora de ibm.com) são um conjunto de funções que capacita os agentes do LangChain a interagir com informações do mundo real para expandir ou melhorar os serviços que podem entregar. Exemplos de ferramentas proeminentes do LangChain:

  • Wolfram Alpha: oferece acesso a funções poderosas de visualização de dados e computação, possibilitando recursos matemáticas sofisticados.

  • Google Search: entrega o acesso ao Google Search, equipando aplicativos e agentes com informações em tempo real.

  • OpenWeatherMap: obtém informações meteorológicas.

  • Wikipedia: oferece acesso eficiente a informações de artigos da Wikipedia.

LangSmith

Lançado no outono de 2023, o LangSmith pretende preencher a lacuna entre os recursos de prototipagem acessíveis que levaram a LangChain à proeminência e à construção de aplicações de LLM com qualidade de produção.

O LangSmith entrega ferramentas para monitorar, avaliar e depurar aplicativos, incluindo a capacidade de rastrear automaticamente todas as chamadas de modelo para detectar erros e testar o desempenho em diversas configurações de modelo. Essa visibilidade visa a capacitar aplicativos mais robustos e econômicos.

Introdução ao LangChain

O LangChain é código aberto e gratuito: o código-fonte está disponível para download no Github (o link fora do ibm.com). 

O LangChain também pode ser instalado no Python com um comando pip simples: pip install langchain.  Para instalar todas as dependências do LangChain (em vez de somente aquelas que você considera necessárias), execute o comando pip install langchain[all].

Há muitos tutoriais passo a passo disponíveis no ecossistema da comunidade LangChain e na documentação oficial em docs.langchain.com (link fora de ibm.com).

Casos de uso do LangChain

Aplicativos feitos com o LangChain entregam grande utilidade para uma variedade de casos de uso, desde tarefas diretas de resposta a perguntas e geração de texto até soluções mais complexas que usam um LLM como um "mecanismo de raciocínio".

  • Chatbots: os chatbots estão entre os usos mais intuitivos de LLMs. O LangChain pode ser utilizado para apresentar contexto adequado para o uso específico de um chatbot e para integrar chatbots em canais de comunicação e fluxos de trabalho existentes com suas próprias APIs.
  • Resumos: os modelos de linguagem podem ser encarregados de resumir muitos tipos de texto, desde a análise de artigos acadêmicos complexos e transcrições até o fornecimento de um resumo dos e-mails recebidos.
  • Respostas para perguntas: usando documentos específicos ou bases de conhecimento especializadas (como Wolfram, arXiv ou PubMed), as LLMs podem recuperar informações relevantes do armazenamento e articular respostas úteis). Se ajustado ou solicitado corretamente, alguns LLMs podem responder a muitas perguntas, mesmo sem informações externas.
  • Aumento de dados: LLMs podem ser usados para gerar dados sintéticos para uso em aprendizado de máquina. Por exemplo, um LLM pode ser treinado para gerar amostras de dados adicionais que se assemelham aos pontos de dados em um conjunto de dados de treinamento.
  • Agentes virtuais: integrados aos fluxos de trabalho certos, os módulos de agente do LangChain podem usar um LLM para determinar as próximas etapas de forma autônoma e tomar medidas usando automação robótica de processos (RPA).
Soluções relacionadas
watsonx.ai

Treine, valide, ajuste e implemente IA generativa, modelos de base e recursos de aprendizado de máquina com facilidade, além de criar aplicativos de IA em uma fração do tempo com uma fração dos dados.

Explore o watsonx.ai

Serviços de consultoria de IA

Reinvente sua forma de trabalhar com a IA: nossa equipe global diversificada de mais de 20 mil especialistas em IA pode ajudá-lo a projetar e escalar a IA e a automação de forma rápida e confiável em toda a sua empresa, trabalhando com nossa própria tecnologia IBM watsonx e um ecossistema aberto de parceiros para oferecer qualquer modelo de IA, em qualquer nuvem, guiado ética e confiança.

Explore os serviços de consultoria em IA da IBM

watsonx.data

Escale análises e cargas de trabalho de IA para todos os seus dados, em qualquer lugar, com o watsonx.data, o único armazenamento de dados aberto, híbrido e controlado do setor.

Explore o watsonx.data
Recursos LangChain

Ferramentas, dicas e código de amostra para começar a construir aplicativos com LangChain e Watsonx.

Dicas para escrever prompts de modelos básicos

Parte arte, parte ciência, a engenharia de prompts é o processo de elaboração de textos de prompts para obter o melhor efeito para um determinado modelo e parâmetros. Essas dicas ajudarão você a iniciar com sucesso a maioria dos modelos básicos geradores de texto.

Use watsonx e LangChain para chamar um modelo de idioma

Este notebook contém as etapas e o código para demonstrar a cadeia sequencial simples utilizando integração langchain com modelos watsonx. Alguma familiaridade com Python será útil.

Guia para iniciantes em Python

Apresentaremos os conceitos básicos que você precisa conhecer para começar com esta linguagem de programação simples, desde a execução de cálculos algébricos até a geração de resultados gráficos a partir de seus dados.

Dê o próximo passo

Treine, valide, ajuste e implemente recursos generativos de IA, modelos de fundação e aprendizado de máquina com facilidade e desenvolva aplicativos de IA em uma fração do tempo, com uma fração dos dados com IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA.

Inicie sua avaliação sem custo Agende uma demonstração em tempo real
Notas de rodapé