Колледж Q & A Chatbot
Этот проект представляет собой чат-бот вопросов и ответов, предназначенный для ответа на вопросы, связанные с Глобальной технологической академией (GAT) с использованием комбинации крупных языковых моделей (LLMS), текстовых эмбеддингов, поколения-поискового поколения (RAG) и быстрого инженерного метода. Чатбот может обрабатывать как текстовые, так и аудио входные данные, предоставляя соответствующие ответы на основе истории разговора и предварительно загруженных документов.
Функции
- Текст и аудио ввод : принимает пользовательские запросы с помощью текстового ввода или голосовой записи.
- Полученное поколение (RAG) : улучшает ответы с использованием соответствующей информации, полученной из предварительно загруженных документов.
- Ответы с контекстом : использует историю разговоров для предоставления последовательных и контекстуально подходящих ответов.
- Интерфейс Streamlit : удобный интерфейс, построенный с Streatlit, с параметрами для последующего режима и настройки глубины поиска.
Установка
Клонировать репозиторий
git clone https://github.com/mahadev0811/CollegeChatbot.git
cd CollegeChatbot
Создать виртуальную среду
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`
Установить зависимости
pip install -r requirements.txt
Настройте ключ API
- Создайте файл
config.json в корневом каталоге с вашим ключом Google API:
{
"google_api_key" : " YOUR_GOOGLE_API_KEY "
}
Использование
Запустите приложение
Взаимодействовать с чат -ботом
- Используйте окно ввода текста или Audio Recorder, чтобы отправить ваши запросы.
- Регулируйте настройки, используя параметры боковой панели:
- Режим последующих вопросов : перевернуть, чтобы использовать историю разговоров для ответов.
- Глубина поиска : отрегулируйте количество абзацев для поиска в документах для соответствующей информации.
Структура проекта
- st_app.py : основной сценарий приложения.
- embedding_generator.py : скрипт для генерации внедрений из файла данных.
- webscrapper.ipynb : Notebook Jupyter для соскоба текстовых данных из URL -адресов для генерации необработанного файла данных.
- config.json : файл конфигурации для клавиш API.
- Требования.txt : Список необходимых пакетов Python.
- data_generation/gat_raw.txt : необработанные данные, содержащие информацию о GAT.
- data_generation/GAT_REFINED.TXT : SUPERVIND и отредактированная версия необработанных данных.
- gat_embeddings.pkl : предварительно вычисленные встраивания для предварительно загруженного документа.
Генерирование данных
Чтобы сгенерировать начальный файл необработанных данных ( gat_raw.txt ), используйте ноутбук webscrapper.ipynb . Этот ноутбук сочетает текстовый содержимое из заданных URL -адресов и форматирует его соответствующим образом.
Генерируя вторжения
Чтобы сгенерировать вставки из вашего файла данных, используйте сценарий embedding_generator.py . Этот скрипт считывает текстовый файл, содержащий данные, генерирует встроения с использованием модели флагмбеддинга и сохраняет вставки в качестве файла рассола.
Запуск генератора встраивания
Подготовьте свой файл данных
- Убедитесь, что ваш файл данных (например, data_generation/gat_refined.txt) находится в правильном формате, с параграфами, разделенными двойными новыми линиями ( n n).
Запустите сценарий
Запустите сценарий encedding_generator.py с помощью пути к файлу данных в качестве аргумента:
python embedding_generator.py --data_file data_generation/gat_refined.txt
Сценарий будет генерировать вставки для параграфов в файле данных и сохранить их в виде файла маринованного марионета ( gat_embeddings.pkl ).
Скриншоты
- Это видео показывает чат -бот в действии, отвечая на вопросы о Gat:
записи.mp4
Кредиты
- Флагмбеддинг: пользовательская модель встраивания, используемая для кодирования запросов.
- Streamlit: Framework App с открытым исходным кодом для ML и Data Science Projects.
- Обнимание трансформаторов лица: библиотека для современных моделей НЛП.
- Google Cloud API речи к тексту: служба для преобразования речи в текст.
- Google Generative AI: используется для генерации ответов.
Лицензия
Этот проект лицензирован по лицензии MIT - для получения подробной информации см. Файл лицензии.