Crie seu próprio resumidor de texto com IA usando Langchain, OpenAI e Streamlit
No cenário digital em rápida evolução de hoje, a habilidade de condensar textos substanciais de forma rápida e eficiente é extremamente valiosa. Este guia orienta você na criação de sua própria ferramenta de resumo de texto usando tecnologias modernas: OpenAI, Langchain e Streamlit. Seja você um desenvolvedor, estudante ou profissional de negócios, esta ferramenta ajudará a otimizar seu trabalho e aprofundar sua compreensão das informações escritas.
Pontos principais
Desenvolva um aplicativo de resumo de texto com OpenAI, Langchain e Streamlit.
Aproveite o GPT 3.5 para uma resumização poderosa com um modelo de linguagem.
Use o Streamlit para construir uma interface web intuitiva e acessível.
Incorpore as ferramentas da comunidade Langchain para melhorar o fluxo de trabalho de resumo.
Saiba por que dividir o texto em segmentos é essencial para o manuseio do modelo de IA.
Implante o aplicativo final na Streamlit Community Cloud para facilitar o acesso e o compartilhamento.
Integre uma função para limpar automaticamente as chaves API após o uso para maior segurança.
Desenvolvimento de aplicativo de resumo de texto
Entendendo a pilha de tecnologia
Um conhecimento sólido da pilha de tecnologia é vital para construir um aplicativo de resumo de texto capaz. Vamos examinar cada componente em detalhes:

- Streamlit: o Streamlit atua como base para a interface da web, oferecendo uma maneira simples, mas flexível, de criar aplicativos interativos em Python. Seus recursos fáceis de usar oferecem suporte à prototipagem e implantação rápidas.
- Langchain: Langchain é uma estrutura que simplifica o desenvolvimento de aplicativos usando Modelos de Linguagem Grande (LLMs). Inclui módulos para trabalhar com documentos, dividir texto e realizar resumos.
- OpenAI: A OpenAI fornece o LLM — especificamente o GPT 3.5 — que avalia e produz resumos sucintos a partir do texto fornecido.
- Tiktoken: O Tiktoken tokeniza o texto para uso eficiente pelos modelos OpenAI, dividindo-o em partes menores que o LLM pode gerenciar facilmente.
Ao integrar essas tecnologias, você pode criar uma ferramenta de resumo de texto confiável e fácil de usar com o mínimo de esforço de codificação.
O processo de resumo de texto
Aqui está uma descrição passo a passo do processo de resumo de texto:

- Texto de entrada: o usuário fornece o texto que deseja resumir. Pode ser um documento, artigo ou qualquer outro conteúdo escrito.
- Divisor de texto por caracteres: o texto de entrada é segmentado em partes menores com o
CharacterTextSplitter. Essa é uma etapa fundamental para gerenciar o texto de maneira eficaz. Grandes quantidades de texto podem sobrecarregar os modelos de IA, portanto, dividi-los garante um processamento tranquilo. - Fragmentação: O divisor de texto divide a entrada em fragmentos gerenciáveis, preservando os limites dos caracteres para manter o contexto.
- Criação de documentos: Cada fragmento de texto é transformado em um objeto Langchain
Document , que funciona perfeitamente com as funções de resumo do Langchain. - Interação LLM: A
load_summarize_chain função usa o OpenAI LLM para produzir um resumo conciso de cada documento. Essa função simplifica a interação com o modelo de linguagem. - Texto resumido: O resultado final é uma versão abreviada do texto original que mantém os detalhes principais de forma compacta. Os recursos do LLM são aproveitados para converter o texto em um resumo breve, mas informativo.
Por que o chunking é importante para modelos de IA?
O chunking é uma etapa crítica porque permite que os modelos de IA lidem com informações em partes menores e mais viáveis.

Esse método reduz as demandas cognitivas e computacionais da síntese de texto. Os modelos de IA funcionam com mais eficiência ao lidar com seções menores e focadas, o que geralmente leva a um melhor desempenho e precisão. Dividir textos longos em partes digeríveis também ajuda o modelo a preservar o contexto e ampliar as informações mais relevantes dentro de cada segmento.
A tabela a seguir explica a necessidade de dividir o texto para que o LLM processe com mais precisão:
Detalhes da implementação do código
Importação de bibliotecas
A primeira etapa no desenvolvimento do aplicativo é importar as bibliotecas necessárias: Streamlit, Langchain, OpenAI e Tiktoken.

