Постройте свой собственный ИИ-сумматор текста с помощью Langchain, OpenAI и Streamlit
В современном быстро развивающемся цифровом мире умение быстро и эффективно сокращать объемные тексты является чрезвычайно ценным навыком. Это руководство поможет вам создать собственный инструмент для сокращения текстов с помощью современных технологий: OpenAI, Langchain и Streamlit. Независимо от того, являетесь ли вы разработчиком, студентом или бизнес-профессионалом, этот инструмент поможет вам оптимизировать свою работу и углубить понимание письменной информации.
Ключевые моменты
Разработайте приложение для резюмирования текста с помощью OpenAI, Langchain и Streamlit.
Используйте GPT 3.5 для эффективного обобщения с помощью языковой модели.
Используйте Streamlit для создания интуитивно понятного и доступного веб-интерфейса.
Используйте инструменты сообщества Langchain для улучшения рабочего процесса обобщения.
Узнайте, почему разделение текста на сегменты имеет важное значение для обработки моделей ИИ.
Разверните готовое приложение в Streamlit Community Cloud для удобного доступа и обмена.
Интегрируйте функцию автоматической очистки API-ключей после использования для повышения безопасности.
Разработка приложения для обобщения текста
Понимание технологического стека
Хорошее понимание технологического стека имеет решающее значение для создания эффективного приложения для резюмирования текста. Давайте рассмотрим каждый компонент подробнее:

- Streamlit: Streamlit служит основой для веб-интерфейса, предлагая простой, но гибкий способ создания интерактивных приложений на Python. Его удобные функции поддерживают быстрое прототипирование и развертывание.
- Langchain: Langchain — это фреймворк, который оптимизирует разработку приложений с использованием больших языковых моделей (LLM). Он включает в себя модули для работы с документами, разделения текста и выполнения резюмирования.
- OpenAI: OpenAI предоставляет LLM, а именно GPT 3.5, который оценивает и создает краткие резюме из предоставленного текста.
- Tiktoken: Tiktoken токенизирует текст для эффективного использования моделями OpenAI, разбивая его на более мелкие части, с которыми LLM может легко работать.
Интегрируя эти технологии, вы можете создать надежный и простой в использовании инструмент для резюмирования текста с минимальными затратами на кодирование.
Процесс резюмирования текста
Вот пошаговое описание процесса резюмирования текста:

- Ввод текста: пользователь вводит текст, который он хочет обобщить. Это может быть документ, статья или любой другой письменный контент.
- Разделение текста по символам: введенный текст сегментируется на более мелкие части с помощью Langchain's
CharacterTextSplitter. Это ключевой шаг для эффективного управления текстом. Большие объемы текста могут создавать нагрузку на модели ИИ, поэтому их разделение обеспечивает плавную обработку. - Разбиение на фрагменты: Разделитель текста разбивает входные данные на удобные фрагменты, сохраняя границы символов для поддержания контекста.
- Создание документа: каждый фрагмент текста преобразуется в объект Langchain
Document , который беспрепятственно работает с функциями обобщения Langchain. - Взаимодействие с LLM:
load_summarize_chain использует OpenAI LLM для создания краткого резюме каждого документа. Эта функция упрощает взаимодействие с языковой моделью. - Резюмированный текст: конечным результатом является сокращенная версия исходного текста, в которой ключевые детали сохранены в компактной форме. Возможности LLM используются для преобразования текста в краткое, но информативное резюме.
Почему разбиение на фрагменты важно для моделей ИИ?
Чанкинг является важным этапом, поскольку позволяет моделям ИИ обрабатывать информацию небольшими, более удобными для работы частями.

Этот метод снижает когнитивные и вычислительные требования к резюмированию текста. Модели ИИ работают более эффективно при обработке небольших, сфокусированных участков, что часто приводит к улучшению производительности и точности. Разбиение длинных текстов на легко усваиваемые части также помогает модели сохранить контекст и сосредоточиться на наиболее релевантной информации в каждом сегменте.
В следующей таблице объясняется необходимость разбиения текста для более точной обработки LLM:
Детали реализации кода
Импорт библиотек
Первым шагом в разработке приложения является импорт необходимых библиотек: Streamlit, Langchain, OpenAI и Tiktoken.

Синтаксис импорта следующий:
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
Создание функции generate_response
Ядром приложения является функция generate_response . Эта функция принимает входной текст пользователя и управляет процессом обобщения. Она инициализирует модель OpenAI, разделяет входные данные, создает объекты документа и вызывает load_summarize_chain для генерации окончательного резюме.

