

Clone le référentiel:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptAvant de démarrer le service RAG-GPT, vous devez modifier les configurations connexes pour que le programme s'initialise correctement.
cp env_of_openai .envLes variables de .env
LLM_NAME= " OpenAI "
OPENAI_API_KEY= " xxxx "
GPT_MODEL_NAME= " gpt-4o-mini "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "
USE_GPT4O=0LLM_NAMEOPENAI_API_KEY avec votre propre clé. Veuillez vous connecter au site Web OpenAI pour afficher votre clé API.GPT_MODEL_NAME , en remplaçant gpt-4o-mini par gpt-4-turbo ou gpt-4o si vous souhaitez utiliser GPT-4.BOT_TOPIC pour refléter le nom de votre bot. Ceci est très important, car il sera utilisé dans Prompt Construction . Veuillez essayer d'utiliser un mot concis et clair, comme OpenIM , LangChain .URL_PREFIX pour correspondre au domaine de votre site Web. Il s'agit principalement de générer des liens d'URL accessibles pour les fichiers locaux téléchargés. Comme http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE sur 1 si vous souhaitez utiliser LlamaParse .LLAMA_CLOUD_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Llamacloud pour afficher votre clé API.USE_GPT4O sur 1 si vous souhaitez utiliser le mode GPT-4o .server/constant . Si vous ne pouvez pas utiliser les services API d'Openai, envisagez d'utiliser Zhipuai comme alternative.
cp env_of_zhipuai .envLes variables de .env
LLM_NAME= " ZhipuAI "
ZHIPUAI_API_KEY= " xxxx "
GLM_MODEL_NAME= " glm-4-air "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Zhipuai pour afficher votre clé API.GLM_MODEL_NAME , la liste des modèles est ['glm-3-turbo', 'glm-4', 'glm-4-0520', 'glm-4-air', 'glm-4-airx', 'glm-4-flash'] .BOT_TOPIC pour refléter le nom de votre bot. Ceci est très important, car il sera utilisé dans Prompt Construction . Veuillez essayer d'utiliser un mot concis et clair, comme OpenIM , LangChain .URL_PREFIX pour correspondre au domaine de votre site Web. Il s'agit principalement de générer des liens d'URL accessibles pour les fichiers locaux téléchargés. Comme http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE sur 1 si vous souhaitez utiliser LlamaParse .LLAMA_CLOUD_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Llamacloud pour afficher votre clé API.server/constant . Si vous ne pouvez pas utiliser les services API d'Openai, envisagez d'utiliser Deepseek comme alternative.
Note
Deepseek ne fournit pas une Embedding API , nous utilisons donc ici Embedding API de Zhipuai.
cp env_of_deepseek .envLes variables de .env
LLM_NAME= " DeepSeek "
ZHIPUAI_API_KEY= " xxxx "
DEEPSEEK_API_KEY= " xxxx "
DEEPSEEK_MODEL_NAME= " deepseek-chat "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Zhipuai pour afficher votre clé API.DEEPKSEEK_API_KEY avec votre propre clé. Veuillez vous connecter au site Web Deepseek pour afficher votre clé API.DEEPSEEK_MODEL_NAME si vous souhaitez utiliser d'autres modèles de Deepseek.BOT_TOPIC pour refléter le nom de votre bot. Ceci est très important, car il sera utilisé dans Prompt Construction . Veuillez essayer d'utiliser un mot concis et clair, comme OpenIM , LangChain .URL_PREFIX pour correspondre au domaine de votre site Web. Il s'agit principalement de générer des liens d'URL accessibles pour les fichiers locaux téléchargés. Comme http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE sur 1 si vous souhaitez utiliser LlamaParse .LLAMA_CLOUD_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Llamacloud pour afficher votre clé API.server/constant . Si vous ne pouvez pas utiliser les services API d'Openai, envisagez d'utiliser Moonshot comme alternative.
Note
Moonshot ne fournit pas une Embedding API , nous utilisons donc ici Embedding API de Zhipuai.
cp env_of_moonshot .envLes variables de .env
LLM_NAME= " Moonshot "
ZHIPUAI_API_KEY= " xxxx "
MOONSHOT_API_KEY= " xxxx "
MOONSHOT_MODEL_NAME= " moonshot-v1-8k "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Zhipuai pour afficher votre clé API.MOONSHOT_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Moonshot pour afficher votre clé API.MOONSHOT_MODEL_NAME si vous souhaitez utiliser d'autres modèles de Moonshot.BOT_TOPIC pour refléter le nom de votre bot. Ceci est très important, car il sera utilisé dans Prompt Construction . Veuillez essayer d'utiliser un mot concis et clair, comme OpenIM , LangChain .URL_PREFIX pour correspondre au domaine de votre site Web. Il s'agit principalement de générer des liens d'URL accessibles pour les fichiers locaux téléchargés. Comme http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE sur 1 si vous souhaitez utiliser LlamaParse .LLAMA_CLOUD_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Llamacloud pour afficher votre clé API.server/constant . Si votre base de connaissances implique des informations sensibles et que vous préférez ne pas utiliser les LLM basées sur le cloud, envisagez d'utiliser Ollama pour déployer de grands modèles localement.
Note
Tout d'abord, reportez-vous à Ollama pour installer Olllama et téléchargez le modèle d'intégration mxbai-embed-large et le modèle LLM tel que llama3 .
cp env_of_ollama .envLes variables de .env
LLM_NAME= " Ollama "
OLLAMA_MODEL_NAME= " xxxx "
OLLAMA_BASE_URL= " http://127.0.0.1:11434 "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEOLLAMA_MODEL_NAME , sélectionnez un modèle approprié dans la bibliothèque OLLAMA.IP:PORT par défaut lors du démarrage Ollama , veuillez mettre à jour OLLAMA_BASE_URL . Veuillez porter une attention particulière, entrez uniquement l'IP (domaine) et le port ici, sans ajouter un URI.BOT_TOPIC pour refléter le nom de votre bot. Ceci est très important, car il sera utilisé dans Prompt Construction . Veuillez essayer d'utiliser un mot concis et clair, comme OpenIM , LangChain .URL_PREFIX pour correspondre au domaine de votre site Web. Il s'agit principalement de générer des liens d'URL accessibles pour les fichiers locaux téléchargés. Comme http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE sur 1 si vous souhaitez utiliser LlamaParse .LLAMA_CLOUD_API_KEY avec votre propre clé. Veuillez vous connecter au site Web de Llamacloud pour afficher votre clé API.server/constant .Note
Lors du déploiement avec Docker, portez une attention particulière à l'hôte d' URL_PREFIX dans le fichier .env . Si vous utilisez Ollama , portez également une attention particulière à l'hôte d' Olllama_Base_Url dans le fichier .env . Ils doivent utiliser l'adresse IP réelle de la machine hôte.
docker-compose up --buildNote
Veuillez utiliser Python version 3.10.x ou supérieur.
Il est recommandé d'installer des dépendances liées à Python dans un environnement virtuel Python afin d'éviter d'affecter les dépendances d'autres projets.
Si vous n'avez pas encore créé un environnement virtuel, vous pouvez en créer un avec la commande suivante:
python3 -m venv myenvAprès la création, activez l'environnement virtuel:
source myenv/bin/activate Une fois l'environnement virtuel activé, vous pouvez utiliser pip pour installer les dépendances requises.
pip install -r requirements.txtLe service RAG-GPT utilise SQLite comme DB de stockage. Avant de démarrer le service RAG-GPT, vous devez exécuter la commande suivante pour initialiser la base de données et ajouter la configuration par défaut pour la console d'administration.
python3 create_sqlite_db.pySi vous avez terminé les étapes ci-dessus, vous pouvez essayer de démarrer le service Rag-GPT en exécutant la commande suivante.
python3 rag_gpt_app.pysh start.shNote
7000 . Au cours du premier test, essayez de ne pas modifier le port afin que vous puissiez rapidement découvrir l'intégralité du processus produit.start.sh en mode multi-processus pour une expérience utilisateur plus fluide. Accédez à la console d'administration via le lien http://your-server-ip:7000/open-kf-admin/ pour atteindre la page de connexion. Le nom d'utilisateur et le mot de passe par défaut sont admin et open_kf_AIGC@2024 (peuvent être vérifiés dans create_sqlite_db.py ).

