

Clon el repositorio:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptAntes de comenzar el servicio RAG-GPT, debe modificar las configuraciones relacionadas para que el programa se inicialice correctamente.
cp env_of_openai .envLas variables en .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 con su propia clave. Inicie sesión en el sitio web de OpenAI para ver su clave API.GPT_MODEL_NAME , reemplazando gpt-4o-mini con gpt-4-turbo o gpt-4o si desea usar GPT-4.BOT_TOPIC para reflejar el nombre de su bot. Esto es muy importante, ya que se utilizará en Prompt Construction . Intente usar una palabra concisa y clara, como OpenIM , LangChain .URL_PREFIX para que coincida con el dominio de su sitio web. Esto es principalmente para generar enlaces de URL accesibles para archivos locales cargados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE en 1 si desea usar LlamaParse .LLAMA_CLOUD_API_KEY con su propia clave. Inicie sesión en el sitio web de Llamacloud para ver su clave API.USE_GPT4O a 1 si desea usar el modo GPT-4o .server/constant . Si no puede usar los servicios API de OpenAI, considere usar Zhipuai como alternativa.
cp env_of_zhipuai .envLas variables en .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 con su propia clave. Inicie sesión en el sitio web de Zhipuai para ver su clave API.GLM_MODEL_NAME , la lista de modelos es ['glm-3-turbo', 'glm-4', 'glm-4-0520', 'glm-4-air', 'glm-4-airx', 'glm-4-flash'] .BOT_TOPIC para reflejar el nombre de su bot. Esto es muy importante, ya que se utilizará en Prompt Construction . Intente usar una palabra concisa y clara, como OpenIM , LangChain .URL_PREFIX para que coincida con el dominio de su sitio web. Esto es principalmente para generar enlaces de URL accesibles para archivos locales cargados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE en 1 si desea usar LlamaParse .LLAMA_CLOUD_API_KEY con su propia clave. Inicie sesión en el sitio web de Llamacloud para ver su clave API.server/constant . Si no puede usar los servicios API de OpenAI, considere usar Deepseek como alternativa.
Nota
Deepseek no proporciona una Embedding API , por lo que aquí utilizamos Embedding API de Zhipuai.
cp env_of_deepseek .envLas variables en .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 con su propia clave. Inicie sesión en el sitio web de Zhipuai para ver su clave API.DEEPKSEEK_API_KEY con su propia clave. Inicie sesión en el sitio web de Deepseek para ver su clave API.DEEPSEEK_MODEL_NAME si desea usar otros modelos de Deepseek.BOT_TOPIC para reflejar el nombre de su bot. Esto es muy importante, ya que se utilizará en Prompt Construction . Intente usar una palabra concisa y clara, como OpenIM , LangChain .URL_PREFIX para que coincida con el dominio de su sitio web. Esto es principalmente para generar enlaces de URL accesibles para archivos locales cargados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE en 1 si desea usar LlamaParse .LLAMA_CLOUD_API_KEY con su propia clave. Inicie sesión en el sitio web de Llamacloud para ver su clave API.server/constant . Si no puede usar los servicios API de OpenAI, considere usar MoonShot como alternativa.
Nota
Moonshot no proporciona una Embedding API , por lo que aquí utilizamos Embedding API de Zhipuai.
cp env_of_moonshot .envLas variables en .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 con su propia clave. Inicie sesión en el sitio web de Zhipuai para ver su clave API.MOONSHOT_API_KEY con su propia clave. Inicie sesión en el sitio web de Moonshot para ver su clave API.MOONSHOT_MODEL_NAME si desea usar otros modelos de MoonShot.BOT_TOPIC para reflejar el nombre de su bot. Esto es muy importante, ya que se utilizará en Prompt Construction . Intente usar una palabra concisa y clara, como OpenIM , LangChain .URL_PREFIX para que coincida con el dominio de su sitio web. Esto es principalmente para generar enlaces de URL accesibles para archivos locales cargados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE en 1 si desea usar LlamaParse .LLAMA_CLOUD_API_KEY con su propia clave. Inicie sesión en el sitio web de Llamacloud para ver su clave API.server/constant . Si su base de conocimiento implica información confidencial y prefiere no usar LLM basados en la nube, considere usar Ollama para implementar modelos grandes localmente.
Nota
Primero, consulte Ollama para instalar Ollama y descargue el modelo de incrustación mxbai-embed-large y el modelo LLM como llama3 .
cp env_of_ollama .envLas variables en .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 , seleccione un modelo apropiado de la biblioteca Ollama.IP:PORT predeterminado al iniciar Ollama , actualice OLLAMA_BASE_URL . Preste especial atención, solo ingrese el IP (dominio) y el puerto aquí, sin agregar un URI.BOT_TOPIC para reflejar el nombre de su bot. Esto es muy importante, ya que se utilizará en Prompt Construction . Intente usar una palabra concisa y clara, como OpenIM , LangChain .URL_PREFIX para que coincida con el dominio de su sitio web. Esto es principalmente para generar enlaces de URL accesibles para archivos locales cargados. Como http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE en 1 si desea usar LlamaParse .LLAMA_CLOUD_API_KEY con su propia clave. Inicie sesión en el sitio web de Llamacloud para ver su clave API.server/constant .Nota
Al implementar con Docker, preste especial atención al host de URL_PREFIX en el archivo .env . Si usa Ollama , también preste especial atención al anfitrión de Ollama_Base_url en el archivo .env . Deben usar la dirección IP real de la máquina host.
docker-compose up --buildNota
Utilice Python versión 3.10.x o superior.
Se recomienda instalar dependencias relacionadas con Python en un entorno virtual de Python para evitar afectar las dependencias de otros proyectos.
Si aún no ha creado un entorno virtual, puede crear uno con el siguiente comando:
python3 -m venv myenvDespués de la creación, active el entorno virtual:
source myenv/bin/activate Una vez que se activa el entorno virtual, puede usar pip para instalar las dependencias requeridas.
pip install -r requirements.txtEl servicio RAG-GPT utiliza SQLite como su DB de almacenamiento. Antes de comenzar el servicio RAG-GPT, debe ejecutar el siguiente comando para inicializar la base de datos y agregar la configuración predeterminada para la consola de administración.
python3 create_sqlite_db.pySi ha completado los pasos anteriores, puede intentar iniciar el servicio RAG-GPT ejecutando el siguiente comando.
python3 rag_gpt_app.pysh start.shNota
7000 . Durante la primera prueba, intente no cambiar el puerto para que pueda experimentar rápidamente todo el proceso de producto.start.sh en modo multiprocesado para una experiencia de usuario más suave. Acceda a la consola de administración a través del enlace http://your-server-ip:7000/open-kf-admin/ para llegar a la página de inicio de sesión. El nombre de usuario y la contraseña predeterminados son admin y open_kf_AIGC@2024 (se puede verificar en create_sqlite_db.py ).