Вот код:
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
- Создание экземпляра LLM: Языковая модель OpenAI инициализируется с выбранной температурой и API-ключом пользователя. Температура влияет на уровень креативности вывода.
- Разделить текст: введенный текст делится на секции с помощью
CharacterTextSplitter. Это позволяет сохранить сегменты текста в размере, подходящем для модели. - Создание документов: каждый раздел текста преобразуется в объект
Document , стандартный тип ввода для Langchain. - Загрузка цепочки обобщения: функция
load_summarize_chain создает цепочку обобщения, которая настраивается на основе языковой модели и предпочтительного метода обобщения. - Запуск цепочки: цепочка обобщения выполняется с помощью метода
run метод, который обрабатывает документы и создает резюме. - Возврат результата: Резюмированный текст возвращается в качестве результата функции.
Создание веб-интерфейса Streamlit
Streamlit упрощает создание веб-интерфейса. Интерфейс включает в себя следующие компоненты:
- Настройка страницы для установки заголовка.
- Текстовое поле, в которое пользователи могут вводить текст для обобщения.
- Форма, которая безопасно принимает ключ API OpenAI пользователя.
- Кнопка отправки для запуска процесса обобщения.
- Область результатов, в которой отображается резюмированный вывод.
st.set_page_config(page_title="Приложение для резюмирования текста")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)")
Как использовать приложение для резюмирования текста
Пошаговое руководство по резюмированию текста
Использование приложения для резюмирования текста очень простое и состоит всего из нескольких шагов:
- Введите текст: скопируйте и вставьте текст, который хотите обобщить, в область ввода текста. Это может быть отрывок из книги, новостная статья или подробное электронное письмо.
- Введите ключ API OpenAI: введите свой ключ API OpenAI для аутентификации запросов к языковым моделям OpenAI.

