本地部署文档

先决条件

要使用此知识图谱构建器 (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),或删除任何您不需要的源。

开发(前端和后端分离)

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

  • 对于前端:

    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

环境变量 (ENV)

处理配置

环境变量名称 强制/可选 默认值 描述

IS_EMBEDDING

可选

true

启用文本块嵌入的标志

ENTITY_EMBEDDING

可选

false

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

KNN_MIN_SCORE

可选

0.94

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

NUMBER_OF_CHUNKS_TO_COMBINE

可选

6

提取实体时要组合的数据块数量

UPDATE_GRAPH_CHUNKS_PROCESSED

可选

20

写入数据库和更新进度前处理的数据块数量

ENV

可选

DEV

应用程序的环境变量

TIME_PER_CHUNK

可选

4

每个数据块的处理时间

CHUNK_SIZE

可选

5242880

处理时每个数据块的大小

前端配置

环境变量名称 强制/可选 默认值 描述

BACKEND_API_URL

可选

https://: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 的端点

© . This site is unofficial and not affiliated with Neo4j, Inc.