A sintaxe de importação é a seguinte:
import streamlit as stfrom langchain.docstore.document import Documentfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.chains.summarize import load_summarize_chainfrom langchain.llms import OpenAI
Criação da função generate_response
O núcleo do aplicativo é a função generate_response . Essa função recebe o texto inserido pelo usuário e gerencia o pipeline de resumo. Ela inicializa o modelo OpenAI, divide a entrada, cria objetos de documento e chama o load_summarize_chain para gerar o resumo final.

Aqui está o código:
def generate_response(txt):llm = OpenAI(temperature=0.7, openai_api_key=openai_api_key)text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_text(txt)docs = [Document(page_content=t) for t in texts]chain = load_summarize_chain(llm, chain_type="map_reduce", verbose=False)output_summary = chain.run(docs)return output_summary
- Instanciar o LLM: O modelo de linguagem OpenAI é inicializado com uma temperatura escolhida e a chave API do usuário. A temperatura afeta o nível de criatividade da saída.
- Dividir o texto: O texto inserido é dividido em seções usando
CharacterTextSplitter. Isso mantém os segmentos de texto em um tamanho apropriado para o modelo. - Criar documentos: Cada seção de texto é convertida em um
Document objeto, o tipo de entrada padrão para Langchain. - Carregar a cadeia de resumo: A função
load_summarize_chain função cria a cadeia de resumo, que é configurada com base no modelo de idioma e no método de resumo preferido. - Executar a cadeia: A cadeia de resumo é executada por meio do método
run método, que processa os documentos e produz o resumo. - Retornar saída: O texto resumido é retornado como resultado da função.
Criação da interface web Streamlit
O Streamlit facilita a criação da interface web. A interface inclui os seguintes componentes:
- Configuração da página para definir o título.
- Uma área de texto onde os usuários podem inserir o texto a ser resumido.
- Um formulário que aceita com segurança a chave API OpenAI do usuário.
- Um botão enviar para ativar o processo de resumo.
- Uma área de resultados que mostra o resultado resumido.
st.set_page_config(page_title="Aplicativo de resumo de texto")st.title("Text Summarization App")text_input = st.text_area("Enter your text here:", height=200)with st.form('myform', clear_on_submit=True):openai_api_key = st.text_input('OpenAI API Key', type = 'password', disabled=not(openai_api_key_startwith_check))submitted = st.form_submit_button('Submit')if submitted and openai_api_key:with st.spinner('Calculating...'):raw_response = generate_response(text_input)try:st.info(raw_response)except Exception as e:st.error(e)st.subheader("How to get an OpenAI API key:")st.markdown("To use this app, you will need an OpenAI API Key. You can create a secret keyhere: ")st.markdown("[OpenAI API Keys](https://platform.openai.com/api-keys)")
Como usar o aplicativo de resumo de texto
Guia passo a passo para resumir texto
Usar o aplicativo de resumo de texto é simples e envolve apenas algumas etapas:
- Insira seu texto: copie e cole o texto que deseja resumir na área de entrada de texto. Pode ser um trecho de um livro, uma notícia ou um e-mail detalhado.
- Insira a chave da API OpenAI: forneça sua chave da API OpenAI para autenticar solicitações aos modelos de linguagem da OpenAI.

