配置指南

配置 NodeRAG 本指南将帮助您设置和配置您的 NodeRAG 项目。

配置

python -m NodeRAG.build -f path/to/main_foulder

当您首次使用此命令时,它将在main_folder目录中创建Node_config.yaml文件。

创建配置

您需要按照以下说明修改配置文件(添加 API 和服务提供商)以确保 NodeRAG 可以访问正确的 API。

#==============================================================================
# AI 模型配置
#==============================================================================
model_config:
  service_provider: openai            # AI 服务提供商(如 openai、azure)
  model_name: gpt-4o-mini            # 文本生成模型名称
  api_keys:    # 您的 API 密钥(可选)
  temperature: 0                      # 文本生成的温度参数
  max_tokens: 10000                  # 生成的最大令牌数
  rate_limit: 40                     # API 速率限制(每秒请求数)

embedding_config:
  service_provider: openai_embedding  # 嵌入服务提供商
  embedding_model_name: text-embedding-3-small  # 文本嵌入模型名称
  api_keys:    # 您的 API 密钥(可选)
  rate_limit: 20                     # 嵌入请求的速率限制

#==============================================================================
# 文档处理配置
#==============================================================================
config:
  # 基本设置
  main_folder: C:\Users\Terry_Xu\Desktop\HP # 文档处理的根文件夹
  language: English                  # 文档处理语言
  docu_type: mixed                  # 文档类型(mixed、pdf、txt 等)
  # 分块设置
  chunk_size: 1048                  # 处理的文本块大小
  embedding_batch_size: 50          # 嵌入处理的批量大小
  # UI 设置
  use_tqdm: false                   # 启用/禁用进度条
  use_rich: true                    # 启用/禁用富文本格式
  # HNSW 索引设置
  space: l2                         # HNSW 的距离度量(l2、cosine)
  dim: 1536                         # 嵌入维度(必须与嵌入模型匹配)
  m: 50                             # HNSW 每层的连接数
  ef: 200                           # HNSW 中动态候选列表的大小
  m0:                               # HNSW 中双向链接的数量
  # 摘要设置
  Hcluster_size: 39                 # 高级元素匹配的集群数
  # 搜索服务器设置
  url: '127.0.0.1'                  # 搜索服务的服务器 URL
  port: 5000                        # 服务器端口号
  unbalance_adjust: true            # 启用不平衡数据调整
  cross_node: 10                    # 返回的交叉节点数
  Enode: 10                         # 返回的实体节点数
  Rnode: 30                         # 返回的关系节点数
  Hnode: 10                         # 返回的高级节点数
  HNSW_results: 10                  # HNSW 搜索结果数
  similarity_weight: 1              # 个性化 PageRank 中的相似度权重
  accuracy_weight: 1                # 个性化 PageRank 中的准确度权重
  ppr_alpha: 0.5                    # 个性化 PageRank 的阻尼因子
  ppr_max_iter: 2                   # 个性化 PageRank 的最大迭代次数

配置说明

服务提供商

我们目前支持的模型服务提供商包括 openaigenmini。对于嵌入模型,我们支持 openai_embeddinggemini embedding。我们强烈推荐使用 openai 作为模型提供商。这是因为 OpenAI 的结构解码功能可以有效地遵循结构化分解提示来生成异构图,提供了很好的稳定性。遗憾的是,目前的 Gemini 模型和其他模型(如 DeepSeek),即使是最新的 Gemini 2.0,在结构化输出方面都表现出不稳定性。我们在这篇博客中讨论了这个问题。

可用模型

当您选择服务提供商时,您可以使用他们当前提供的所有可用模型。 例如,如果您选择 openai 作为服务提供商,您可以使用他们网站上最新模型列表中的所有模型。

以下是 openai 的一些可用模型示例:

  • gpt-4o-mini
  • gpt-4
  • gpt-4o

对于嵌入模型,openai_embedding 提供:

  • text-embedding-3-small
  • text-embedding-3-large

请参考嵌入获取最新的可用模型列表。

速率限制

OpenAI 账户受到速率限制,包括每分钟请求数和令牌数的限制。您可以通过设置适当的速率限制来调整嵌入模型和语言模型的请求速率,以控制使用峰值。

有关账户等级和具体速率限制的更多信息,请参见 OpenAI 速率限制指南

语言

目前支持英语和中文。要添加对其他语言的支持,请修改提示相关文本并相应更新 prompt manager 中的语言返回字段。详情请参见提示微调

嵌入维度

dim 表示嵌入向量的维度数。请确保此值与您使用的嵌入模型相匹配。例如,OpenAI 的嵌入维度是 1536,而 Gemini 的嵌入维度是 768


Last modified April 5, 2025: update reproduce (f23a25c)