사용자 쿼리를 기반으로 redis.com 웹 사이트에서 블로그를 요약하고 추천 할 수있는 챗봇을 작성합니다.

이 작은 프로젝트는 2 개의 AI 모델을 사용합니다
이 프로젝트에서 우리는 시연을 목표로합니다
가장 쉬운 방법은 아래 명령을 사용하여 Docker 이미지를 사용하는 것입니다.
docker run -d -p 6379:6379 -p 8001:8001 redis/redis-stack:latestDocker 이미지를 사용하지 않으려면 여기에서 무료 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 블로그에 광범위한 지식 기반이 있습니다. Webscraper 인 첫 번째 스크립트를 실행할 수 있습니다.이 스크립트는 웹 사이트를 긁어 내고 사용 가능한 모든 블로그의 데이터가 포함 된 CSV 파일을 만듭니다.
python 0_ext_redis_blogs.py참고이 저장소에는 이미 블로그가 2023 년 9 월 19 일까지 업데이트 되었으며이 스크립트를 실행하면 새 블로그 만 다운로드됩니다. CSV 파일은 redis_blogs.csv에 저장됩니다
이 단계에서는 각 블로그의 텍스트 내용을 포함시켜 해시 형식으로 저장합니다.
python 1_load_redis_blogs.pyhttp : // localhost : 8001의 브라우저에서 redisinsight에서 Redis 데이터베이스의 내용을 탐색 할 수 있습니다.
이제 우리는 Redis에 블로그와 그들의 임베지를 저장 했으므로 챗봇이 실제로 볼 시간을 볼 시간입니다!.
streamlit run 3_ui.py
블로그를 통해 간단한 벡터 유사성 검색을 실행하겠습니다.

'자동 요약'확인란이 확인되지 않았는지 확인하십시오
프롬프트를 입력하십시오. 예를 들어
Triggers and Functions
밀리 초 이내에 3 개의 블로그 권장 사항이 제공됩니다. 응답에는 응답을 반환하는 데 걸리는 시간도 포함됩니다. 이 경우 유사성 검색을 실행하기 전에 프롬프트가 All-MPNet-Base-V2를 통해 실행된다는 점을 제외하고 검색은 Redis에서 전적으로 발생합니다.
조금 더 진보 할 수 있습니다.

'자동 요약'확인란이 확인되었는지 확인하십시오
프롬프트를 입력하십시오. 예를 들어
Triggers and Functions
이 프롬프트를 처음 입력하면 다음과 같은 일이 발생합니다.
이것은 약 30 초 정도의 시간이 걸립니다
따라서 응답과 프롬프트를 Redis에 저장합니다. 브라우저에서 redisinsight를 확인하면 접두사 LLM_CACHE 로 생성 된 키가 표시됩니다.
응답이 반환되면 프롬프트와 응답이 캐시되고 더 중요한 것은 프롬프트가 All-MPNet-Base-V2를 통해 실행되며 해당 임베딩도 캐시됩니다.
이제 동일한 프롬프트 (또는 유사한 프롬프트)를 실행해보십시오. 예를 들어
About Triggers and functions
Prompts Embedding과 이전 단계에서 캐시 된 응답 사이의 화려하게 빠른 벡터 유사성 검색을 기반으로 캐시 된 응답을 얻게됩니다.
우리는 여기에서 시맨틱 캐싱을 사용하는 이점을 명확하게 볼 수 있습니다.
챗봇의 버전은 CLI 버전으로 제공됩니다.
python 2_vecsim_redis_blogs.py