![Função Map() do Python: iterar sem loop](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711583043_Funcao-Map-do-Python-iterar-sem-loop-150x150.jpg)
Função Map() do Python: iterar sem loop
27 de março de 2024![Módulo de coleção do Python para estruturas de dados especializadas](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711598404_Modulo-de-colecao-do-Python-para-estruturas-de-dados-especializadas-150x150.jpg)
Módulo de coleção do Python para estruturas de dados especializadas
28 de março de 2024Neste tutorial, veremos como combinar LangChain — uma estrutura de programação para usar grandes modelos de linguagem (LLMs) em aplicativos — e Gemini LLM do Google para resumir postagens de blogs ou artigos na internet.
Certifique-se de ter uma chave de API do Google AI Studio antes de continuar com o tutorial.
Este aplicativo tem como objetivo resumir artigos baseados na web, fornecendo visões gerais concisas de seu conteúdo. Isso é particularmente útil para compreender rapidamente a essência de artigos longos sem ler o texto inteiro.
Etapa 1: inicializando o ambiente
Crie um ambiente virtual Python e instale os módulos necessários dele requirements.txt
arquivo.
python -m venv venv source venv/bin/activate
Crie orequirements.txt
arquivo com o conteúdo abaixo:
google.generativeai langchain-google-genai langchain langchain_community jupyter
pip install -r requirements.txt
Defina uma variável de ambiente para acessar a chave de API implicitamente no código.
export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"
Inicie o Jupyter Notebook e comece a usar o código.
Etapa 2: importar módulos
Comece importando os módulos Python necessários. Essas importações incluem classes e funções de LangChain e Google Generative AI, que são essenciais para construir nosso aplicativo. Certifique-se de que essas bibliotecas estejam instaladas em seu ambiente Python antes de continuar.
from langchain_google_genai import ChatGoogleGenerativeAI from langchain_google_genai import GoogleGenerativeAIEmbeddings from langchain_community.document_loaders import WebBaseLoader from langchain.prompts import PromptTemplate from langchain.chains import StuffDocumentsChain from langchain.chains.llm import LLMChain
Etapa 3: carregue o blog
Carregue conteúdo de um artigo baseado na web. O URL fornecido no trecho de código abaixo é apenas um exemplo; sinta-se à vontade para substituí-lo por qualquer URL de artigo que você deseja resumir. O conteúdo é obtido e armazenado para processamento posterior.
loader = WebBaseLoader("https://thenewstack.io/the-building-blocks-of-llms-vectors-tokens-and-embeddings/") docs = loader.load()
Etapa 4: definir a cadeia de resumo
Nesta etapa crítica, definiremos o modelo de resumo e configuraremos o modelo LangChain para gerar resumos. O modelo instrui o modelo sobre como estruturar sua saída, concentrando-se na criação de um resumo conciso do texto de entrada.
template = "Write a concise summary of the following:n"{text}"nCONCISE SUMMARY:" prompt = PromptTemplate.from_template(template) llm_chain = LLMChain(llm=llm, prompt=prompt) stuff_chain = StuffDocumentsChain(llm_chain=llm_chain, document_variable_name="text")
Etapa 5: invocar a cadeia
A etapa final é invocar a cadeia, que aciona o processo de sumarização do documento carregado. A saída é a tentativa do modelo de resumir o artigo, fornecendo uma versão condensada de seu conteúdo.
response=stuff_chain.invoke(docs) print(response("output_text"))
Mais sobre LangChain e LLMs
O caso de uso de perguntas e respostas (Q&A), conforme demonstrado no tutorial anterior, e o caso de uso de resumo, conforme descrito acima, aproveitam o poder do LangChain e do Gemini, mas atendem a propósitos distintos e empregam metodologias diferentes.
A aplicação de perguntas e respostas concentra-se em extrair respostas específicas de um determinado texto (como um documento PDF), exigindo que o sistema compreenda o contexto e recupere informações precisas em resposta às consultas. Este processo envolve carregar e dividir o documento em pedaços gerenciáveis, convertendo esses pedaços em embeddings e usando um mecanismo de recuperação para encontrar as seções de texto mais relevantes para responder às questões colocadas.
Por outro lado, o caso de uso de resumo foi projetado para condensar longos artigos baseados na web em resumos concisos. Esta aplicação enfatiza a capacidade de compreender o tema geral e os pontos-chave de um artigo, exigindo uma cadeia de resumo que instrui o modelo a produzir uma breve visão geral do conteúdo. Ao contrário do caso de uso de perguntas e respostas, o resumo envolve o carregamento direto do conteúdo da web, a aplicação de um modelo de resumo e a geração de uma versão condensada do artigo – destacando sua mensagem central sem a necessidade de se aprofundar nos detalhes.
Ambos os aplicativos mostram a versatilidade do LangChain no tratamento de tarefas de processamento de linguagem natural, mas cada um atende a necessidades diferentes. Um se concentra em identificar informações específicas dentro de um documento, enquanto o outro visa fornecer um resumo rápido e digerível de artigos extensos.
Você pode encontrar o código completo para resumo abaixo:
Veja o código no Gist.
O post Tutorial: Usando LangChain e Gemini para resumir artigos apareceu pela primeira vez em The New Stack.