

Klonen Sie das Repository:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptBevor Sie mit dem Rag-GPT-Dienst beginnen, müssen Sie die zugehörigen Konfigurationen für das Programm ändern, um korrekt zu initialisieren.
cp env_of_openai .envDie Variablen in .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 mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der OpenAI -Website an, um Ihren API -Schlüssel anzuzeigen.GPT_MODEL_NAME und ersetzen Sie gpt-4o-mini durch gpt-4-turbo oder gpt-4o wenn Sie GPT-4 verwenden möchten.BOT_TOPIC , um den Namen Ihres Bots widerzuspiegeln. Dies ist sehr wichtig, da es für Prompt Construction verwendet wird. Bitte versuchen Sie, ein prägnantes und klares Wort wie OpenIM , LangChain zu verwenden.URL_PREFIX an die Domain Ihrer Website an. Dies dient hauptsächlich zum Generieren von zugänglichen URL -Links für hochgeladene lokale Dateien. Wie http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE auf 1, wenn Sie LlamaParse verwenden möchten.LLAMA_CLOUD_API_KEY mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Lamacloud -Website an, um Ihren API -Schlüssel anzuzeigen.USE_GPT4O auf 1, wenn Sie GPT-4o Modus verwenden möchten.server/constant -Verzeichnis. Wenn Sie die API -Dienste von OpenAI nicht nutzen können, sollten Sie Zhipuai als Alternative verwenden.
cp env_of_zhipuai .envDie Variablen in .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 mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Zhipuai -Website an, um Ihren API -Schlüssel anzuzeigen.GLM_MODEL_NAME , die Modellliste lautet ['glm-3-turbo', 'glm-4', 'glm-4-0520', 'glm-4-air', 'glm-4-airx', 'glm-4-flash'] .BOT_TOPIC , um den Namen Ihres Bots widerzuspiegeln. Dies ist sehr wichtig, da es für Prompt Construction verwendet wird. Bitte versuchen Sie, ein prägnantes und klares Wort wie OpenIM , LangChain zu verwenden.URL_PREFIX an die Domain Ihrer Website an. Dies dient hauptsächlich zum Generieren von zugänglichen URL -Links für hochgeladene lokale Dateien. Wie http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE auf 1, wenn Sie LlamaParse verwenden möchten.LLAMA_CLOUD_API_KEY mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Lamacloud -Website an, um Ihren API -Schlüssel anzuzeigen.server/constant -Verzeichnis. Wenn Sie die API -Dienste von OpenAI nicht nutzen können, sollten Sie Deepseek als Alternative verwenden.
Notiz
Deepseek stellt keine Embedding API an, daher verwenden wir hier Zhipuais Embedding API .
cp env_of_deepseek .envDie Variablen in .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 mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Zhipuai -Website an, um Ihren API -Schlüssel anzuzeigen.DEEPKSEEK_API_KEY mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Deepseek -Website an, um Ihren API -Schlüssel anzuzeigen.DEEPSEEK_MODEL_NAME , wenn Sie andere Modelle von Deepseek verwenden möchten.BOT_TOPIC , um den Namen Ihres Bots widerzuspiegeln. Dies ist sehr wichtig, da es für Prompt Construction verwendet wird. Bitte versuchen Sie, ein prägnantes und klares Wort wie OpenIM , LangChain zu verwenden.URL_PREFIX an die Domain Ihrer Website an. Dies dient hauptsächlich zum Generieren von zugänglichen URL -Links für hochgeladene lokale Dateien. Wie http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE auf 1, wenn Sie LlamaParse verwenden möchten.LLAMA_CLOUD_API_KEY mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Lamacloud -Website an, um Ihren API -Schlüssel anzuzeigen.server/constant -Verzeichnis. Wenn Sie die API -Dienste von OpenAI nicht nutzen können, sollten Sie Moonshot als Alternative verwenden.
Notiz
Moonshot liefert keine Embedding API , daher verwenden wir hier Zhipuais Embedding API .
cp env_of_moonshot .envDie Variablen in .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 mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Zhipuai -Website an, um Ihren API -Schlüssel anzuzeigen.MOONSHOT_API_KEY mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Moonshot -Website an, um Ihren API -Schlüssel anzuzeigen.MOONSHOT_MODEL_NAME , wenn Sie andere Modelle von Moonshot verwenden möchten.BOT_TOPIC , um den Namen Ihres Bots widerzuspiegeln. Dies ist sehr wichtig, da es für Prompt Construction verwendet wird. Bitte versuchen Sie, ein prägnantes und klares Wort wie OpenIM , LangChain zu verwenden.URL_PREFIX an die Domain Ihrer Website an. Dies dient hauptsächlich zum Generieren von zugänglichen URL -Links für hochgeladene lokale Dateien. Wie http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE auf 1, wenn Sie LlamaParse verwenden möchten.LLAMA_CLOUD_API_KEY mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Lamacloud -Website an, um Ihren API -Schlüssel anzuzeigen.server/constant -Verzeichnis. Wenn Ihre Wissensbasis vertrauliche Informationen beinhaltet und Sie es vorziehen, Cloud-basierte LLMs nicht zu verwenden, sollten Sie Ollama verwenden, um große Modelle lokal bereitzustellen.
Notiz
Beziehen Sie sich zunächst in Ollama, um Ollama zu installieren und das Einbettungsmodell mxbai-embed-large und das LLM-Modell wie llama3 herunterzuladen.
cp env_of_ollama .envDie Variablen in .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 und wählen Sie ein geeignetes Modell aus der Ollama -Bibliothek.Ollama die Standard IP:PORT geändert haben, aktualisieren Sie OLLAMA_BASE_URL . Bitte achten Sie besondere Aufmerksamkeit, geben Sie nur die IP (Domain) und den Port hier ein, ohne einen URI anzuhängen.BOT_TOPIC , um den Namen Ihres Bots widerzuspiegeln. Dies ist sehr wichtig, da es für Prompt Construction verwendet wird. Bitte versuchen Sie, ein prägnantes und klares Wort wie OpenIM , LangChain zu verwenden.URL_PREFIX an die Domain Ihrer Website an. Dies dient hauptsächlich zum Generieren von zugänglichen URL -Links für hochgeladene lokale Dateien. Wie http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE auf 1, wenn Sie LlamaParse verwenden möchten.LLAMA_CLOUD_API_KEY mit Ihrem eigenen Schlüssel. Bitte melden Sie sich auf der Lamacloud -Website an, um Ihren API -Schlüssel anzuzeigen.server/constant -Verzeichnis.Notiz
Achten Sie beim Bereitstellen mit Docker besondere Aufmerksamkeit auf den Host von url_prefix in der .env -Datei. Wenn Sie Ollama verwenden, achten Sie auch besondere Aufmerksamkeit auf den Host von ollama_base_url in der .env -Datei. Sie müssen die tatsächliche IP -Adresse des Host -Computers verwenden.
docker-compose up --buildNotiz
Bitte verwenden Sie die Python -Version 3.10.x oder höher.
Es wird empfohlen, pythonbezogene Abhängigkeiten in einer virtuellen Python-Umgebung zu installieren, um zu vermeiden, dass sich die Abhängigkeiten anderer Projekte auswirken.
Wenn Sie noch keine virtuelle Umgebung erstellt haben, können Sie eine mit dem folgenden Befehl erstellen:
python3 -m venv myenvAktivieren Sie nach der Erstellung die virtuelle Umgebung:
source myenv/bin/activate Sobald die virtuelle Umgebung aktiviert ist, können Sie pip verwenden, um die erforderlichen Abhängigkeiten zu installieren.
pip install -r requirements.txtDer Rag-GPT-Dienst verwendet SQLite als Speicher-DB. Bevor Sie mit dem Rag-GPT-Dienst beginnen, müssen Sie den folgenden Befehl ausführen, um die Datenbank zu initialisieren und die Standardkonfiguration für die Administratorkonsole hinzuzufügen.
python3 create_sqlite_db.pyWenn Sie die obigen Schritte ausgeführt haben, können Sie versuchen, den Rag-GPT-Dienst zu starten, indem Sie den folgenden Befehl ausführen.
python3 rag_gpt_app.pysh start.shNotiz
7000 . Bitte versuchen Sie während des ersten Tests, den Port nicht zu ändern, damit Sie den gesamten Produktprozess schnell erleben können.start.sh im Mehrprozess-Modus für eine reibungslosere Benutzererfahrung zu starten. Greifen Sie über den Link http://your-server-ip:7000/open-kf-admin/ die Admin-Konsole zu. Der Standard -Benutzername und das Passwort sind admin und open_kf_AIGC@2024 (können in create_sqlite_db.py überprüft werden).