В целях безопасности поле ввода автоматически очищает ключ API после обработки запроса.
- Отправьте: нажмите кнопку «Отправить», чтобы начать обобщение.
- Просмотр резюмированного текста: после завершения обработки приложение покажет четкое и лаконичное резюме вашего исходного текста.
Преимущества и недостатки
Плюсы
Упрощает чтение и усвоение информации.
Снижает умственное напряжение за счет предоставления сжатого содержания.
Ускоряет рабочие процессы благодаря быстрой суммированию.
Улучшает понимание сложных или длинных текстов.
Минусы
Требует наличия ключа API OpenAI и доступа к их услугам.
Возможные неточности или потеря мелких деталей при резюмировании.
Ограниченные возможности настройки модели обобщения.
Ключи API необходимо очищать после каждой сессии для обеспечения безопасности.
Часто задаваемые вопросы
Что такое резюмирование текста?
Резюмирование текста — это сокращение длинного текста с сохранением наиболее важной информации.
Почему фрагментация важна при суммировании текста?
Разбиение на фрагменты помогает моделям искусственного интеллекта более эффективно обрабатывать большие тексты, разбивая их на более мелкие, целенаправленные сегменты, что повышает точность и снижает нагрузку на систему.
Как ключ API повышает безопасность?
Удаление API-ключа после использования предотвращает хранение или неправомерное использование конфиденциальной информации для аутентификации.
Что я могу делать с репозиторием GitHub?
Следуйте предоставленным инструкциям, чтобы клонировать репозиторий, добавить свой ключ API OpenAI и начать суммировать выбранный контент.
Сколько времени занимает весь процесс?
Весь процесс, от настройки до генерации резюме, обычно занимает менее 10 минут.
Связанные вопросы
Могу ли я использовать другие языковые модели помимо OpenAI?
Да, приложение для резюмирования текста можно настроить для работы с другими языковыми моделями. Для этого необходимо обновить код, чтобы подключиться к API альтернативной модели, и адаптировать этапы обработки текста по мере необходимости. Имейте в виду, что разные модели могут иметь уникальные требования к вводу данных или особенности производительности.
Связанная статья
Генеральный директор DeepMind Хассабис: я сплю шесть часов в день, обычно чувствую прилив энергии около часа ночи.
В недавнем интервью журналу Fortune генеральный директор Google DeepMind Демис Хаассабис раскрыл свой нестандартный подход к отдыху и продуктивности. Хаассабис признался, что спит очень мало, распределяя свои бодрствующие часы на два отдельных рабочи
OpenAI и Anthropic борются за долю рынка, несмотря на снижение выручки
Несмотря на недавние сообщения о том, что OpenAI не достигла целевых показателей по выручке, что во вторник оказало давление на акции технологических компаний, частные инвесторы, вкладывающие средства
Соблюдение требований к автономным транспортным средствам в Калифорнии: новая эра штрафов, геозоны и 1 млн миль
Компания Guident эксплуатирует шаттл AuveTech в Южной Флориде, обслуживая маршрут протяженностью четыре мили в Вест-Палм-Бич и маршрут протяженностью одну милю в Бока-Ратоне с использованием своей тех
Рекомендации по связанным специальным темам
Комментарии (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? 😊
В современном быстро развивающемся цифровом мире умение быстро и эффективно сокращать объемные тексты является чрезвычайно ценным навыком. Это руководство поможет вам создать собственный инструмент для сокращения текстов с помощью современных технологий: OpenAI, Langchain и Streamlit. Независимо от того, являетесь ли вы разработчиком, студентом или бизнес-профессионалом, этот инструмент поможет вам оптимизировать свою работу и углубить понимание письменной информации.
Ключевые моменты
Разработайте приложение для резюмирования текста с помощью OpenAI, Langchain и Streamlit.
Используйте GPT 3.5 для эффективного обобщения с помощью языковой модели.
Используйте Streamlit для создания интуитивно понятного и доступного веб-интерфейса.
Используйте инструменты сообщества Langchain для улучшения рабочего процесса обобщения.
Узнайте, почему разделение текста на сегменты имеет важное значение для обработки моделей ИИ.
Разверните готовое приложение в Streamlit Community Cloud для удобного доступа и обмена.
Интегрируйте функцию автоматической очистки API-ключей после использования для повышения безопасности.
Разработка приложения для обобщения текста
Понимание технологического стека
Хорошее понимание технологического стека имеет решающее значение для создания эффективного приложения для резюмирования текста. Давайте рассмотрим каждый компонент подробнее:

- Streamlit: Streamlit служит основой для веб-интерфейса, предлагая простой, но гибкий способ создания интерактивных приложений на Python. Его удобные функции поддерживают быстрое прототипирование и развертывание.
- Langchain: Langchain — это фреймворк, который оптимизирует разработку приложений с использованием больших языковых моделей (LLM). Он включает в себя модули для работы с документами, разделения текста и выполнения резюмирования.
- OpenAI: OpenAI предоставляет LLM, а именно GPT 3.5, который оценивает и создает краткие резюме из предоставленного текста.
- Tiktoken: Tiktoken токенизирует текст для эффективного использования моделями OpenAI, разбивая его на более мелкие части, с которыми LLM может легко работать.
Интегрируя эти технологии, вы можете создать надежный и простой в использовании инструмент для резюмирования текста с минимальными затратами на кодирование.
Процесс резюмирования текста
Вот пошаговое описание процесса резюмирования текста:

- Ввод текста: пользователь вводит текст, который он хочет обобщить. Это может быть документ, статья или любой другой письменный контент.
- Разделение текста по символам: введенный текст сегментируется на более мелкие части с помощью Langchain's
CharacterTextSplitter. Это ключевой шаг для эффективного управления текстом. Большие объемы текста могут создавать нагрузку на модели ИИ, поэтому их разделение обеспечивает плавную обработку. - Разбиение на фрагменты: Разделитель текста разбивает входные данные на удобные фрагменты, сохраняя границы символов для поддержания контекста.
- Создание документа: каждый фрагмент текста преобразуется в объект Langchain
Document, который беспрепятственно работает с функциями обобщения Langchain. - Взаимодействие с LLM:
load_summarize_chainиспользует OpenAI LLM для создания краткого резюме каждого документа. Эта функция упрощает взаимодействие с языковой моделью. - Резюмированный текст: конечным результатом является сокращенная версия исходного текста, в которой ключевые детали сохранены в компактной форме. Возможности LLM используются для преобразования текста в краткое, но информативное резюме.
Почему разбиение на фрагменты важно для моделей ИИ?
Чанкинг является важным этапом, поскольку позволяет моделям ИИ обрабатывать информацию небольшими, более удобными для работы частями.

Этот метод снижает когнитивные и вычислительные требования к резюмированию текста. Модели ИИ работают более эффективно при обработке небольших, сфокусированных участков, что часто приводит к улучшению производительности и точности. Разбиение длинных текстов на легко усваиваемые части также помогает модели сохранить контекст и сосредоточиться на наиболее релевантной информации в каждом сегменте.
В следующей таблице объясняется необходимость разбиения текста для более точной обработки LLM:
Детали реализации кода
Импорт библиотек
Первым шагом в разработке приложения является импорт необходимых библиотек: Streamlit, Langchain, OpenAI и Tiktoken.

Синтаксис импорта следующий:
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
Создание функции generate_response
Ядром приложения является функция generate_response . Эта функция принимает входной текст пользователя и управляет процессом обобщения. Она инициализирует модель OpenAI, разделяет входные данные, создает объекты документа и вызывает load_summarize_chain для генерации окончательного резюме.

Вот код:
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
- Создание экземпляра LLM: Языковая модель OpenAI инициализируется с выбранной температурой и API-ключом пользователя. Температура влияет на уровень креативности вывода.
- Разделить текст: введенный текст делится на секции с помощью
CharacterTextSplitter. Это позволяет сохранить сегменты текста в размере, подходящем для модели. - Создание документов: каждый раздел текста преобразуется в объект
Document, стандартный тип ввода для Langchain. - Загрузка цепочки обобщения: функция
load_summarize_chainсоздает цепочку обобщения, которая настраивается на основе языковой модели и предпочтительного метода обобщения. - Запуск цепочки: цепочка обобщения выполняется с помощью метода
runметод, который обрабатывает документы и создает резюме. - Возврат результата: Резюмированный текст возвращается в качестве результата функции.
Создание веб-интерфейса Streamlit
Streamlit упрощает создание веб-интерфейса. Интерфейс включает в себя следующие компоненты:
- Настройка страницы для установки заголовка.
- Текстовое поле, в которое пользователи могут вводить текст для обобщения.
- Форма, которая безопасно принимает ключ API OpenAI пользователя.
- Кнопка отправки для запуска процесса обобщения.
- Область результатов, в которой отображается резюмированный вывод.
st.set_page_config(page_title="Приложение для резюмирования текста")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)")
Как использовать приложение для резюмирования текста
Пошаговое руководство по резюмированию текста
Использование приложения для резюмирования текста очень простое и состоит всего из нескольких шагов:
- Введите текст: скопируйте и вставьте текст, который хотите обобщить, в область ввода текста. Это может быть отрывок из книги, новостная статья или подробное электронное письмо.
- Введите ключ API OpenAI: введите свой ключ API OpenAI для аутентификации запросов к языковым моделям OpenAI.

