本地部署文档
先决条件
要使用此知识图谱构建器(Knowledge Graph Builder),您需要拥有 Neo4j 数据库 V5.18 或更高版本,并安装 APOC。您可以使用任何 Neo4j Aura 数据库(包括免费层级数据库)。Neo4j Aura 自动包含 APOC 并运行在最新的 Neo4j 版本上,是快速入门的绝佳选择。
您也可以使用 Neo4j Sandbox 中的免费试用版,其中也包含了 Graph Data Science(图数据科学)。如果您想改用 Neo4j Desktop,则需要配置 NEO4J_URI=bolt://host.docker.internal,以允许 Docker 容器访问您计算机上运行的网络。
Docker-compose
默认情况下,仅启用了 OpenAI 和 Diffbot,因为 Gemini 需要额外的 GCP 配置。
在根文件夹中,创建一个 .env 文件,填入您的 OPENAI 和 DIFFBOT 密钥(如果您想同时使用两者)
OPENAI_API_KEY="your-openai-key"
DIFFBOT_API_KEY="your-diffbot-key"
如果您只想使用 OpenAI
LLM_MODELS="gpt-3.5,gpt-4o"
OPENAI_API_KEY="your-openai-key"
如果您只想使用 Diffbot
LLM_MODELS="diffbot"
DIFFBOT_API_KEY="your-diffbot-key"
然后您可以运行 Docker Compose 来构建并启动所有组件
docker-compose up --build
配置 LLM 模型
除了开箱即支持的模型外,您还可以配置以下 LLM 模型
-
OpenAI GPT 3.5 和 4o(默认)
-
VertexAI (Gemini 1.0)(默认)
-
VertexAI (Gemini 1.5)
-
Diffbot
-
Bedrock 模型
-
Anthropic
-
兼容 OpenAI API 的模型,如 Ollama、Groq、Fireworks
要实现这一点,您需要设置多个环境变量
在您的 .env 文件中,添加以下行。当然,您也可以从这些提供商或任何兼容 OpenAI API 的提供商处添加其他模型配置。
LLM_MODEL_CONFIG_azure_ai_gpt_35="gpt-35,https://<deployment>.openai.azure.com/,<api-key>,<version>"
LLM_MODEL_CONFIG_anthropic_claude_35_sonnet="claude-3-5-sonnet-20240620,<api-key>"
LLM_MODEL_CONFIG_fireworks_llama_v3_70b="accounts/fireworks/models/llama-v3-70b-instruct,<api-key>"
LLM_MODEL_CONFIG_bedrock_claude_35_sonnet="anthropic.claude-3-sonnet-20240229-v1:0,<api-key>,<region>"
LLM_MODEL_CONFIG_ollama_llama3="llama3,http://host.docker.internal:11434"
LLM_MODEL_CONFIG_fireworks_qwen_72b="accounts/fireworks/models/qwen2-72b-instruct,<api-key>"
# Optional Frontend config
VITE_LLM_MODELS="diffbot,gpt-3.5,gpt-4o,azure_ai_gpt_35,azure_ai_gpt_4o,groq_llama3_70b,anthropic_claude_35_sonnet,fireworks_llama_v3_70b,bedrock_claude_35_sonnet,ollama_llama3,fireworks_qwen_72b"
在您的 docker-compose.yml 中,您需要将这些变量传递进去
- LLM_MODEL_CONFIG_anthropic_claude_35_sonnet=${LLM_MODEL_CONFIG_anthropic_claude_35_sonnet-}
- LLM_MODEL_CONFIG_fireworks_llama_v3_70b=${LLM_MODEL_CONFIG_fireworks_llama_v3_70b-}
- LLM_MODEL_CONFIG_azure_ai_gpt_4o=${LLM_MODEL_CONFIG_azure_ai_gpt_4o-}
- LLM_MODEL_CONFIG_azure_ai_gpt_35=${LLM_MODEL_CONFIG_azure_ai_gpt_35-}
- LLM_MODEL_CONFIG_groq_llama3_70b=${LLM_MODEL_CONFIG_groq_llama3_70b-}
- LLM_MODEL_CONFIG_bedrock_claude_3_5_sonnet=${LLM_MODEL_CONFIG_bedrock_claude_3_5_sonnet-}
- LLM_MODEL_CONFIG_fireworks_qwen_72b=${LLM_MODEL_CONFIG_fireworks_qwen_72b-}
- LLM_MODEL_CONFIG_ollama_llama3=${LLM_MODEL_CONFIG_ollama_llama3-}
附加配置
默认情况下,输入源将为:本地文件、Youtube、Wikipedia 和 AWS S3。如果您不在 .env 文件中覆盖它,将应用此默认配置。
VITE_SOURCES="local,youtube,wiki,s3"
但是,如果您需要 Google GCS 集成,请添加 gcs 并填入您的 Google 客户端 ID
VITE_SOURCES="local,youtube,wiki,s3,gcs"
GOOGLE_CLIENT_ID="xxxx"
REACT_APP_SOURCES 应该是您想要启用的来源的逗号分隔列表。您当然可以将它们全部组合(本地、youtube、wikipedia、s3 和 gcs),或者移除任何您不需要的来源。
开发(前后端分离)
或者,您可以分别运行后端和前端
-
对于前端
-
通过复制/粘贴 frontend/example.env 来创建 frontend/.env 文件。
-
根据需要更改值
-
运行
-
cd frontend
yarn
yarn run dev
-
对于后端
-
通过复制/粘贴 backend/example.env 来创建 backend/.env 文件。
-
根据需要更改值
-
运行
-
cd backend
python -m venv envName
source envName/bin/activate
pip install -r requirements.txt
uvicorn score:app --reload
ENV
处理配置
| 环境变量名称 | 必需/可选 | 默认值 | 描述 |
|---|---|---|---|
|
可选 |
|
用于启用文本分块嵌入的标志 |
|
可选 |
|
用于启用实体嵌入(ID 和描述)的标志 |
|
可选 |
|
用于连接相似分块的 KNN 算法的最小分数 |
|
可选 |
|
提取实体时组合的分块数量 |
|
可选 |
|
写入数据库并更新进度前需处理的分块数量 |
|
可选 |
|
应用程序的环境变量 |
|
可选 |
|
每个分块的处理时间 |
|
可选 |
|
每个处理分块的大小 |
前端配置
| 环境变量名称 | 必需/可选 | 默认值 | 描述 |
|---|---|---|---|
|
可选 |
后端 API 的 URL |
|
|
可选 |
|
可用输入源列表 |
|
可选 |
|
Bloom 可视化 URL |
|
必需 |
|
要在选择器中显示的 LLM 模型名称的逗号分隔列表 |
GCP 云集成
| 环境变量名称 | 必需/可选 | 默认值 | 描述 |
|---|---|---|---|
|
可选 |
|
用于启用 Gemini 的标志 |
|
可选 |
|
用于启用 Google Cloud 日志的标志 |
|
可选 |
用于 GCS 上传的 Google 身份验证的客户端 ID |
|
|
可选 |
|
如果设为 True,将把要处理的文件保存到 GCS。如果设为 False,则在本地保存文件 |
LLM 模型配置
| 环境变量名称 | 必需/可选 | 默认值 | 描述 |
|---|---|---|---|
|
可选 |
|
前端可选模型,用于实体提取和问答聊天机器人(其他模型: |
|
可选 |
|
OpenAI 的 API 密钥(如果已启用) |
|
可选 |
Diffbot 的 API 密钥(如果已启用) |
|
|
可选 |
|
用于生成文本嵌入的模型(all-MiniLM-L6-v2, openai, vertexai) |
|
可选 |
Groq 的 API 密钥 |
|
|
可选 |
|
用于启用 Gemini 的标志 |
|
可选 |
其他 LLM 模型的配置 |
LangChain 和 Neo4j 配置
| 环境变量名称 | 必需/可选 | 默认值 | 描述 |
|---|---|---|---|
|
可选 |
|
后端连接的 Neo4j 数据库 URI |
|
可选 |
|
后端连接的 Neo4j 数据库用户名 |
|
可选 |
|
后端连接的 Neo4j 数据库密码 |
|
可选 |
LangSmith 的 API 密钥 |
|
|
可选 |
LangSmith 项目名称 |
|
|
可选 |
|
用于启用 LangSmith 追踪的标志 |
|
可选 |
LangSmith API 的端点 |