本地部署文档
先决条件
要使用此知识图谱构建器 (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
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 文件中覆盖它,将应用此默认配置。
REACT_APP_SOURCES="local,youtube,wiki,s3"
如果您需要 Google GCS 集成,请添加 gcs 和您的 Google 客户端 ID。
REACT_APP_SOURCES="local,youtube,wiki,s3,gcs"
GOOGLE_CLIENT_ID="xxxx"
REACT_APP_SOURCES 应该是您想要启用的源的逗号分隔列表。您当然可以组合所有源(local、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 |
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 的端点 |