本地部署文档

先决条件

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

您也可以使用 Neo4j Sandbox 中的免费试用版,其中也包含图数据科学。如果您想使用 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、维基百科和 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、维基百科、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

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

环境变量

可选

开发

应用程序的环境变量

TIME_PER_CHUNK

可选

4

每个文本块的处理时间

CHUNK_SIZE

可选

5242880

每个文本块的处理大小

前端配置

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

VITE_BACKEND_API_URL

可选

https://:8000

后端 API 的 URL

VITE_SOURCES

可选

local,youtube,wiki,s3

可用的输入源列表

VITE_BLOOM_URL

可选

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

Bloom 可视化的 URL

VITE_LLM_MODELS

强制

diffbot,gpt-4o,gpt-4o-mini

要在选择器中显示的 LLM 模型名称的逗号分隔列表

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 模型配置

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

VITE_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 的端点

© . All rights reserved.