Мы строим чат -бот, который может обобщить и рекомендовать блоги на веб -сайте Redis.com на основе пользовательского запроса.

Этот небольшой проект использует 2 модели ИИ
В этом проекте мы стремимся продемонстрировать
Самый простой способ - использовать изображение Docker, используя команду ниже
docker run -d -p 6379:6379 -p 8001:8001 redis/redis-stack:latestЕсли вы не хотите использовать изображение Docker, вы можете подписаться на бесплатную подписку Redis Cloud здесь.
Загрузите репозиторий
git clone https://github.com/mar1boroman/ask-redis-blogs.git && cd ask-redis-blogs
Подготовьте и активируйте виртуальную среду
python3 -m venv .env && source .env/bin/activate
Установите необходимые библиотеки и зависимости
pip install -r requirements.txt
У нас есть обширная база знаний в блоге Redis Letres Let Запустить первый сценарий, который является веб -мастером, этот скрипт соскребает веб -сайт и создаст файл CSV, содержащий данные всех доступных блогов.
python 0_ext_redis_blogs.pyОбратите внимание, что в этом репозитории уже есть блоги до 19 сентября 2023 года. Запуск этого сценария будет загружать только новые блоги. Файл CSV сохраняется по адресу redis_blogs.csv
На этом этапе мы генерируем внедрение для текстового содержания каждого блога и храним их в формате хэша
python 1_load_redis_blogs.pyВы можете изучить содержание вашей базы данных Redis в Redisinsight в вашем браузере по адресу http: // localhost: 8001
Теперь, когда мы сохранили блоги и их вставки в Редисе, пришло время увидеть чат -бот в действии!.
streamlit run 3_ui.py
Давайте запустим простой поиск сходства вектора по нашим блогам.

Убедитесь, что флажок «Автоматическое обобщение» не завершено
Введите подсказку. Например
Triggers and Functions
Вы получите 3 рекомендации блога в течение миллисекунды. Ответ также включает в себя время, необходимое для возврата ответа. В этом случае поиск происходит полностью в Redis, за исключением того, что подсказка выполняется через All-mpnet-base-v2 перед запуском поиска сходства
Давайте получим немного более продвинутым.

Убедитесь, что флажок «Auto Summarize» проверяется
Введите подсказку. Например
Triggers and Functions
Когда вы введете эту подсказку в первый раз, произойдут следующие вещи
Это занимает значительно много времени, около 30 с
Следовательно, мы храним ответ и подсказку в Redis. Проверьте свой RedisInsight в браузере, и вы увидите ключ, созданный с префиксом llm_cache
После того, как ответ он возвращается, приглашение и ответ кэшируются, и, что более важно, подсказка запускается через All-MPnet-Base-V2, и его соответствующее встраивание также кэшируется
Теперь попробуйте запустить ту же приглашение (или аналогичную подсказку еще раз). Например
About Triggers and functions
Вы получите кэшированный отклик на основе яростно быстрого поиска сходства с вектором между внедрением подсказок и ответом, который был кэширован на предыдущем этапе.
Мы можем четко увидеть преимущества использования семантического кэширования здесь
Версия чат -бота доступна в версии CLI
python 2_vecsim_redis_blogs.py