Por motivos de segurança, o campo de entrada limpa automaticamente a chave da API após o processamento da solicitação.
- Enviar: clique no botão enviar para iniciar o resumo.
- Visualize o texto resumido: após a conclusão do processamento, o aplicativo mostrará um resumo claro e conciso do seu texto original.
Vantagens e desvantagens
Prós
Facilita a leitura e a absorção de informações.
Reduz o esforço mental ao fornecer conteúdo condensado.
Acelera os processos de trabalho com resumos rápidos.
Melhora a compreensão de textos complicados ou longos.
Contras
Depende da posse de uma chave API OpenAI e do acesso aos seus serviços.
Possíveis imprecisões ou perda de detalhes sutis durante a síntese.
Opções restritas para personalizar o modelo de resumo.
As chaves API devem ser apagadas após cada sessão para manter a segurança.
Perguntas frequentes
O que é resumo de texto?
A resumização de texto envolve encurtar um texto longo, mantendo intactas as informações mais importantes.
Por que o chunking é importante na resumização de texto?
A fragmentação ajuda os modelos de IA a processar textos grandes de forma mais eficaz, dividindo-os em segmentos menores e focados, aumentando a precisão e reduzindo a demanda de processamento.
Como a chave API melhora a segurança?
Limpar a chave API após o uso evita que informações confidenciais de autenticação sejam armazenadas ou utilizadas indevidamente.
O que posso fazer com o repositório GitHub?
Siga as instruções fornecidas para clonar o repositório, adicionar sua chave API OpenAI e começar a resumir o conteúdo de sua escolha.
Quanto tempo leva para concluir o processo?
Todo o processo, desde a configuração até a geração do resumo, geralmente leva menos de 10 minutos.
Perguntas relacionadas
Posso usar outros modelos de idioma além do OpenAI?
Sim, o aplicativo de resumo de texto pode ser ajustado para funcionar com outros modelos de linguagem. Você precisaria atualizar o código para se conectar à API do modelo alternativo e adaptar as etapas de processamento de texto conforme necessário. Lembre-se de que modelos diferentes podem ter requisitos de entrada ou características de desempenho exclusivos.
Artigo relacionado
Claude Opus 4.7 é lançado com a confiabilidade em detrimento da inteligência
A Anthropic manteve um ritmo acelerado este ano, lançando novos recursos quase a cada dois dias. O tão aguardado Claude Opus 4.7 acaba de ser lançado oficialmente e, curiosamente, a Anthropic foi dire
A Haier lança o robô exoesqueleto esportivo com IA mais leve do mundo, pesando apenas 1,75 kg
O Grupo Haier apresentou o robô exoesqueleto com inteligência artificial mais leve do mundo para esportes — o Haier Exoskeleton Robot W3. Este lançamento estabelece um novo recorde do setor em termos
A primeira série dramática com AIGC da Yaoke Media, “O Mistério do Bronze em Qinling”, estreia hoje com protagonistas criados por IA
Hoje marca o lançamento oficial da minissérie de mistério e fantasia com IA da Yaoke Media, “A História Secreta do Bronze de Qinling”. Estrelada pelos dois primeiros atores de IA contratados pela empr
Recomendações de tópicos especiais relacionados
Comentários (2)
この記事を読んで、自分でもAI要約ツールを作ってみたくなりました。特にLangchainの使い方が分かりやすく説明されていて助かります。ただ、OpenAIのAPIコストが気になるな…ローカルで動く軽量モデルを使ったバージョンも紹介してほしいです。🤔
Klasse! Endlich mal eine praktische Anwendung statt nur Theorie. Die Kombination aus Langchain und Streamlit klingt vielversprechend für Prototypen. Ich frage mich, wie gut das bei sehr speziellen Fachtexten funktioniert. Würde mir wünschen, dass so Tools auch für andere Sprachen als Englisch optimiert werden. Hat jemand schon Erfahrungen damit gemacht? 😊
No cenário digital em rápida evolução de hoje, a habilidade de condensar textos substanciais de forma rápida e eficiente é extremamente valiosa. Este guia orienta você na criação de sua própria ferramenta de resumo de texto usando tecnologias modernas: OpenAI, Langchain e Streamlit. Seja você um desenvolvedor, estudante ou profissional de negócios, esta ferramenta ajudará a otimizar seu trabalho e aprofundar sua compreensão das informações escritas.
Pontos principais
Desenvolva um aplicativo de resumo de texto com OpenAI, Langchain e Streamlit.
Aproveite o GPT 3.5 para uma resumização poderosa com um modelo de linguagem.
Use o Streamlit para construir uma interface web intuitiva e acessível.
Incorpore as ferramentas da comunidade Langchain para melhorar o fluxo de trabalho de resumo.
Saiba por que dividir o texto em segmentos é essencial para o manuseio do modelo de IA.
Implante o aplicativo final na Streamlit Community Cloud para facilitar o acesso e o compartilhamento.
Integre uma função para limpar automaticamente as chaves API após o uso para maior segurança.
Desenvolvimento de aplicativo de resumo de texto
Entendendo a pilha de tecnologia
Um conhecimento sólido da pilha de tecnologia é vital para construir um aplicativo de resumo de texto capaz. Vamos examinar cada componente em detalhes:

- Streamlit: o Streamlit atua como base para a interface da web, oferecendo uma maneira simples, mas flexível, de criar aplicativos interativos em Python. Seus recursos fáceis de usar oferecem suporte à prototipagem e implantação rápidas.
- Langchain: Langchain é uma estrutura que simplifica o desenvolvimento de aplicativos usando Modelos de Linguagem Grande (LLMs). Inclui módulos para trabalhar com documentos, dividir texto e realizar resumos.
- OpenAI: A OpenAI fornece o LLM — especificamente o GPT 3.5 — que avalia e produz resumos sucintos a partir do texto fornecido.
- Tiktoken: O Tiktoken tokeniza o texto para uso eficiente pelos modelos OpenAI, dividindo-o em partes menores que o LLM pode gerenciar facilmente.
Ao integrar essas tecnologias, você pode criar uma ferramenta de resumo de texto confiável e fácil de usar com o mínimo de esforço de codificação.
O processo de resumo de texto
Aqui está uma descrição passo a passo do processo de resumo de texto:

