Skip to content

trizyx/Article_to_Dialogue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Генерация диалогов на основе статей

Описание проекта

Screenshot 2024-10-27 at 13 04 55

Этот проект представляет собой веб-приложение, которое принимает текстовые статьи в формате файла или URL и преобразует их в диалог между отцом и дочерью. Диалоги созданы так, чтобы объяснять сложные темы подросткам понятным и доступным языком. В приложении можно прослушивать диалоги в аудиоформате и скачивать их.

Функциональные возможности

  • Загрузка файла (.txt или .pdf) или ввод URL: Пользователь может загрузить текстовый файл или ввести URL статьи.
  • Проверка возможности генерации диалога: Прежде чем генерировать диалог, статья проходит проверку, которая сообщает, можно ли ее представить в виде диалога.
  • Выбор модели для генерации диалога:
    • ChatGPT API: Генерация диалога с использованием OpenAI ChatGPT API.
    • LLaMA API: Альтернативный вариант генерации диалога с использованием LLaMA API через серверную функцию create_dialog_llama.
  • Генерация диалога: Диалог создается с учётом структуры и содержания статьи.
  • Синтез речи: Диалог может быть преобразован в аудиоформат (WAV), доступный для прослушивания и скачивания.
  • История диалогов: Сохранение истории сгенерированных диалогов для дальнейшего доступа.

Установка и запуск

Требования

  • Python 3.7+
  • Библиотеки, указанные в requirements.txt

Установка зависимостей

Установите необходимые библиотеки с помощью pip:

pip install -r requirements.txt

Переменные окружения

Для работы проекта необходимо установить следующие переменные окружения:

  • OPENAI_API_KEY: ключ для доступа к ChatGPT API.
  • AUTH_TOKEN: токен для синтеза речи.

Установите эти переменные с помощью команд в терминале:

export OPENAI_API_KEY="your_openai_key"
export AUTH_TOKEN="your_auth_token"

В Windows PowerShell:

$Env:OPENAI_API_KEY = "your_openai_key"
$Env:AUTH_TOKEN = "your_auth_token"

Запуск приложения

Чтобы запустить приложение, используйте команду Streamlit:

streamlit run app.py

После этого приложение будет доступно в браузере по умолчанию по адресу http://localhost:8501.

Структура файлов проекта

  • app.py: Основной файл приложения Streamlit, содержащий пользовательский интерфейс и логику для генерации диалогов и синтеза речи.
  • gpt_api.py: Модуль для работы с ChatGPT API, содержит функции для генерации диалога и проверки текста.
  • parser.py: Модуль для обработки загружаемых файлов и извлечения текста из PDF и URL.
  • voice_api.py: Модуль для синтеза речи, создает аудиофайлы на основе текста.
  • llama.py: Модуль для взаимодействия с LLaMA, обеспечивает альтернативную генерацию диалогов.

Использование

  1. Загрузка статьи: Загрузите текстовый файл (.txt или .pdf) или укажите URL статьи для преобразования в диалог.

  2. Выбор модели: В боковой панели выберите модель генерации:

    • ChatGPT API для взаимодействия с OpenAI ChatGPT.
    • LLaMA API для использования серверной функции LLaMA.
  3. Генерация диалога: Нажмите кнопку Создать диалог. Приложение проверит возможность генерации диалога и, если текст подходит, сгенерирует диалог.

  4. Прослушивание и загрузка: Прослушайте сгенерированный диалог в аудиоформате или скачайте его для дальнейшего использования.

  5. История диалогов: Используйте кнопку Показать историю диалогов для доступа к ранее созданным диалогам и аудиофайлам.

Основные компоненты и функции

check_article: Проверяет текст статьи и сообщает, можно ли представить его в виде диалога.

create_dialog_gtp04mini и create_ssml_gpt04mini: Генерируют текст диалога и формат для синтеза речи.

create_dialog_llama: Взаимодействует с LLaMA для получения альтернативного диалога.

voice_synth: Генерирует аудиофайл (WAV) на основе текста.

Примечания

Валидация входных данных: Приложение выводит предупреждение, если файл или URL не указаны или не корректны.

Токены и лимиты

Проверьте, что у вас достаточно токенов и лимитов на аккаунте OpenAI для использования ChatGPT API. Убедитесь в правильной работе LLaMA API, если используется альтернативный сервер.

Авторы

Архипов Владимир (@V_arkh или [email protected]) - parser, streamlit and GPT API

Линьков Вадим - voice optimization and design

Щерба Матвей - Fast API and llama

Кирилл Клем - llama and research

Полина - llama, research and design