

Клонировать репозиторий:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptПеред началом службы RAG-GPT вам необходимо изменить соответствующие конфигурации для правильной инициализации программы.
cp env_of_openai .envПеременные в .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 с помощью своего собственного ключа. Пожалуйста, войдите на веб -сайт Openai, чтобы просмотреть свой ключ API.GPT_MODEL_NAME , заменив gpt-4o-mini на gpt-4-turbo или gpt-4o если вы хотите использовать GPT-4.BOT_TOPIC , чтобы отразить имя вашего бота. Это очень важно, так как он будет использоваться в Prompt Construction . Пожалуйста, постарайтесь использовать краткое и четкое слово, например, OpenIM , LangChain .URL_PREFIX , чтобы соответствовать домену вашего сайта. Это в основном для создания доступных ссылок на URL для загруженных локальных файлов. Такие как http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE на 1, если вы хотите использовать LlamaParse .LLAMA_CLOUD_API_KEY с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Llamacloud, чтобы просмотреть свой ключ API.USE_GPT4O на 1, если вы хотите использовать режим GPT-4o .server/constant . Если вы не можете использовать услуги API Openai, рассмотрите возможность использования Zhipuai в качестве альтернативы.
cp env_of_zhipuai .envПеременные в .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 с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Zhipuai, чтобы просмотреть свой ключ API.GLM_MODEL_NAME , список моделей- ['glm-3-turbo', 'glm-4', 'glm-4-0520', 'glm-4-air', 'glm-4-airx', 'glm-4-flash'] .BOT_TOPIC , чтобы отразить имя вашего бота. Это очень важно, так как он будет использоваться в Prompt Construction . Пожалуйста, постарайтесь использовать краткое и четкое слово, например, OpenIM , LangChain .URL_PREFIX , чтобы соответствовать домену вашего сайта. Это в основном для создания доступных ссылок на URL для загруженных локальных файлов. Такие как http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE на 1, если вы хотите использовать LlamaParse .LLAMA_CLOUD_API_KEY с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Llamacloud, чтобы просмотреть свой ключ API.server/constant . Если вы не можете использовать услуги API Openai, рассмотрите возможность использования DeepSeek в качестве альтернативы.
Примечание
DeepSeek не предоставляет Embedding API , поэтому здесь мы используем Embedding API Zhipuai.
cp env_of_deepseek .envПеременные в .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 с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Zhipuai, чтобы просмотреть свой ключ API.DEEPKSEEK_API_KEY с вашим собственным ключом. Пожалуйста, войдите на веб -сайт DeepSeek, чтобы просмотреть свой ключ API.DEEPSEEK_MODEL_NAME , если вы хотите использовать другие модели DeepSeek.BOT_TOPIC , чтобы отразить имя вашего бота. Это очень важно, так как он будет использоваться в Prompt Construction . Пожалуйста, постарайтесь использовать краткое и четкое слово, например, OpenIM , LangChain .URL_PREFIX , чтобы соответствовать домену вашего сайта. Это в основном для создания доступных ссылок на URL для загруженных локальных файлов. Такие как http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE на 1, если вы хотите использовать LlamaParse .LLAMA_CLOUD_API_KEY с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Llamacloud, чтобы просмотреть свой ключ API.server/constant . Если вы не можете использовать услуги API Openai, рассмотрите возможность использования Moonshot в качестве альтернативы.
Примечание
Moonshot не предоставляет Embedding API , поэтому здесь мы используем Embedding API Zhipuai.
cp env_of_moonshot .envПеременные в .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 с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Zhipuai, чтобы просмотреть свой ключ API.MOONSHOT_API_KEY с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Moonshot, чтобы просмотреть свой ключ API.MOONSHOT_MODEL_NAME , если вы хотите использовать другие модели Moonshot.BOT_TOPIC , чтобы отразить имя вашего бота. Это очень важно, так как он будет использоваться в Prompt Construction . Пожалуйста, постарайтесь использовать краткое и четкое слово, например, OpenIM , LangChain .URL_PREFIX , чтобы соответствовать домену вашего сайта. Это в основном для создания доступных ссылок на URL для загруженных локальных файлов. Такие как http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE на 1, если вы хотите использовать LlamaParse .LLAMA_CLOUD_API_KEY с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Llamacloud, чтобы просмотреть свой ключ API.server/constant . Если ваша база знаний включает конфиденциальную информацию , и вы предпочитаете не использовать облачные LLMS, рассмотрите возможность использования Ollama для развертывания больших моделей локально.
Примечание
Во-первых, обратитесь к Ollama, чтобы установить Ollama и загрузить модель встраивания mxbai-embed-large и модель LLM, такую как llama3 .
cp env_of_ollama .envПеременные в .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 , выберите соответствующую модель из библиотеки OLLAMA.IP:PORT при запуске Ollama , пожалуйста, обновите OLLAMA_BASE_URL . Пожалуйста, обратите особое внимание, введите только IP (домен) и порт здесь, не добавляя URI.BOT_TOPIC , чтобы отразить имя вашего бота. Это очень важно, так как он будет использоваться в Prompt Construction . Пожалуйста, постарайтесь использовать краткое и четкое слово, например, OpenIM , LangChain .URL_PREFIX , чтобы соответствовать домену вашего сайта. Это в основном для создания доступных ссылок на URL для загруженных локальных файлов. Такие как http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE на 1, если вы хотите использовать LlamaParse .LLAMA_CLOUD_API_KEY с вашим собственным ключом. Пожалуйста, войдите на веб -сайт Llamacloud, чтобы просмотреть свой ключ API.server/constant .Примечание
При развертывании с Docker обратите особое внимание на хост url_prefix в файле .env . Если использовать Ollama , также обратите особое внимание на хост Ollama_Base_url в файле .env . Они должны использовать фактический IP -адрес хост -машины.
docker-compose up --buildПримечание
Пожалуйста, используйте Python версию 3.10.x или выше.
Рекомендуется устанавливать связанные с Python зависимости в виртуальной среде Python, чтобы не влиять на зависимости других проектов.
Если вы еще не создали виртуальную среду, вы можете создать ее со следующей командой:
python3 -m venv myenvПосле создания активируйте виртуальную среду:
source myenv/bin/activate После активации виртуальной среды вы можете использовать pip для установки необходимых зависимостей.
pip install -r requirements.txtСлужба Rag-GPT использует SQLite в качестве хранилища DB. Перед запуском службы RAG-GPT вам необходимо выполнить следующую команду для инициализации базы данных и добавить конфигурацию по умолчанию для консоли администратора.
python3 create_sqlite_db.pyЕсли вы выполнили приведенные выше шаги, вы можете попытаться запустить службу RAG-GPT, выполнив следующую команду.
python3 rag_gpt_app.pysh start.shПримечание
7000 . Во время первого теста, пожалуйста, постарайтесь не менять порт, чтобы вы могли быстро испытать весь процесс продукта.start.sh в многопроцессовом режиме для более плавного пользовательского опыта. Получите доступ к консоли администратора через ссылку http://your-server-ip:7000/open-kf-admin/ для достижения страницы входа в систему. Имя пользователя и пароль по умолчанию являются admin и open_kf_AIGC@2024 (можно проверить в create_sqlite_db.py ).

