Introdução
LangChain é um framework de desenvolvimento de aplicativos de inteligência artificial em Python de código aberto que fornece módulos e ferramentas para construir aplicativos de IA com base em modelos grandes. Através do LangChain, os desenvolvedores podem facilmente integrar Grandes Modelos de Linguagem (LLMs) para completar tarefas como geração de texto, resposta a perguntas, tradução e diálogo. LangChain reduz a barreira para o desenvolvimento de aplicativos de IA, permitindo que qualquer pessoa construa suas próprias aplicações criativas com base em LLM.
Recursos do LangChain:
- LLM e Prompt: LangChain abstrai todas as APIs de modelos grandes LLM, unifica a API de acesso aos modelos grandes e fornece um mecanismo de gerenciamento de templates de prompt.
- Chain: LangChain encapsula cenários comuns em módulos prontos, como sistemas de resposta a perguntas baseadas em contexto, geração de linguagem natural de consultas SQL, entre outros, nomeados "Chain" porque o processo de implementação dessas tarefas é como um fluxo de trabalho, executado passo a passo.
- LCEL: LangChain Expression Language (LCEL) é o recurso principal da nova versão do LangChain, usado para resolver problemas de orquestração de fluxo de trabalho. Através das expressões LCEL, podemos customizar de forma flexível o fluxo de processamento de tarefas de IA, ou seja, customizar de forma flexível a "Chain".
- Geração com Recuperação Aumentada (RAG): Como os Grandes Modelos de Linguagem (LLMs) não entendem novas informações e não podem responder a novas perguntas, podemos importar novas informações para o LLM para melhorar a qualidade do conteúdo gerado. Esse modo é chamado de modo RAG (Geração com Recuperação Aumentada).
- Agentes: Um padrão de design baseado em Grandes Modelos de Linguagem (LLMs) que utiliza a compreensão de linguagem natural e capacidades de raciocínio do LLM (LLM como cérebro) para chamar automaticamente sistemas e dispositivos externos juntos para completar tarefas com base nos requisitos do usuário. Por exemplo, quando um usuário insere "tirar o dia de folga amanhã", o Grande Modelo de Linguagem (LLM) chama automaticamente o sistema de licença e inicia uma aplicação de licença.
- Memória do Modelo: Permite que o Grande Modelo de Linguagem (LLM) lembre do conteúdo da conversa anterior, uma capacidade conhecida como memória do modelo.
Componentes do Framework LangChain
O framework LangChain é composto por diversos componentes, incluindo:
- Biblioteca LangChain: Bibliotecas em Python e JavaScript. Inclui a base de tempo de execução para interfaces e integração de vários componentes, bem como a implementação de cadeias e agentes prontos.
- Modelos de Template LangChain: Modelos oficiais de tarefas de IA fornecidos pelo LangChain.
- LangServe: Com base no FastAPI, pode publicar as cadeias definidas pelo LangChain como APIs REST.
- LangSmith: Uma plataforma de desenvolvimento, é um serviço em nuvem que suporta depuração e monitoramento de tarefas LangChain.
Biblioteca LangChain (Bibliotecas)
A biblioteca LangChain em si consiste em vários pacotes diferentes.
-
langchain-core
: Abstrações básicas e linguagem de expressão LangChain. -
langchain-community
: Integrações de terceiros, principalmente incluindo componentes de terceiros integrados com LangChain. -
langchain
: Inclui principalmente cadeias, agentes e estratégias de recuperação.
Fluxo de Processamento de Tarefas LangChain
Como mostrado na imagem acima, o LangChain fornece um conjunto de ferramentas de gerenciamento de templates de prompt para lidar com prompts. Em seguida, passa os prompts para o grande modelo para processamento e, finalmente, processa os resultados retornados pelo grande modelo.
A encapsulação do grande modelo pelo LangChain inclui principalmente dois tipos: LLM e Modelo de Conversação.
- LLM - Modelo de resposta a perguntas que recebe uma entrada de texto e retorna um resultado de texto.
- Modelo de Conversação - Modelo de diálogo que recebe um conjunto de mensagens de diálogo e retorna mensagens de diálogo de maneira conversacional.
Conceitos Principais
1. LLMs
Os modelos fundamentais encapsulados pelo LangChain que recebem uma entrada de texto e retornam um resultado de texto.
2. Modelos de Conversação
Modelos de conversação (ou modelos de diálogo) projetados especificamente para cenários de diálogo, ao contrário dos LLMs. Esses modelos podem receber um conjunto de mensagens de diálogo e retornar mensagens de diálogo em um formato conversacional.
3. Mensagens
Refere-se ao conteúdo de mensagens em modelos de conversação. Os tipos de mensagem incluem Mensagem Humana, Mensagem de IA, Mensagem de Sistema, Mensagem de Função e Mensagem de Ferramenta, entre outros.
4. Prompts
O LangChain encapsula um conjunto de ferramentas especificamente usadas para gerenciamento de prompts, tornando mais fácil formatar o conteúdo do prompt.
5. Analisadores de Saída
Conforme mencionado na imagem acima, após o LangChain receber o conteúdo de texto retornado pelo grande modelo (LLM), ele pode usar analisadores de saída dedicados para formatar o conteúdo de texto, como analisar JSON ou converter a saída do LLM em um objeto Python.
5. Recuperadores
Para importar facilmente dados privados para o grande modelo (LLM) e melhorar a qualidade das respostas do modelo, o LangChain encapsula um framework de recuperação (Recuperadores) que facilita o carregamento, segmentação, armazenamento e recuperação de dados de documentos.
6. Armazenamento de Vetores
Para suportar pesquisas de similaridade semântica para dados privados, o LangChain suporta vários bancos de dados de vetores.
7. Agentes
Agentes, geralmente referindo-se a aplicativos projetados com o grande modelo (LLM) como motor de decisão, chamam automaticamente sistemas externos e dispositivos de hardware para completar tarefas do usuário com base na entrada do usuário. É um padrão de design com o grande modelo (LLM) no seu núcleo.
Cenários de Aplicação
- Chatbots: Construindo assistentes de chat inteligentes, chatbots de atendimento ao cliente e chatbots conversacionais.
- Base de Conhecimento Pergunta e Resposta: Fornecendo serviços de perguntas e respostas de domínio aberto integrando-se com grafos de conhecimento.
- Escrita Inteligente: Como redação de artigos, redação criativa e sumarização de texto.