Después de iniciar sesión con éxito, podrá ver la página de configuración de la consola de administración.

En la página http://your-server-ip:7000/open-kf-admin/#/ , puede establecer las siguientes configuraciones:
gpt-3.5-turbo está disponible, que se expandirá gradualmente. Después de enviar la URL del sitio web, una vez que el servidor recupera la lista de todas las URL de la página web a través del rastreo, puede seleccionar las URL de la página web que necesita como base de conocimiento (todas seleccionadas de forma predeterminada). Se Recorded el Status inicial.

Puede actualizar activamente la página http://your-server-ip:7000/open-kf-admin/#/source en su navegador para obtener el progreso del procesamiento de URL de la página web. Después de que el contenido de la URL de la página web se ha rastreado y se completen el cálculo y el almacenamiento de la incrustación, puede ver el Size correspondiente en la consola de administración, y el Status también se actualizará a Trained .

Al hacer clic en la URL de una página web, revela en cuántas subpáginas se divide la página web y el tamaño de texto de cada subpágina.

Hacer clic en una subpágina le permite ver su contenido de texto completo. Esto será muy útil para verificar los efectos durante el proceso de prueba de experiencia.

Recopile las URL de las páginas web requeridas. Puede enviar hasta 10 URL de página web a la vez, y estas páginas pueden ser de diferentes dominios.

Cargue los archivos locales requeridos. Puede cargar hasta 10 archivos a la vez, y cada archivo no puede exceder 30MB . Actualmente se admiten los siguientes tipos de archivos: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] .

Después de importar datos del sitio web en la consola de administración, puede experimentar el servicio de chatbot a través del enlace http://your-server-ip:7000/open-kf-chatbot/ .

A través del enlace de la consola de administración http://your-server-ip:7000/open-kf-admin/#/embed , puede ver el tutorial detallado para configurar el iframe en su sitio web.


A través del enlace de la consola de administración http://your-server-ip:7000/open-kf-admin/#/dashboard , puede ver los registros de solicitud históricos de todos los usuarios dentro de un rango de tiempo especificado.

El servicio Rag-GPT integra 2 módulos frontend, y su información del código fuente es la siguiente:
Repositorio de código
Una interfaz de administración intuitiva basada en la web para el servicio Smart QA, que ofrece un control integral sobre el contenido, la configuración y las interacciones del usuario. Permite una gestión sin esfuerzo de la base de conocimiento, monitoreo en tiempo real de consultas y comentarios, y una mejora continua basada en información del usuario.
Repositorio de código
Una interfaz HTML5 para el servicio Smart QA diseñado para una fácil integración en sitios web a través de iframe, proporcionando a los usuarios acceso directo a una base de conocimiento personalizada sin salir del sitio, mejorando la funcionalidad y la resolución inmediata de consultas.