Ce référentiel fournit les documents pour l'article de blog conjoint Redis / Microsoft ici. Il contient un cahier Jupyter qui montre comment utiliser Redis comme base de données vectorielle pour stocker et récupérer des vecteurs de documents. Le cahier montre également comment utiliser Llamaindex pour effectuer la recherche sémantique pour la recherche de contexte dans des documents et fournir une expérience de type chatbot en utilisant OpenAI.
Le didacticiel LLM Document Chat est destiné à fonctionner sur un environnement de laboratoire Jupyter Dockise pour assurer une expérience idéale et un environnement python minimal. Au minimum, vous devrez installer Docker Desktop ( qui est livré avec Docker Compose ) pour exécuter cet exemple.
Le projet maintient un .env.template avec les variables suivantes prédéfinies:
# General OpenAI Env Vars
OPENAI_TEXT_MODEL=gpt-35-turbo
OPENAI_EMBEDDING_MODEL=text-embedding-ada-002
OPENAI_TEMPERATURE=0.7
OPENAI_MAX_TOKENS=50
# OpenAI Direct Env Vars
OPENAI_API_KEY= < your key here >
OPENAI_API_BASE=https://api.openai.com/v1/
# Azure OpenAI Env Vars
# OPENAI_API_VERSION=2023-05-15 # use OPENAI_API_VERSION only with Azure OpenAI
AZURE_EMBED_MODEL_DEPLOYMENT_NAME= < your deployment name here >
AZURE_TEXT_MODEL_DEPLOYMENT_NAME= < your deployment name here >
AZURE_OPENAI_API_BASE=https:// < your deployment name > .openai.azure.com/
# General Env Vars
CHUNK_SIZE=500
CHUNK_OVERLAP=0.2
# Redis Env Vars
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD= Faites une copie de ce fichier pour créer .env comme suit:
$ cp .env.template .envMettez à jour les parties du fichier Env en fonction de vos choix ci-dessous:
Remarque Si vous hébergez cet échantillon sur Azure, vous pouvez rapidement déployer Azure OpenAI et Azure Cache pour redis Enterprise Instance avec les bonnes configurations en exécutant les commandes suivantes:
az group create -n LLMDocChatRG -l eastus
az deployment group create --template-file infra b icep m ain.bicep -g LLMDocChatRGPour supprimer toutes les ressources Azure, supprimez simplement le groupe de ressources en utilisant:
az group delete -n LLMDocChatRG
Vous pouvez choisir entre Azure Openai Service (entièrement hébergé et géré par Azure) et Openai Direct.
Pour utiliser Azure Openai, vous devrez suivre ces instructions
.env ajoutant les valeurs spécifiques de vos déploiements. AZURE_EMBED_MODEL_DEPLOYMENT_NAME= < your deployment name here >
AZURE_TEXT_MODEL_DEPLOYMENT_NAME= < your deployment name here >
AZURE_OPENAI_API_BASE=https:// < your deployment name > .openai.azure.com/Pour utiliser Openai, vous devrez suivre ces instructions
.env ajoutant les valeurs spécifiques de vos déploiements. OPENAI_API_KEY= < your key here >Le didacticiel nécessitera l'utilisation des fonctionnalités de recherche et de requête redis, y compris la prise en charge de la recherche de similitude vectorielle. Il existe trois options pour exécuter Redis:
Pour chacun, les options suivantes sont requises et doivent être mises à jour dans votre fichier .env local:
REDIS_PASSWORD= < your password here >
REDIS_HOST= < your redis host address here >
REDIS_PORT= < your redis port here > Il existe des fichiers docker-compose.yml dans le répertoire docker qui aideront à faire tourner Reded-Stack localement et RedisInssight dans le cas où un redis à distance est utilisé (comme ACRE).
Pour ouvrir l'environnement de jupyter via Docker, suivez ces étapes:
Clone ce référentiel à votre machine locale.
Copiez le .env.template sur .env et configurez les valeurs comme indiqué ci-dessus.
Exécutez avec Docker Compose:
Pour Cloud ou Azure Redis Enterprise
docker compose -f docker/cloud/docker-compose.yml upPour la pile Redis locale (docker)
docker compose -f docker/local/docker-compose.yml up Ouvrez la session de laboratoire Jupyter dans votre navigateur à http://127.0.0.1:8888/lab?token={YOUR GENERATED TOKEN} . Vérifiez les journaux du terminal pour la chaîne de jeton.