После успешного входа вы сможете увидеть страницу конфигурации консоли администратора.

На странице http://your-server-ip:7000/open-kf-admin/#/ , вы можете установить следующие конфигурации:
gpt-3.5-turbo , которая будет постепенно расширена. После отправки URL -адреса веб -сайта, как только сервер получает список всех URL -адресов веб -страницы через ползание, вы можете выбрать URL -адреса веб -страницы, которые вам нужны в качестве базы знаний (все выбранные по умолчанию). Первоначальный Status Recorded .

Вы можете активно обновить страницу http://your-server-ip:7000/open-kf-admin/#/source в вашем браузере, чтобы получить ход обработки URL-адреса веб-страницы. После того, как содержимое URL -адреса веб -страницы было заполнено, и заполнены расчет и хранение встраивания, вы можете увидеть соответствующий Size в консоли администратора, и Status также будет обновлен до Trained .

Нажатие на URL-адрес веб-страницы показывает, сколько подпагин на веб-страницу разделена, и размер текста на каждой подстранице.

Нажатие на субстранию позволяет просмотреть его полный текстовый контент. Это будет очень полезно для проверки эффектов во время процесса тестирования опыта.

Соберите URL -адреса необходимых веб -страниц. Вы можете отправлять до 10 URL -адресов веб -страницы одновременно, и эти страницы могут быть из разных доменов.

Загрузите необходимые локальные файлы. Вы можете загружать до 10 файлов за раз, и каждый файл не может превышать 30MB . В настоящее время поддерживаются следующие типы файлов: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] .

После импорта данных веб-сайта в консоли администратора вы можете испытать службу чат-ботов по ссылке http://your-server-ip:7000/open-kf-chatbot/ .

По ссылке консоли администраторов http://your-server-ip:7000/open-kf-admin/#/embed , вы можете увидеть подробное руководство для настройки IFRAME на вашем веб-сайте.


По ссылке консоли администратора http://your-server-ip:7000/open-kf-admin/#/dashboard , вы можете просмотреть исторические записи запроса всех пользователей в пределах указанного времени.

Служба RAG-GPT интегрирует 2 фронтальных модуля, и их информация о исходном коде выглядит следующим образом:
Код репозиторий
Интуитивно понятный веб-интерфейс администратора для Smart QA, предлагающий комплексный контроль над контентом, конфигурацией и пользовательскими взаимодействиями. Получает легкое управление базой знаний, мониторинг запросов и обратной связи в реальном времени, а также постоянное улучшение на основе понимания пользователей.
Код репозиторий
Интерфейс HTML5 для Smart QA Service, предназначенный для легкой интеграции в веб -сайты через IFRAME, предоставляя пользователям прямой доступ к адаптированной базе знаний, не выходя из сайта, улучшая функциональность и немедленное разрешение запросов.