Après avoir enregistré avec succès, vous pourrez voir la page de configuration de la console d'administration.

Sur la page http://your-server-ip:7000/open-kf-admin/#/ , vous pouvez définir les configurations suivantes:
gpt-3.5-turbo est disponible, qui sera progressivement élargie. Après avoir soumis l'URL du site Web, une fois que le serveur a récupéré la liste de toutes les URL de la page Web via la rampe, vous pouvez sélectionner les URL de la page Web dont vous avez besoin comme base de connaissances (toutes sélectionnées par défaut). L' Status initial est Recorded .

Vous pouvez actualiser activement la page http://your-server-ip:7000/open-kf-admin/#/source dans votre navigateur pour faire progresser le traitement de l'URL de la page Web. Une fois le contenu de l'URL de la page Web, et le calcul et le stockage d'intégration sont terminés, vous pouvez voir la Size correspondante de la console d'administration et que le Status sera également mis à jour pour Trained .

Cliquer sur l'URL d'une page Web révèle le nombre de sous-pages que la page Web est divisée et la taille du texte de chaque sous-page.

Cliquer sur une sous-page vous permet d'afficher son contenu en texte intégral. Cela sera très utile pour vérifier les effets pendant le processus de test d'expérience.

Collectez les URL des pages Web requises. Vous pouvez soumettre jusqu'à 10 URL de page Web à la fois, et ces pages peuvent provenir de différents domaines.

Téléchargez les fichiers locaux requis. Vous pouvez télécharger jusqu'à 10 fichiers à la fois et chaque fichier ne peut pas dépasser 30MB Les types de fichiers suivants sont actuellement pris en charge: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] .

Après avoir importé des données sur le site Web dans la console d'administration, vous pouvez découvrir le service Chatbot via le lien http://your-server-ip:7000/open-kf-chatbot/ .

Grâce au lien de la console d'administration http://your-server-ip:7000/open-kf-admin/#/embed , vous pouvez voir le didacticiel détaillé pour configurer l'IFRAME dans votre site Web.


Grâce à la liaison de la console d'administration http://your-server-ip:7000/open-kf-admin/#/dashboard , vous pouvez afficher les enregistrements de demande historiques de tous les utilisateurs dans une plage de temps spécifiée.

Le service RAG-GPT intègre 2 modules Frontend, et leurs informations de code source sont les suivantes:
Référentiel de code
Une interface d'administration Web intuitive pour le service QA intelligent, offrant un contrôle complet sur le contenu, la configuration et les interactions utilisateur. Permet la gestion sans effort de la base de connaissances, la surveillance en temps réel des requêtes et les commentaires et l'amélioration continue basée sur les informations des utilisateurs.
Référentiel de code
Une interface HTML5 pour le service QA intelligent conçu pour une intégration facile dans les sites Web via IFRAME, offrant aux utilisateurs un accès direct à une base de connaissances sur mesure sans quitter le site, améliorer la fonctionnalité et résolution immédiate des requêtes.