本地部署文档

先决条件

您需要拥有 Neo4j 数据库 V5.18 或更高版本,并安装了 APOC 才能使用此知识图谱构建器。您可以使用任何 Neo4j Aura 数据库(包括免费层数据库)。Neo4j Aura 自动包含 APOC 并在最新的 Neo4j 版本上运行,使其成为快速入门的绝佳选择。

您也可以使用 Neo4j Sandbox 中的免费试用版,其中还包括图数据科学。如果要改为使用 Neo4j 桌面版,则需要将 NEO4J_URI=bolt://host.docker.internal 配置为允许 Docker 容器访问计算机上运行的网络。

Docker-compose

默认情况下,仅启用 OpenAI 和 Diffbot,因为 Gemini 需要额外的 GCP 配置。

在根文件夹中,创建一个包含您的 OPENAI 和 DIFFBOT 密钥的 .env 文件(如果您想同时使用两者)。

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、维基百科和 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 应为要启用的源的逗号分隔列表。当然,您可以组合所有(本地、youtube、维基百科、s3 和 gcs)或删除任何不需要的源。

开发(单独的前端和后端)

或者,您可以分别运行后端和前端。

  • 对于前端

    1. 通过复制/粘贴 frontend/example.env 创建 frontend/.env 文件。

    2. 根据需要更改值。

    3. 运行

cd frontend
yarn
yarn run dev
  • 对于后端

    1. 通过复制/粘贴 backend/example.env 创建 backend/.env 文件。

    2. 根据需要更改值。

    3. 运行

cd backend
python -m venv envName
source envName/bin/activate
pip install -r requirements.txt
uvicorn score:app --reload

环境变量

处理配置

环境变量名称 必填/可选 默认值 描述

IS_EMBEDDING

可选

true

启用文本嵌入以用于块的标志

ENTITY_EMBEDDING

可选

false

启用实体嵌入(ID 和描述)的标志

KNN_MIN_SCORE

可选

0.94

用于连接相似块的 KNN 算法的最低分数

NUMBER_OF_CHUNKS_TO_COMBINE

可选

6

提取实体时要组合的块数

UPDATE_GRAPH_CHUNKS_PROCESSED

可选

20

写入数据库并更新进度之前处理的块数

环境变量

可选

DEV

应用程序的环境变量

TIME_PER_CHUNK

可选

4

每个块的处理时间

CHUNK_SIZE

可选

5242880

每个块的处理大小

前端配置

环境变量名称 必填/可选 默认值 描述

BACKEND_API_URL

可选

http://localhost:8000

后端 API 的 URL

REACT_APP_SOURCES

可选

local,youtube,wiki,s3

将可用的输入源列表

BLOOM_URL

可选

https://workspace-preview.neo4j.io/workspace/explore?connectURL={CONNECT_URL}&search=Show+me+a+graph

Bloom 可视化的 URL

GCP 云集成

环境变量名称 必填/可选 默认值 描述

GEMINI_ENABLED

可选

False

启用 Gemini 的标志

GCP_LOG_METRICS_ENABLED

可选

False

启用 Google Cloud 日志的标志

GOOGLE_CLIENT_ID

可选

用于 GCS 上传的 Google 身份验证的客户端 ID

GCS_FILE_CACHE

可选

False

如果设置为 True,则将要处理的文件保存到 GCS。如果设置为 False,则将文件保存在本地。

LLM 模型配置

环境变量名称 必填/可选 默认值 描述

LLM_MODELS

可选

diffbot,gpt-3.5,gpt-4o

可在前端选择的模型,用于实体提取和问答聊天机器人(其他模型:gemini-1.0-pro, gemini-1.5-pro

OPENAI_API_KEY

可选

sk-…​

OpenAI 的 API 密钥(如果已启用)

DIFFBOT_API_KEY

可选

Diffbot 的 API 密钥(如果已启用)

EMBEDDING_MODEL

可选

all-MiniLM-L6-v2

用于生成文本嵌入的模型(all-MiniLM-L6-v2、openai、vertexai)

GROQ_API_KEY

可选

Groq 的 API 密钥

GEMINI_ENABLED

可选

False

启用 Gemini 的标志

LLM_MODEL_CONFIG_<model_id>="<model>,<base-url>,<api-key>,<version>"

可选

其他 LLM 模型的配置

LangChain 和 Neo4j 配置

环境变量名称 必填/可选 默认值 描述

NEO4J_URI

可选

neo4j://database:7687

后端连接到的 Neo4j 数据库的 URI

NEO4J_USERNAME

可选

neo4j

后端连接到的 Neo4j 数据库的用户名

NEO4J_PASSWORD

可选

password

后端连接到的 Neo4j 数据库的密码

LANGCHAIN_API_KEY

可选

LangSmith 的 API 密钥

LANGCHAIN_PROJECT

可选

LangSmith 的项目

LANGCHAIN_TRACING_V2

可选

false

启用 LangSmith 追踪的标志

LANGCHAIN_ENDPOINT

可选

https://api.smith.langchain.com

LangSmith API 的端点