news 2026/9/11 4:53:56

GraphRAG 如何配置 Azure OpenAI 作为聊天与嵌入模型后端?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GraphRAG 如何配置 Azure OpenAI 作为聊天与嵌入模型后端?

GraphRAG 如何配置 Azure OpenAI 作为聊天与嵌入模型后端?

【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag

如果你刚在本地装好 GraphRAG,准备用它对文档建索引并回答文档相关问题,但你的模型资源在 Azure OpenAI 上而不是 OpenAI 直连,那么需要把settings.yaml中的默认聊天模型和嵌入模型两个端点改造成 Azure 配置。完成后的目标是:graphrag index能跑完并生成./output结果,graphrag query能基于索引返回答案。

以下内容依据仓库文档 docs/get_started.md、docs/config/models.md 和 docs/config/yaml.md 整理,适用于 GraphRAG 首次安装后切换到 Azure OpenAI 后端的场景。

准备条件

  • Python 3.10–3.12。
  • 一个可用的 Azure OpenAI 资源,且已经在其中部署了你要使用的聊天模型和嵌入模型。你需要拿到:部署名(deployment name)、实例的 API 地址(形如https://<instance>.openai.azure.com)、API key(或改用托管身份),以及 API 版本。
  • 注意官方提醒:GraphRAG 会消耗较多 LLM 资源,建议先用教程级的小数据集跑通流程,再考虑大的索引任务。

安装并初始化工作区

创建一个独立的项目目录和虚拟环境:

mkdir graphrag_quickstart cd graphrag_quickstart python -m venv .venv

激活虚拟环境(Unix/MacOS 用source .venv/bin/activate,Windows 用.venv\Scripts\activate),然后安装:

python -m pip install graphrag

在项目目录内运行初始化命令:

graphrag init

命令会提示你选择默认聊天模型和嵌入模型,随后在当前目录生成三样东西:

  • .env:包含运行管线所需的环境变量,初始内容为GRAPHRAG_API_KEY=<API_KEY>
  • settings.yaml:管线配置文件,模型端点就在其中;
  • input目录:放置待处理的文本文件。

初始化细节可参考 docs/config/init.md。

配置 .env 中的 Azure API Key

打开.env,把GRAPHRAG_API_KEY的值替换为你的 Azure OpenAI API key(使用托管身份的方案除外,见文末可选分支)。

修改 settings.yaml:聊天与嵌入两个模型端点

settings.yaml中定位模型配置区(文档建议直接搜索models:根配置)。该文件中有两个端点小节:默认聊天端点和默认嵌入端点,两处都要改成 Azure 配置。聊天模型配置的写法如下(摘自 docs/get_started.md):

type: chat model_provider: azure model: gpt-4.1 azure_deployment_name: <AZURE_DEPLOYMENT_NAME> api_base: https://<instance>.openai.azure.com api_version: 2024-02-15-preview # You can customize this for other versions

代码块中的两个占位符需要你按自己的资源替换:

  • <AZURE_DEPLOYMENT_NAME>:你在 Azure 上该聊天模型的部署名;
  • <instance>:你的 Azure OpenAI 实例名。

api_version文档说明可按需改成其他版本。各字段的完整含义见 docs/config/yaml.md:

  • model_provider:模型提供方,Azure 环境填azure
  • api_base:API 基础地址;
  • api_version:API 版本;
  • azure_deployment_name:Azure 上的部署名——如果你的部署名与模型名一致,这一项可以省略;
  • auth_method:取值api_key(默认)或azure_managed_identity

嵌入模型端点做同样的事:在该小节把model_provider改为azure,并配上你的嵌入模型部署名、api_baseapi_version。初始化生成的配置中两个端点位于completion_models:embedding_models:两个小节下,api_key默认引用${GRAPHRAG_API_KEY},与.env中的变量对应。

可选分支:使用托管身份认证

如果你的环境用 Azure 托管身份而不是 API key,按文档修改模型配置中的认证方式,并删除api_key行:

auth_method: azure_managed_identity # Default auth_method is api_key

同时需要先用az login登录,并选择你的端点所在的订阅。此分支下.env中的 key 不再是认证依据。

运行索引并验证配置生效

input/目录放一份测试文本(文档给出的示例是从 Project Gutenberg 下载《A Christmas Carol》):

curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt -o ./input/book.txt

执行索引:

graphrag index

该过程通常需要几分钟。管线跑完后的判断标准是:当前目录下出现./output文件夹,里面是一组 parquet 文件(如documents.parquetentities.parquettext_units.parquet等)。

索引成功后,用查询命令做端到端验证。Global search 问一个整体性问题:

graphrag query "What are the top themes in this story?"

Local search 问更具体的问题:

graphrag query \ "Who is Scrooge and what are his main relationships?" \ --method local

能返回基于文档内容的回答,说明聊天端点和嵌入端点都正确指向了你的 Azure OpenAI 资源。

限制与注意事项

  • api_version示例中的2024-02-15-preview只是文档示例值,可按你的资源支持的版本自定义。
  • 文档同时说明:GraphRAG 用 OpenAI 系列模型构建和测试得最充分;非 OpenAI 模型通过 LiteLLM 接入,且所选模型必须支持按 JSON schema 返回结构化输出。这一点在选择 Azure 上的具体模型部署时需要注意,详见 docs/config/models.md。
  • 若索引或查询阶段报错,先回到settings.yaml的两个模型小节核对:api_baseapi_version、部署名,以及认证方式与.env/托管身份是否一致。CLI 各项子命令说明见 docs/cli.md。

【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 4:51:13

DeepSeek Harness本地部署实战:从Docker到Ollama的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:47:52

Windows内核设备节点枚举与PCI设备初始化流程解析

1. 设备节点枚举完成后的内核处理流程解析当Windows内核完成某个设备节点的枚举&#xff08;DeviceNodeEnumerateCompletion&#xff09;后&#xff0c;系统会立即开始处理该节点的子设备。以PCI总线为例&#xff0c;第一个被调用的关键函数是nt!PiProcessNewDeviceNode。这个机…

作者头像 李华