- Texto de entrada: o usuário fornece o texto que deseja resumir. Pode ser um documento, artigo ou qualquer outro conteúdo escrito.
- Divisor de texto por caracteres: o texto de entrada é segmentado em partes menores com o
CharacterTextSplitter. Essa é uma etapa fundamental para gerenciar o texto de maneira eficaz. Grandes quantidades de texto podem sobrecarregar os modelos de IA, portanto, dividi-los garante um processamento tranquilo. - Fragmentação: O divisor de texto divide a entrada em fragmentos gerenciáveis, preservando os limites dos caracteres para manter o contexto.
- Criação de documentos: Cada fragmento de texto é transformado em um objeto Langchain
Document, que funciona perfeitamente com as funções de resumo do Langchain. - Interação LLM: A
load_summarize_chainfunção usa o OpenAI LLM para produzir um resumo conciso de cada documento. Essa função simplifica a interação com o modelo de linguagem. - Texto resumido: O resultado final é uma versão abreviada do texto original que mantém os detalhes principais de forma compacta. Os recursos do LLM são aproveitados para converter o texto em um resumo breve, mas informativo.
Por que o chunking é importante para modelos de IA?
O chunking é uma etapa crítica porque permite que os modelos de IA lidem com informações em partes menores e mais viáveis.

Esse método reduz as demandas cognitivas e computacionais da síntese de texto. Os modelos de IA funcionam com mais eficiência ao lidar com seções menores e focadas, o que geralmente leva a um melhor desempenho e precisão. Dividir textos longos em partes digeríveis também ajuda o modelo a preservar o contexto e ampliar as informações mais relevantes dentro de cada segmento.
A tabela a seguir explica a necessidade de dividir o texto para que o LLM processe com mais precisão:
Detalhes da implementação do código
Importação de bibliotecas
A primeira etapa no desenvolvimento do aplicativo é importar as bibliotecas necessárias: Streamlit, Langchain, OpenAI e Tiktoken.

A sintaxe de importação é a seguinte:
import streamlit as stfrom langchain.docstore.document import Documentfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.chains.summarize import load_summarize_chainfrom langchain.llms import OpenAI
Criação da função generate_response
O núcleo do aplicativo é a função generate_response . Essa função recebe o texto inserido pelo usuário e gerencia o pipeline de resumo. Ela inicializa o modelo OpenAI, divide a entrada, cria objetos de documento e chama o load_summarize_chain para gerar o resumo final.

Aqui está o código:
def generate_response(txt):llm = OpenAI(temperature=0.7, openai_api_key=openai_api_key)text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_text(txt)docs = [Document(page_content=t) for t in texts]chain = load_summarize_chain(llm, chain_type="map_reduce", verbose=False)output_summary = chain.run(docs)return output_summary
- Instanciar o LLM: O modelo de linguagem OpenAI é inicializado com uma temperatura escolhida e a chave API do usuário. A temperatura afeta o nível de criatividade da saída.
- Dividir o texto: O texto inserido é dividido em seções usando
CharacterTextSplitter. Isso mantém os segmentos de texto em um tamanho apropriado para o modelo. - Criar documentos: Cada seção de texto é convertida em um
Documentobjeto, o tipo de entrada padrão para Langchain. - Carregar a cadeia de resumo: A função
load_summarize_chainfunção cria a cadeia de resumo, que é configurada com base no modelo de idioma e no método de resumo preferido. - Executar a cadeia: A cadeia de resumo é executada por meio do método
runmétodo, que processa os documentos e produz o resumo. - Retornar saída: O texto resumido é retornado como resultado da função.
Criação da interface web Streamlit
O Streamlit facilita a criação da interface web. A interface inclui os seguintes componentes:
- Configuração da página para definir o título.
- Uma área de texto onde os usuários podem inserir o texto a ser resumido.
- Um formulário que aceita com segurança a chave API OpenAI do usuário.
- Um botão enviar para ativar o processo de resumo.
- Uma área de resultados que mostra o resultado resumido.
st.set_page_config(page_title="Aplicativo de resumo de texto")st.title("Text Summarization App")text_input = st.text_area("Enter your text here:", height=200)with st.form('myform', clear_on_submit=True):openai_api_key = st.text_input('OpenAI API Key', type = 'password', disabled=not(openai_api_key_startwith_check))submitted = st.form_submit_button('Submit')if submitted and openai_api_key:with st.spinner('Calculating...'):raw_response = generate_response(text_input)try:st.info(raw_response)except Exception as e:st.error(e)st.subheader("How to get an OpenAI API key:")st.markdown("To use this app, you will need an OpenAI API Key. You can create a secret keyhere: ")st.markdown("[OpenAI API Keys](https://platform.openai.com/api-keys)")
Como usar o aplicativo de resumo de texto
Guia passo a passo para resumir texto
Usar o aplicativo de resumo de texto é simples e envolve apenas algumas etapas:
- Insira seu texto: copie e cole o texto que deseja resumir na área de entrada de texto. Pode ser um trecho de um livro, uma notícia ou um e-mail detalhado.
- Insira a chave da API OpenAI: forneça sua chave da API OpenAI para autenticar solicitações aos modelos de linguagem da OpenAI.

