默认配置模式(使用环境变量)
从 1.3 版本开始,GraphRAG 不再支持完整的预构建环境变量。 相反,我们支持在 settings.yml 文件 中进行变量替换,因此您可以指定所需的任何环境变量。
我们期望的唯一标准环境变量,并且包含在默认的 settings.yml 中,是 GRAPHRAG_API_KEY
。 如果您已经使用了许多以前的 GRAPHRAG_* 环境变量,则可以使用模板语法将它们插入到 settings.yml 中,它们将被采用。
以下环境变量被记录为迁移的辅助手段,但除非您在 settings.yml 中使用模板语法,否则它们将不会被读取。
文本嵌入自定义
默认情况下,GraphRAG 索引器只会导出我们的查询方法所需的嵌入。 但是,该模型已经为所有纯文本字段定义了嵌入,可以通过将 GRAPHRAG_EMBEDDING_TARGET
环境变量设置为 all
来生成它们。
嵌入字段
text_unit.text
document.text
entity.title
entity.description
relationship.description
community.title
community.summary
community.full_content
我们的管道可以从输入文件夹中提取 .csv 或 .txt 数据。 这些文件可以嵌套在子文件夹中。 要配置如何处理输入数据,映射哪些字段以及如何解析时间戳,请查找以 GRAPHRAG_INPUT_
开头的配置值(如下所示)。 通常,基于 CSV 的数据提供最多的可定制性。 每个 CSV 至少应包含一个 text
字段(可以使用环境变量映射),但如果它们还具有 title
、timestamp
和 source
字段,则会很有帮助。 也可以包含其他字段,这些字段将作为额外字段添加到 Document
表中。
基本 LLM 设置
这些是配置 LLM 连接的主要设置。
参数 |
是否必需? |
描述 |
类型 |
默认值 |
GRAPHRAG_API_KEY |
OpenAI 为必需。 AOAI 为可选 |
API 密钥。(注意:OPENAI_API_KEY 也被用作备用)。 如果在使用 AOAI 时未定义,将使用托管标识。 |
str |
无 |
GRAPHRAG_API_BASE |
用于 AOAI |
API 基准 URL |
str |
无 |
GRAPHRAG_API_VERSION |
用于 AOAI |
AOAI API 版本。 |
str |
无 |
GRAPHRAG_API_ORGANIZATION |
|
AOAI 组织。 |
str |
无 |
GRAPHRAG_API_PROXY |
|
AOAI 代理。 |
str |
无 |
文本生成设置
这些设置控制管道使用的文本生成模型。 任何具有回退的设置都将使用基本 LLM 设置(如果可用)。
参数 |
是否必需? |
描述 |
类型 |
默认值 |
GRAPHRAG_LLM_TYPE |
用于 AOAI |
LLM 操作类型。 可以是 openai_chat 或 azure_openai_chat |
str |
openai_chat |
GRAPHRAG_LLM_DEPLOYMENT_NAME |
用于 AOAI |
AOAI 模型部署名称。 |
str |
无 |
GRAPHRAG_LLM_API_KEY |
是(使用回退) |
API 密钥。 如果在使用 AOAI 时未定义,将使用托管标识。 |
str |
无 |
GRAPHRAG_LLM_API_BASE |
对于 AOAI(使用回退) |
API 基准 URL |
str |
无 |
GRAPHRAG_LLM_API_VERSION |
对于 AOAI(使用回退) |
AOAI API 版本。 |
str |
无 |
GRAPHRAG_LLM_API_ORGANIZATION |
对于 AOAI(使用回退) |
AOAI 组织。 |
str |
无 |
GRAPHRAG_LLM_API_PROXY |
|
AOAI 代理。 |
str |
无 |
GRAPHRAG_LLM_MODEL |
|
LLM 模型。 |
str |
gpt-4-turbo-preview |
GRAPHRAG_LLM_MAX_TOKENS |
|
最大令牌数。 |
int |
4000 |
GRAPHRAG_LLM_REQUEST_TIMEOUT |
|
等待聊天客户端响应的最长时间(秒)。 |
int |
180 |
GRAPHRAG_LLM_MODEL_SUPPORTS_JSON |
|
指示给定的模型是否支持 JSON 输出模式。 True 启用。 |
str |
无 |
GRAPHRAG_LLM_THREAD_COUNT |
|
用于 LLM 并行处理的线程数。 |
int |
50 |
GRAPHRAG_LLM_THREAD_STAGGER |
|
启动每个线程之间等待的时间(以秒为单位)。 |
float |
0.3 |
GRAPHRAG_LLM_CONCURRENT_REQUESTS |
|
允许用于嵌入客户端的并发请求数。 |
int |
25 |
GRAPHRAG_LLM_TOKENS_PER_MINUTE |
|
允许用于 LLM 客户端的每分钟令牌数。 0 = 绕过 |
int |
0 |
GRAPHRAG_LLM_REQUESTS_PER_MINUTE |
|
允许用于 LLM 客户端的每分钟请求数。 0 = 绕过 |
int |
0 |
GRAPHRAG_LLM_MAX_RETRIES |
|
请求失败时尝试的最大重试次数。 |
int |
10 |
GRAPHRAG_LLM_MAX_RETRY_WAIT |
|
重试之间等待的最大秒数。 |
int |
10 |
GRAPHRAG_LLM_SLEEP_ON_RATE_LIMIT_RECOMMENDATION |
|
是否在速率限制建议上休眠。(仅限 Azure) |
bool |
True |
GRAPHRAG_LLM_TEMPERATURE |
|
用于生成器的温度。 |
float |
0 |
GRAPHRAG_LLM_TOP_P |
|
用于采样的 top_p。 |
float |
1 |
GRAPHRAG_LLM_N |
|
要生成的响应数。 |
int |
1 |
文本嵌入设置
这些设置控制管道使用的文本嵌入模型。 任何具有回退的设置都将使用基本 LLM 设置(如果可用)。
参数 |
是否必需? |
描述 |
类型 |
默认 |
GRAPHRAG_EMBEDDING_TYPE |
用于 AOAI |
要使用的嵌入客户端。 可以是 openai_embedding 或 azure_openai_embedding |
str |
openai_embedding |
GRAPHRAG_EMBEDDING_DEPLOYMENT_NAME |
用于 AOAI |
AOAI 部署名称。 |
str |
无 |
GRAPHRAG_EMBEDDING_API_KEY |
是(使用回退) |
用于嵌入客户端的 API 密钥。 如果在使用 AOAI 时未定义,将使用托管标识。 |
str |
无 |
GRAPHRAG_EMBEDDING_API_BASE |
对于 AOAI(使用回退) |
API 基准 URL。 |
str |
无 |
GRAPHRAG_EMBEDDING_API_VERSION |
对于 AOAI(使用回退) |
用于嵌入客户端的 AOAI API 版本。 |
str |
无 |
GRAPHRAG_EMBEDDING_API_ORGANIZATION |
对于 AOAI(使用回退) |
用于嵌入客户端的 AOAI 组织。 |
str |
无 |
GRAPHRAG_EMBEDDING_API_PROXY |
|
用于嵌入客户端的 AOAI 代理。 |
str |
无 |
GRAPHRAG_EMBEDDING_MODEL |
|
用于嵌入客户端的模型。 |
str |
text-embedding-3-small |
GRAPHRAG_EMBEDDING_BATCH_SIZE |
|
一次嵌入的文本数。 (Azure 限制为 16) |
int |
16 |
GRAPHRAG_EMBEDDING_BATCH_MAX_TOKENS |
|
每个批次的最大令牌数 (Azure 限制为 8191) |
int |
8191 |
GRAPHRAG_EMBEDDING_TARGET |
|
要嵌入的目标字段。 可以是 required 或 all 。 |
str |
required |
GRAPHRAG_EMBEDDING_THREAD_COUNT |
|
用于嵌入并行处理的线程数。 |
int |
|
GRAPHRAG_EMBEDDING_THREAD_STAGGER |
|
启动每个嵌入线程之间等待的时间(以秒为单位)。 |
float |
50 |
GRAPHRAG_EMBEDDING_CONCURRENT_REQUESTS |
|
允许用于嵌入客户端的并发请求数。 |
int |
25 |
GRAPHRAG_EMBEDDING_TOKENS_PER_MINUTE |
|
允许用于嵌入客户端的每分钟令牌数。 0 = 绕过 |
int |
0 |
GRAPHRAG_EMBEDDING_REQUESTS_PER_MINUTE |
|
允许用于嵌入客户端的每分钟请求数。 0 = 绕过 |
int |
0 |
GRAPHRAG_EMBEDDING_MAX_RETRIES |
|
请求失败时尝试的最大重试次数。 |
int |
10 |
GRAPHRAG_EMBEDDING_MAX_RETRY_WAIT |
|
重试之间等待的最大秒数。 |
int |
10 |
GRAPHRAG_EMBEDDING_SLEEP_ON_RATE_LIMIT_RECOMMENDATION |
|
是否在速率限制建议上休眠。(仅限 Azure) |
bool |
True |
这些设置控制管道使用的数据输入。 任何具有回退的设置都将使用基本 LLM 设置(如果可用)。
纯文本输入数据 (GRAPHRAG_INPUT_FILE_TYPE
=text)
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_INPUT_FILE_PATTERN |
从输入目录读取输入文件时使用的文件模式正则表达式。 |
str |
可选 |
.*\.txt$ |
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_INPUT_TYPE |
读取文件时使用的输入存储类型。(file 或 blob ) |
str |
可选 |
file |
GRAPHRAG_INPUT_FILE_PATTERN |
从输入目录读取输入文件时使用的文件模式正则表达式。 |
str |
可选 |
.*\.txt$ |
GRAPHRAG_INPUT_TEXT_COLUMN |
读取 CSV 输入文件时使用的“text”列。 |
str |
可选 |
text |
GRAPHRAG_INPUT_METADATA |
要作为 JSON 合并到元数据列中的 CSV 列的列表(以逗号分隔)。 |
str |
可选 |
无 |
GRAPHRAG_INPUT_TITLE_COLUMN |
读取 CSV 输入文件时使用的“title”列。 |
str |
可选 |
title |
GRAPHRAG_INPUT_STORAGE_ACCOUNT_BLOB_URL |
在 blob 模式下并使用托管标识时使用的 Azure 存储 blob 终结点。 将采用 https://<storage_account_name>.blob.core.windows.net 格式 |
str |
可选 |
无 |
GRAPHRAG_INPUT_CONNECTION_STRING |
从 Azure Blob Storage 读取 CSV 输入文件时使用的连接字符串。 |
str |
可选 |
无 |
GRAPHRAG_INPUT_CONTAINER_NAME |
从 Azure Blob Storage 读取 CSV 输入文件时使用的容器名称。 |
str |
可选 |
无 |
GRAPHRAG_INPUT_BASE_DIR |
从中读取输入文件的基本目录。 |
str |
可选 |
无 |
数据映射设置
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_INPUT_FILE_TYPE |
输入数据的类型,csv 或 text |
str |
可选 |
text |
GRAPHRAG_INPUT_ENCODING |
读取 CSV/文本输入文件时应用的编码。 |
str |
可选 |
utf-8 |
数据分块
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_CHUNK_SIZE |
文本块分析窗口的块大小(以令牌为单位)。 |
str |
可选 |
1200 |
GRAPHRAG_CHUNK_OVERLAP |
文本块分析窗口的块重叠(以令牌为单位)。 |
str |
可选 |
100 |
GRAPHRAG_CHUNK_BY_COLUMNS |
执行 TextUnit 分块时要分组的文档属性的逗号分隔列表。 |
str |
可选 |
id |
GRAPHRAG_CHUNK_ENCODING_MODEL |
用于分块的编码模型。 |
str |
可选 |
顶级编码模型。 |
提示覆盖
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_ENTITY_EXTRACTION_PROMPT_FILE |
实体提取提示模板文本文件的路径(相对于根目录)。 |
str |
可选 |
无 |
GRAPHRAG_ENTITY_EXTRACTION_MAX_GLEANINGS |
在循环中提取实体时,要调用的最大重驱动(收集)次数。 |
int |
可选 |
1 |
GRAPHRAG_ENTITY_EXTRACTION_ENTITY_TYPES |
要提取的实体类型的逗号分隔列表。 |
str |
可选 |
organization,person,event,geo |
GRAPHRAG_ENTITY_EXTRACTION_ENCODING_MODEL |
用于实体提取的编码模型。 |
str |
可选 |
顶级编码模型。 |
GRAPHRAG_SUMMARIZE_DESCRIPTIONS_PROMPT_FILE |
描述摘要提示模板文本文件的路径(相对于根目录)。 |
str |
可选 |
无 |
GRAPHRAG_SUMMARIZE_DESCRIPTIONS_MAX_LENGTH |
每次描述摘要生成令牌的最大数量。 |
int |
可选 |
500 |
GRAPHRAG_CLAIM_EXTRACTION_ENABLED |
是否为此管道启用声明提取。 |
bool |
可选 |
False |
GRAPHRAG_CLAIM_EXTRACTION_DESCRIPTION |
要使用的 claim_description 提示参数。 |
string |
可选 |
"任何可能与威胁分析相关的声明或事实。" |
GRAPHRAG_CLAIM_EXTRACTION_PROMPT_FILE |
要使用的声明提取提示。 |
string |
可选 |
无 |
GRAPHRAG_CLAIM_EXTRACTION_MAX_GLEANINGS |
在循环中提取声明时,要调用的最大重驱动(收集)次数。 |
int |
可选 |
1 |
GRAPHRAG_CLAIM_EXTRACTION_ENCODING_MODEL |
用于声明提取的编码模型。 |
str |
可选 |
顶层编码模型 |
GRAPHRAG_COMMUNITY_REPORTS_PROMPT_FILE |
要使用的社区报告提取提示。 |
string |
可选 |
无 |
GRAPHRAG_COMMUNITY_REPORTS_MAX_LENGTH |
每次社区报告生成令牌的最大数量。 |
int |
可选 |
1500 |
存储
本节控制管道用于导出输出表的存储机制。
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_STORAGE_TYPE |
要使用的存储类型。选项包括 file 、memory 或 blob |
str |
可选 |
file |
GRAPHRAG_STORAGE_STORAGE_ACCOUNT_BLOB_URL |
在 blob 模式下并使用托管标识时使用的 Azure 存储 blob 终结点。 将采用 https://<storage_account_name>.blob.core.windows.net 格式 |
str |
可选 |
无 |
GRAPHRAG_STORAGE_CONNECTION_STRING |
在 blob 模式下使用的 Azure 存储连接字符串。 |
str |
可选 |
无 |
GRAPHRAG_STORAGE_CONTAINER_NAME |
在 blob 模式下使用的 Azure 存储容器名称。 |
str |
可选 |
无 |
GRAPHRAG_STORAGE_BASE_DIR |
数据输出的基本路径。 |
str |
可选 |
无 |
缓存
本节控制管道使用的缓存机制。 用于缓存 LLM 调用结果。
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_CACHE_TYPE |
要使用的缓存类型。选项包括 file 、memory 、none 或 blob |
str |
可选 |
file |
GRAPHRAG_CACHE_STORAGE_ACCOUNT_BLOB_URL |
在 blob 模式下并使用托管标识时使用的 Azure 存储 blob 终结点。 将采用 https://<storage_account_name>.blob.core.windows.net 格式 |
str |
可选 |
无 |
GRAPHRAG_CACHE_CONNECTION_STRING |
在 blob 模式下使用的 Azure 存储连接字符串。 |
str |
可选 |
无 |
GRAPHRAG_CACHE_CONTAINER_NAME |
在 blob 模式下使用的 Azure 存储容器名称。 |
str |
可选 |
无 |
GRAPHRAG_CACHE_BASE_DIR |
缓存文件的基本路径。 |
str |
可选 |
无 |
报告
本节控制管道使用的报告机制,用于常见事件和错误消息。 默认是将报告写入输出目录中的文件。 但是,您也可以选择将报告写入控制台或 Azure Blob 存储容器。
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_REPORTING_TYPE |
要使用的报告器类型。选项包括 file 、console 或 blob |
str |
可选 |
file |
GRAPHRAG_REPORTING_STORAGE_ACCOUNT_BLOB_URL |
在 blob 模式下并使用托管标识时使用的 Azure 存储 blob 终结点。 将采用 https://<storage_account_name>.blob.core.windows.net 格式 |
str |
可选 |
无 |
GRAPHRAG_REPORTING_CONNECTION_STRING |
在 blob 模式下使用的 Azure 存储连接字符串。 |
str |
可选 |
无 |
GRAPHRAG_REPORTING_CONTAINER_NAME |
在 blob 模式下使用的 Azure 存储容器名称。 |
str |
可选 |
无 |
GRAPHRAG_REPORTING_BASE_DIR |
报告输出的基本路径。 |
str |
可选 |
无 |
Node2Vec 参数
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_NODE2VEC_ENABLED |
是否启用 Node2Vec |
bool |
可选 |
False |
GRAPHRAG_NODE2VEC_NUM_WALKS |
要执行的 Node2Vec 漫步次数 |
int |
可选 |
10 |
GRAPHRAG_NODE2VEC_WALK_LENGTH |
Node2Vec 漫步长度 |
int |
可选 |
40 |
GRAPHRAG_NODE2VEC_WINDOW_SIZE |
Node2Vec 窗口大小 |
int |
可选 |
2 |
GRAPHRAG_NODE2VEC_ITERATIONS |
运行 node2vec 的迭代次数 |
int |
可选 |
3 |
GRAPHRAG_NODE2VEC_RANDOM_SEED |
用于 node2vec 的随机种子 |
int |
可选 |
597832 |
数据快照
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_SNAPSHOT_EMBEDDINGS |
是否启用嵌入快照。 |
bool |
可选 |
False |
GRAPHRAG_SNAPSHOT_GRAPHML |
是否启用 GraphML 快照。 |
bool |
可选 |
False |
GRAPHRAG_SNAPSHOT_RAW_ENTITIES |
是否启用原始实体快照。 |
bool |
可选 |
False |
GRAPHRAG_SNAPSHOT_TOP_LEVEL_NODES |
是否启用顶层节点快照。 |
bool |
可选 |
False |
GRAPHRAG_SNAPSHOT_TRANSIENT |
是否启用瞬态表快照。 |
bool |
可选 |
False |
杂项设置
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_ASYNC_MODE |
要使用的异步模式。 可以是 asyncio 或 threaded 。 |
str |
可选 |
asyncio |
GRAPHRAG_ENCODING_MODEL |
文本编码模型,用于 tiktoken 中对文本进行编码。 |
str |
可选 |
cl100k_base |
GRAPHRAG_MAX_CLUSTER_SIZE |
单个 Leiden 集群中包含的实体最大数量。 |
int |
可选 |
10 |
GRAPHRAG_UMAP_ENABLED |
是否启用 UMAP 布局 |
bool |
可选 |
False |