В целях безопасности поле ввода автоматически очищает ключ API после обработки запроса.
- Отправьте: нажмите кнопку «Отправить», чтобы начать обобщение.
- Просмотр резюмированного текста: после завершения обработки приложение покажет четкое и лаконичное резюме вашего исходного текста.
Преимущества и недостатки
Плюсы
Упрощает чтение и усвоение информации.
Снижает умственное напряжение за счет предоставления сжатого содержания.
Ускоряет рабочие процессы благодаря быстрой суммированию.
Улучшает понимание сложных или длинных текстов.
Минусы
Требует наличия ключа API OpenAI и доступа к их услугам.
Возможные неточности или потеря мелких деталей при резюмировании.
Ограниченные возможности настройки модели обобщения.
Ключи API необходимо очищать после каждой сессии для обеспечения безопасности.
Часто задаваемые вопросы
Что такое резюмирование текста?
Резюмирование текста — это сокращение длинного текста с сохранением наиболее важной информации.
Почему фрагментация важна при суммировании текста?
Разбиение на фрагменты помогает моделям искусственного интеллекта более эффективно обрабатывать большие тексты, разбивая их на более мелкие, целенаправленные сегменты, что повышает точность и снижает нагрузку на систему.
Как ключ API повышает безопасность?
Удаление API-ключа после использования предотвращает хранение или неправомерное использование конфиденциальной информации для аутентификации.
Что я могу делать с репозиторием GitHub?
Следуйте предоставленным инструкциям, чтобы клонировать репозиторий, добавить свой ключ API OpenAI и начать суммировать выбранный контент.
Сколько времени занимает весь процесс?
Весь процесс, от настройки до генерации резюме, обычно занимает менее 10 минут.
Связанные вопросы
Могу ли я использовать другие языковые модели помимо OpenAI?
Да, приложение для резюмирования текста можно настроить для работы с другими языковыми моделями. Для этого необходимо обновить код, чтобы подключиться к API альтернативной модели, и адаптировать этапы обработки текста по мере необходимости. Имейте в виду, что разные модели могут иметь уникальные требования к вводу данных или особенности производительности.
Генеральный директор DeepMind Хассабис: я сплю шесть часов в день, обычно чувствую прилив энергии около часа ночи.
В недавнем интервью журналу Fortune генеральный директор Google DeepMind Демис Хаассабис раскрыл свой нестандартный подход к отдыху и продуктивности. Хаассабис признался, что спит очень мало, распределяя свои бодрствующие часы на два отдельных рабочи
OpenAI и Anthropic борются за долю рынка, несмотря на снижение выручки
Несмотря на недавние сообщения о том, что OpenAI не достигла целевых показателей по выручке, что во вторник оказало давление на акции технологических компаний, частные инвесторы, вкладывающие средства
この記事を読んで、自分でも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? 😊





Дом