Nach erfolgreichem Anmeldung können Sie die Konfigurationsseite der Administratorkonsole sehen.

Auf der Seite http://your-server-ip:7000/open-kf-admin/#/ können Sie die folgenden Konfigurationen festlegen:
gpt-3.5-turbo verfügbar, die allmählich erweitert wird. Nach der Übermittlung der Website -URL können Sie nach dem Crawling die Liste aller Webseiten -URLs abgerufen, sodass Sie die Webseiten -URLs auswählen können, die Sie als Wissensbasis benötigen (alle standardmäßig ausgewählt). Der anfängliche Status wird Recorded .

Sie können die Seite in Ihrem Browser aktiv die Seite http://your-server-ip:7000/open-kf-admin/#/source in Ihrem Browser aktualisieren, um den Fortschritt der URL-Verarbeitung von Webseiten zu erzielen. Nachdem der Inhalt der Webseiten -URL gekrabbelt wurde und die Einbettungsberechnung und -speicher abgeschlossen sind, können Sie die entsprechende Size in der Administratorkonsole sehen, und der Status wird auch auf Trained aktualisiert.

Wenn Sie auf die URL einer Webseite klicken, wird angezeigt, in wie viele Unterseite die Webseite unterteilt ist, und in welcher Textgröße jeder Unterseite.

