Этот проект представляет собой веб-приложение, которое принимает текстовые статьи в формате файла или 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, обеспечивает альтернативную генерацию диалогов.
-
Загрузка статьи: Загрузите текстовый файл (.txt или .pdf) или укажите URL статьи для преобразования в диалог.
-
Выбор модели: В боковой панели выберите модель генерации:
- ChatGPT API для взаимодействия с OpenAI ChatGPT.
- LLaMA API для использования серверной функции LLaMA.
-
Генерация диалога: Нажмите кнопку Создать диалог. Приложение проверит возможность генерации диалога и, если текст подходит, сгенерирует диалог.
-
Прослушивание и загрузка: Прослушайте сгенерированный диалог в аудиоформате или скачайте его для дальнейшего использования.
-
История диалогов: Используйте кнопку Показать историю диалогов для доступа к ранее созданным диалогам и аудиофайлам.
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