默认配置模式(使用环境变量)
从1.3版本开始,GraphRAG不再支持完整的预构建环境变量。相反,我们支持在settings.yml文件中进行变量替换,因此您可以指定任何您喜欢的环境变量。
我们唯一预期的标准环境变量是GRAPHRAG_API_KEY
,它已包含在默认的settings.yml中。如果您已经在使用许多之前的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 |
None |
GRAPHRAG_API_BASE |
AOAI必需 |
API基础URL |
str |
None |
GRAPHRAG_API_VERSION |
AOAI必需 |
AOAI API版本 |
str |
None |
GRAPHRAG_API_ORGANIZATION |
|
AOAI组织 |
str |
None |
GRAPHRAG_API_PROXY |
|
AOAI代理 |
str |
None |
### 文本生成设置 |
|
|
|
|
这些设置控制流水线使用的文本生成模型。任何具有回退的设置将使用基础LLM设置(如果可用)。
参数 |
是否必需? |
描述 |
类型 |
默认值 |
GRAPHRAG_LLM_TYPE |
AOAI必需 |
LLM操作类型。可以是openai_chat 或azure_openai_chat |
str |
openai_chat |
GRAPHRAG_LLM_DEPLOYMENT_NAME |
AOAI必需 |
AOAI模型部署名称 |
str |
None |
GRAPHRAG_LLM_API_KEY |
是(使用回退) |
API密钥。如果使用AOAI时未定义,将使用托管身份 |
str |
None |
GRAPHRAG_LLM_API_BASE |
AOAI必需(使用回退) |
API基础URL |
str |
None |
GRAPHRAG_LLM_API_VERSION |
AOAI必需(使用回退) |
AOAI API版本 |
str |
None |
GRAPHRAG_LLM_API_ORGANIZATION |
AOAI必需(使用回退) |
AOAI组织 |
str |
None |
GRAPHRAG_LLM_API_PROXY |
|
AOAI代理 |
str |
None |
GRAPHRAG_LLM_MODEL |
|
LLM模型 |
str |
gpt-4-turbo-preview |
GRAPHRAG_LLM_MAX_TOKENS |
|
最大token数 |
int |
4000 |
GRAPHRAG_LLM_REQUEST_TIMEOUT |
|
等待聊天客户端响应的最大秒数 |
int |
180 |
GRAPHRAG_LLM_MODEL_SUPPORTS_JSON |
|
指示给定模型是否支持JSON输出模式。True 表示启用 |
str |
None |
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客户端每分钟的token数。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 |
|
生成时使用的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 |
None |
GRAPHRAG_EMBEDDING_API_KEY |
是(使用回退) |
嵌入客户端使用的API密钥。如果使用AOAI时未定义,将使用托管身份 |
str |
None |
GRAPHRAG_EMBEDDING_API_BASE |
AOAI必需(使用回退) |
API基础URL |
str |
None |
GRAPHRAG_EMBEDDING_API_VERSION |
AOAI必需(使用回退) |
嵌入客户端使用的AOAI API版本 |
str |
None |
GRAPHRAG_EMBEDDING_API_ORGANIZATION |
AOAI必需(使用回退) |
嵌入客户端使用的AOAI组织 |
str |
None |
GRAPHRAG_EMBEDDING_API_PROXY |
|
嵌入客户端使用的AOAI代理 |
str |
None |
GRAPHRAG_EMBEDDING_MODEL |
|
嵌入客户端使用的模型 |
str |
text-embedding-3-small |
GRAPHRAG_EMBEDDING_BATCH_SIZE |
|
一次嵌入的文本数量。(Azure限制为16) |
int |
16 |
GRAPHRAG_EMBEDDING_BATCH_MAX_TOKENS |
|
每批的最大token数(Azure限制为8191) |
int |
8191 |
GRAPHRAG_EMBEDDING_TARGET |
|
要嵌入的目标字段。可以是required 或all |
str |
required |
### 输入设置 |
|
|
|
|
这些设置控制流水线使用的数据输入。任何具有回退的设置将使用基础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 |
以逗号分隔的CSV列列表,将作为JSON包含在元数据列中 |
str |
可选 |
None |
GRAPHRAG_INPUT_TITLE_COLUMN |
读取CSV输入文件时使用的'title'列 |
str |
可选 |
title |
GRAPHRAG_INPUT_STORAGE_ACCOUNT_BLOB_URL |
在blob 模式和使用托管身份时使用的Azure Storage blob端点。格式为https://<storage_account_name>.blob.core.windows.net |
str |
可选 |
None |
GRAPHRAG_INPUT_CONNECTION_STRING |
从Azure Blob Storage读取CSV输入文件时使用的连接字符串 |
str |
可选 |
None |
GRAPHRAG_INPUT_CONTAINER_NAME |
从Azure Blob Storage读取CSV输入文件时使用的容器名称 |
str |
可选 |
None |
GRAPHRAG_INPUT_BASE_DIR |
读取输入文件的基础目录 |
str |
可选 |
None |
数据映射设置
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_INPUT_FILE_TYPE |
输入数据类型,csv 或text |
str |
可选 |
text |
GRAPHRAG_INPUT_ENCODING |
读取CSV/文本输入文件时应用的编码 |
str |
可选 |
utf-8 |
数据分块
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_CHUNK_SIZE |
文本块分析窗口的token大小 |
str |
可选 |
1200 |
GRAPHRAG_CHUNK_OVERLAP |
文本块分析窗口的重叠token数 |
str |
可选 |
100 |
GRAPHRAG_CHUNK_BY_COLUMNS |
执行TextUnit分块时用于分组的文档属性逗号分隔列表 |
str |
可选 |
id |
GRAPHRAG_CHUNK_ENCODING_MODEL |
用于分块的编码模型 |
str |
可选 |
顶级编码模型 |
提示覆盖
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_ENTITY_EXTRACTION_PROMPT_FILE |
实体提取提示模板文本文件的路径(相对于根目录) |
str |
可选 |
None |
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 |
可选 |
None |
GRAPHRAG_SUMMARIZE_DESCRIPTIONS_MAX_LENGTH |
每个描述摘要生成的最大token数 |
int |
可选 |
500 |
GRAPHRAG_CLAIM_EXTRACTION_ENABLED |
是否为此流水线启用声明提取 |
bool |
可选 |
False |
GRAPHRAG_CLAIM_EXTRACTION_DESCRIPTION |
使用的claim_description提示参数 |
string |
可选 |
"Any claims or facts that could be relevant to threat analysis." |
GRAPHRAG_CLAIM_EXTRACTION_PROMPT_FILE |
使用的声明提取提示 |
string |
可选 |
None |
GRAPHRAG_CLAIM_EXTRACTION_MAX_GLEANINGS |
在循环中提取声明时调用的最大重驱动(收集)次数 |
int |
可选 |
1 |
GRAPHRAG_CLAIM_EXTRACTION_ENCODING_MODEL |
用于声明提取的编码模型 |
str |
可选 |
顶级编码模型 |
GRAPHRAG_COMMUNITY_REPORTS_PROMPT_FILE |
使用的社区报告提取提示 |
string |
可选 |
None |
GRAPHRAG_COMMUNITY_REPORTS_MAX_LENGTH |
每个社区报告生成的最大token数 |
int |
可选 |
1500 |
### 存储 |
|
|
|
|
这部分控制流水线用于导出输出表的存储机制。
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_STORAGE_TYPE |
使用的存储类型。选项为file 、memory 或blob |
str |
可选 |
file |
GRAPHRAG_STORAGE_STORAGE_ACCOUNT_BLOB_URL |
在blob 模式和使用托管身份时使用的Azure Storage blob端点。格式为https://<storage_account_name>.blob.core.windows.net |
str |
可选 |
None |
GRAPHRAG_STORAGE_CONNECTION_STRING |
在blob 模式时使用的Azure Storage连接字符串 |
str |
可选 |
None |
GRAPHRAG_STORAGE_CONTAINER_NAME |
在blob 模式时使用的Azure Storage容器名称 |
str |
可选 |
None |
GRAPHRAG_STORAGE_BASE_DIR |
数据输出的基础路径 |
str |
可选 |
None |
缓存
这部分控制流水线使用的缓存机制。用于缓存LLM调用结果。
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_CACHE_TYPE |
使用的缓存类型。选项为file 、memory 、none 或blob |
str |
可选 |
file |
GRAPHRAG_CACHE_STORAGE_ACCOUNT_BLOB_URL |
在blob 模式和使用托管身份时使用的Azure Storage blob端点。格式为https://<storage_account_name>.blob.core.windows.net |
str |
可选 |
None |
GRAPHRAG_CACHE_CONNECTION_STRING |
在blob 模式时使用的Azure Storage连接字符串 |
str |
可选 |
None |
GRAPHRAG_CACHE_CONTAINER_NAME |
在blob 模式时使用的Azure Storage容器名称 |
str |
可选 |
None |
GRAPHRAG_CACHE_BASE_DIR |
缓存文件的基础路径 |
str |
可选 |
None |
报告
这部分控制流水线用于常见事件和错误消息的报告机制。默认是将报告写入输出目录中的文件。但您也可以选择将报告写入控制台或Azure Blob Storage容器。
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_REPORTING_TYPE |
使用的报告类型。选项为file 、console 或blob |
str |
可选 |
file |
GRAPHRAG_REPORTING_STORAGE_ACCOUNT_BLOB_URL |
在blob 模式和使用托管身份时使用的Azure Storage blob端点。格式为https://<storage_account_name>.blob.core.windows.net |
str |
可选 |
None |
GRAPHRAG_REPORTING_CONNECTION_STRING |
在blob 模式时使用的Azure Storage连接字符串 |
str |
可选 |
None |
GRAPHRAG_REPORTING_CONTAINER_NAME |
在blob 模式时使用的Azure Storage容器名称 |
str |
可选 |
None |
GRAPHRAG_REPORTING_BASE_DIR |
报告输出的基础路径 |
str |
可选 |
None |
Node2Vec参数
参数 |
描述 |
类型 |
必需或可选 |
默认 |
GRAPHRAG_NODE2VEC_ENABLED |
是否启用Node2Vec |
bool |
可选 |
False |
GRAPHRAG_NODE2VEC_NUM_WALKS |
Node2Vec执行的walk次数 |
int |
可选 |
10 |
GRAPHRAG_NODE2VEC_WALK_LENGTH |
Node2Vec的walk长度 |
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 |