Por motivos de segurança, o campo de entrada limpa automaticamente a chave da API após o processamento da solicitação.
- Enviar: clique no botão enviar para iniciar o resumo.
- Visualize o texto resumido: após a conclusão do processamento, o aplicativo mostrará um resumo claro e conciso do seu texto original.
Vantagens e desvantagens
Prós
Facilita a leitura e a absorção de informações.
Reduz o esforço mental ao fornecer conteúdo condensado.
Acelera os processos de trabalho com resumos rápidos.
Melhora a compreensão de textos complicados ou longos.
Contras
Depende da posse de uma chave API OpenAI e do acesso aos seus serviços.
Possíveis imprecisões ou perda de detalhes sutis durante a síntese.
Opções restritas para personalizar o modelo de resumo.
As chaves API devem ser apagadas após cada sessão para manter a segurança.
Perguntas frequentes
O que é resumo de texto?
A resumização de texto envolve encurtar um texto longo, mantendo intactas as informações mais importantes.
Por que o chunking é importante na resumização de texto?
A fragmentação ajuda os modelos de IA a processar textos grandes de forma mais eficaz, dividindo-os em segmentos menores e focados, aumentando a precisão e reduzindo a demanda de processamento.
Como a chave API melhora a segurança?
Limpar a chave API após o uso evita que informações confidenciais de autenticação sejam armazenadas ou utilizadas indevidamente.
O que posso fazer com o repositório GitHub?
Siga as instruções fornecidas para clonar o repositório, adicionar sua chave API OpenAI e começar a resumir o conteúdo de sua escolha.
Quanto tempo leva para concluir o processo?
Todo o processo, desde a configuração até a geração do resumo, geralmente leva menos de 10 minutos.
Perguntas relacionadas
Posso usar outros modelos de idioma além do OpenAI?
Sim, o aplicativo de resumo de texto pode ser ajustado para funcionar com outros modelos de linguagem. Você precisaria atualizar o código para se conectar à API do modelo alternativo e adaptar as etapas de processamento de texto conforme necessário. Lembre-se de que modelos diferentes podem ter requisitos de entrada ou características de desempenho exclusivos.
Claude Opus 4.7 é lançado com a confiabilidade em detrimento da inteligência
A Anthropic manteve um ritmo acelerado este ano, lançando novos recursos quase a cada dois dias. O tão aguardado Claude Opus 4.7 acaba de ser lançado oficialmente e, curiosamente, a Anthropic foi dire
A Haier lança o robô exoesqueleto esportivo com IA mais leve do mundo, pesando apenas 1,75 kg
O Grupo Haier apresentou o robô exoesqueleto com inteligência artificial mais leve do mundo para esportes — o Haier Exoskeleton Robot W3. Este lançamento estabelece um novo recorde do setor em termos
A primeira série dramática com AIGC da Yaoke Media, “O Mistério do Bronze em Qinling”, estreia hoje com protagonistas criados por IA
Hoje marca o lançamento oficial da minissérie de mistério e fantasia com IA da Yaoke Media, “A História Secreta do Bronze de Qinling”. Estrelada pelos dois primeiros atores de IA contratados pela empr
この記事を読んで、自分でもAI要約ツールを作ってみたくなりました。特にLangchainの使い方が分かりやすく説明されていて助かります。ただ、OpenAIのAPIコストが気になるな…ローカルで動く軽量モデルを使ったバージョンも紹介してほしいです。🤔
Klasse! Endlich mal eine praktische Anwendung statt nur Theorie. Die Kombination aus Langchain und Streamlit klingt vielversprechend für Prototypen. Ich frage mich, wie gut das bei sehr speziellen Fachtexten funktioniert. Würde mir wünschen, dass so Tools auch für andere Sprachen als Englisch optimiert werden. Hat jemand schon Erfahrungen damit gemacht? 😊





Lar