Wenn Sie auf eine Unterseite klicken, können Sie den vollständigen Textinhalt anzeigen. Dies ist sehr hilfreich, um die Auswirkungen während des Erlebnistestprozesses zu überprüfen.

Sammeln Sie die URLs der erforderlichen Webseiten. Sie können bis zu 10 Webseiten -URLs gleichzeitig einreichen, und diese Seiten können aus verschiedenen Domänen stammen.

Laden Sie die erforderlichen lokalen Dateien hoch. Sie können bis zu 10 Dateien gleichzeitig hochladen, und jede Datei darf 30MB nicht überschreiten. Die folgenden Dateitypen werden derzeit unterstützt: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] .

Nach dem Importieren von Website-Daten in der Administratorkonsole können Sie den Chatbot-Dienst über den Link http://your-server-ip:7000/open-kf-chatbot/ erleben.

Über den Link Admin Console-Link http://your-server-ip:7000/open-kf-admin/#/embed sehen das detaillierte Tutorial zum Konfigurieren des IFrame auf Ihrer Website.


Über den Link Admin Console Link http://your-server-ip:7000/open-kf-admin/#/dashboard können Sie die historischen Anforderungsdatensätze aller Benutzer in einem bestimmten Zeitbereich anzeigen.

Der RAG-GPT-Service integriert 2 Frontend-Module, und ihre Quellcodeinformationen sind wie folgt:
Code -Repository
Eine intuitive webbasierte Administratoroberfläche für Smart-QA-Dienst, die umfassende Kontrolle über Inhalt, Konfiguration und Benutzerinteraktionen bietet. Ermöglicht die mühelose Verwaltung der Wissensbasis, die Überwachung von Abfragen und Feedbacks in Echtzeit sowie die kontinuierliche Verbesserung basierend auf Benutzereinsichten.
Code -Repository
Eine HTML5 -Schnittstelle für den Smart -QA -Dienst, die für eine einfache Integration in Websites über Iframe entwickelt wurden, wodurch Benutzer direkten Zugriff auf eine maßgeschneiderte Wissensbasis ermöglicht werden, ohne die Website zu verlassen, die Funktionalität zu verbessern und eine sofortige Auflösung von Abfragen zu erhalten.