

저장소 복제 :
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptRAG-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_NAME 수정하지 마십시오OPENAI_API_KEY 수정하십시오. API 키를 보려면 OpenAI 웹 사이트에 로그인하십시오.GPT_MODEL_NAME -4O-MINI를 gpt-4-turbo 또는 gpt-4o 로 대체하여 gpt-4o-mini GPT-4O-MINI를 GPT-4O-4O로 바꾸십시오.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 .LlamaParse 사용하려면 USE_LLAMA_PARSE 1로 설정하십시오.LLAMA_CLOUD_API_KEY 수정하십시오. API 키를 보려면 llamacloud 웹 사이트에 로그인하십시오.GPT-4o 모드를 사용하려면 USE_GPT4O 1로 설정하십시오.server/constant 디렉토리에서 확인할 수 있습니다. OpenAI의 API 서비스를 사용할 수없는 경우 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_NAME 수정하지 마십시오ZHIPUAI_API_KEY 수정하십시오. API 키를 보려면 Zhipuai 웹 사이트에 로그인하십시오.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 .LlamaParse 사용하려면 USE_LLAMA_PARSE 1로 설정하십시오.LLAMA_CLOUD_API_KEY 수정하십시오. API 키를 보려면 llamacloud 웹 사이트에 로그인하십시오.server/constant 디렉토리에서 확인할 수 있습니다. OpenAI의 API 서비스를 사용할 수없는 경우 DeepSeek 사용을 대안으로 고려하십시오.
메모
DeepSeek은 Embedding API 제공하지 않으므로 Zhipuai의 Embedding API 사용합니다.
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_NAME 수정하지 마십시오ZHIPUAI_API_KEY 수정하십시오. API 키를 보려면 Zhipuai 웹 사이트에 로그인하십시오.DEEPKSEEK_API_KEY 수정하십시오. API 키를 보려면 DeepSeek 웹 사이트에 로그인하십시오.DEEPSEEK_MODEL_NAME 설정을 업데이트하십시오.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 .LlamaParse 사용하려면 USE_LLAMA_PARSE 1로 설정하십시오.LLAMA_CLOUD_API_KEY 수정하십시오. API 키를 보려면 llamacloud 웹 사이트에 로그인하십시오.server/constant 디렉토리에서 확인할 수 있습니다. OpenAI의 API 서비스를 사용할 수없는 경우 Moonshot을 대안으로 사용하는 것을 고려하십시오.
메모
Moonshot은 Embedding API 제공하지 않으므로 Zhipuai의 Embedding API 사용합니다.
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_NAME 수정하지 마십시오ZHIPUAI_API_KEY 수정하십시오. API 키를 보려면 Zhipuai 웹 사이트에 로그인하십시오.MOONSHOT_API_KEY 를 수정하십시오. API 키를 보려면 MoonShot 웹 사이트에 로그인하십시오.MOONSHOT_MODEL_NAME 설정을 업데이트하십시오.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 .LlamaParse 사용하려면 USE_LLAMA_PARSE 1로 설정하십시오.LLAMA_CLOUD_API_KEY 수정하십시오. API 키를 보려면 llamacloud 웹 사이트에 로그인하십시오.server/constant 디렉토리에서 확인할 수 있습니다. 지식 기반에 민감한 정보가 포함되어 있고 클라우드 기반 LLM을 사용하지 않는 경우 Ollama 사용하여 대형 모델을 로컬로 배포하십시오.
메모
먼저 Ollama를 참조하여 Ollama를 설치 하고 임베딩 모델 mxbai-embed-large 및 llama3 과 같은 LLM 모델을 다운로드하십시오.
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_NAME 수정하지 마십시오OLLAMA_MODEL_NAME 설정을 업데이트하고 Ollama 라이브러리에서 적절한 모델을 선택하십시오.Ollama 시작할 때 기본 IP:PORT 변경 한 경우 OLLAMA_BASE_URL 업데이트하십시오. URI를 추가하지 않고 IP (도메인)와 포트를 여기에 입력하고 여기에 특별한주의를 기울이십시오.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 .LlamaParse 사용하려면 USE_LLAMA_PARSE 1로 설정하십시오.LLAMA_CLOUD_API_KEY 수정하십시오. API 키를 보려면 llamacloud 웹 사이트에 로그인하십시오.server/constant 디렉토리에서 확인할 수 있습니다.메모
Docker로 배포 할 때 .env 파일의 URL_PREFIX 호스트에 특별한주의를 기울이십시오. Ollama 사용하는 경우 .env 파일의 Ollama_base_url 호스트에도 특별한주의를 기울이십시오. 호스트 머신의 실제 IP 주소를 사용해야합니다.
docker-compose up --build메모
Python 버전 3.10.x 이상을 사용하십시오.
다른 프로젝트의 종속성에 영향을 미치지 않도록 파이썬 가상 환경에 Python 관련 종속성을 설치하는 것이 좋습니다.
아직 가상 환경을 만들지 않은 경우 다음 명령으로 가상 환경을 만들 수 있습니다.
python3 -m venv myenv생성 후 가상 환경을 활성화하십시오.
source myenv/bin/activate 가상 환경이 활성화되면 pip 사용하여 필요한 종속성을 설치할 수 있습니다.
pip install -r requirements.txtRAG-GPT 서비스는 SQLITE를 스토리지 DB로 사용합니다. RAG-GPT 서비스를 시작하기 전에 데이터베이스를 초기화하고 관리자 콘솔의 기본 구성을 추가하려면 다음 명령을 실행해야합니다.
python3 create_sqlite_db.py위의 단계를 완료 한 경우 다음 명령을 실행하여 Rag-GPT 서비스를 시작하려고 시도 할 수 있습니다.
python3 rag_gpt_app.pysh start.sh메모
7000 입니다. 첫 번째 테스트 중에 전체 제품 프로세스를 신속하게 경험할 수 있도록 포트를 변경하지 마십시오.start.sh 사용하여 Rag-GPT 서비스를 시작하는 것이 좋습니다. 로그인 페이지에 도달하려면 링크 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 프로세싱의 진행 상황을 얻을 수 있습니다. 웹 페이지의 컨텐츠가 크롤링되고 임베딩 계산 및 스토리지가 완료되면 관리 콘솔의 해당 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 개의 프론트 엔드 모듈을 통합하며 소스 코드 정보는 다음과 같습니다.
코드 저장소
컨텐츠, 구성 및 사용자 상호 작용을 포괄적으로 제어하는 스마트 QA 서비스를위한 직관적 인 웹 기반 관리자 인터페이스. 지식 기반을 쉽게 관리하고 쿼리 및 피드백의 실시간 모니터링 및 사용자 통찰력을 기반으로 지속적인 개선을 가능하게합니다.
코드 저장소
iframe을 통해 웹 사이트에 쉽게 통합되도록 설계된 스마트 QA 서비스 용 HTML5 인터페이스로, 사용자에게 사이트를 떠나지 않고 맞춤형 지식 기반에 직접 액세스하고 기능을 향상시키고 즉각적인 쿼리 해상도를 제공합니다.