
检索增强生成 (RAG) 是一种强大的技术,通过将语言模型与外部知识库相结合来增强 语言模型[1] 。RAG 解决了 模型的一个关键限制[2] :模型依赖于固定的训练数据集,这可能导致信息过时或不完整。当给定查询时,RAG 系统首先在知识库中搜索相关信息。然后,系统将检索到的信息合并到模型的提示中。该模型使用提供的上下文生成对查询的响应。通过弥合庞大的语言模型和动态、有针对性的信息检索之间的差距,RAG 是一种构建功能更强大、更可靠的人工智能系统的强大技术。

dify-and-fastgpt-for-RAG[3]文章中有简单说明,你也可以查看其他资料比如Retrieval augmented generation...[4],这里不再赘述。
ArcGIS Pro AI 助手开发日志 #2
在上一篇文章里,我们立下了一个 Flag,要从零开始打造一个专属的 ArcGIS Pro AI 助手。
别担心!今天这篇,就是专门为零基础、完全不会编程的你准备的。
我们的目标很简单:不动一行代码,只用鼠标点一点,就把那些枯燥的 ArcGIS 帮助文档,变成一个能与你对话的 AI 知识库。让你亲身体验,原来 AI 离我们这么近!
简单说,有三大好处:
话不多说,我们来看看今天的主角:dify。

Dify 就是一套“活页本工具”,让你自由组装和定制自己的 AI 应用。最棒的是,它是开源的,你可以像我一样部署在自己的服务器上,数据安全有保障。
C:\Program Files\ArcGIS\Pro\Resources\Help或者C:\Users\<your_username>\AppData\Local\Programs\ArcGIS\Pro\Resources\Help 具体路径可能因安装配置而异。中文版会在zh-CN子文件夹中。


这里的嵌入模型,根据你的情况选择,国内可以使用千问的通用文本向量-v4[6]。



你是一个地理信息专家,专注于ArcGIS Pro和arcpy相关问题。
你将使用以下内容作为你所学习的知识,放在<context></context> XML标签内。
<context>
这里是上下文的变量 <<< 需要修改
</context>
请按照以下步骤完成任务:
1. 阅读用户的问题。
2. 你始终需要寻找知识库中内容来回答用户,基于这些内容用与用户相同的语言进行详细、准确的回答。
3. 如果你不知道答案,直接告诉用户你不知道。
4. 如果用户的问题比较模糊或不明确,请礼貌地要求用户澄清问题。
5. 回答时保持简明、专业,并确保输出不包含任何xml标签。


查看工作流的知识库检索情况,很明显,我们通过父子检索完整的把缓冲区的整个文档喂给了大模型:

运行,在新窗口中对话,你也可以把这个链接发给你的朋友,他们也能和你做的这个 ArcGIS 问答机器人聊天了!体验总结:Dify 的强大在于“创造”和“分享”。它让你从一个 AI 的“使用者”,变成了 AI 应用的“创造者”。对于我们这种喜欢折腾的人来说,简直是神器。
Coze 就是一座设备齐全、琳琅满目的现代化“机器人生产工厂”,而且目前还是提供免费额度。
整体跟 dify 差不多。
coze.cn,国际是coze.com),登录账号。体验总结:Coze 的完成度和生态集成度高得惊人。它不仅是一个知识库工具,更是一个完整的 Bot 开发和分发平台,可玩性极高。
特性 | Dify | Coze (扣子) |
|---|---|---|
上手难度 | ⭐⭐ (较低) | ⭐⭐ (较低) |
定制能力 | ⭐⭐⭐⭐ (高) | ⭐⭐⭐⭐ (高) |
分享与集成 | ⭐⭐⭐ (可分享网页) | ⭐⭐⭐⭐⭐ (极强) |
成本 | 服务器成本 + API 按量付费 | 每天提供免费额度 |
数据隐私 | 自己掌握 | 托管于平台 |
一句话建议 | 想自己掌控数据、爱折腾的开发者 | 想快速体验完整功能、并发布到多平台的用户 |
除此之外还有阿里百炼[7]、腾讯等等国内平台,也都是低代码开发平台,都很不错。
我们体验了几款强大的工具,成功地在不编写代码的情况下,创建了属于我们自己的 ArcGIS 问答机器人。从 Dify、Langflow 到国内的阿里百炼,这些平台都证明了 AI 应用的门槛,远比我们想象的要低。
通过这次“快餐式”的体验,我们已经看到了 AI 知识库的巨大潜力。但你可能也发现了,这些平台虽然方便,但在处理专业的 GIS 问题时,有时会答得不够精准。
也许你会想:我们能不能在平台内部把它调得更好?当然可以!
比如在 Dify 中,我们完全可以构建一个更复杂的工作流:可以利用ReAct Agent让 AI 对自己的回答进行反思和修正;也可以在知识检索前加入一个查询优化节点;甚至可以让工作流针对一个问题,生成多个子问题去并行检索,最后再汇总信息进行回答。也可以维护知识库文档的元数据,检索的时候用来过滤文档。dify 也可以做很复杂的工作流:

对于 90%的用户和场景,Dify 这类低代码平台就是最佳解决方案。
它的上限远比看起来要高。通过精细化的知识运营和高级的工作流编排,其性能足以满足绝大多数专业需求。对结果导向的人来说,这应是首选工具。
所以,Dify 这类低代码平台能走多远?它能帮我们复刻出官方的 AI 助手吗?
答案是:能,但只能完成一半。
让我们回顾一下官方 AI 助手的核心能力:
通过精心设计 Dify 工作流,我们可以非常出色地实现前两个目标。让它成为一个博学的 ArcGIS 专家和数据查询大师,是完全可行的。对于许多用户来说,这已经是一个能极大提升生产力的工具了。
我们项目的终极目标,是实现意图驱动操作 (Intent-Driven Actions)。
我们希望 AI 能听懂“对学校做 500 米缓冲”这样的话,然后亲自动手去操作软件。这意味着,AI 必须能执行ArcPy代码。
也许你会想到 Dify 强大的代码节点功能。没错,它可以在云端沙箱里执行 Python,但那个沙箱访问到你本地 ArcGIS Pro 很困难,虽然可以修改源码实现安装arcpy,但是已经偏离低代码的初衷了,操作起来比纯代码**还要痛苦一百倍**。
要让 AI 拥有能操作本地软件的“双手”,唯一的办法就是把 AI 的“指挥中心”建在本地。
这就是我们必须转向LangChain的原因。作为一个代码库,它允许我们在自己的电脑上构建和运行 AI 应用。只有在这里,我们的程序才能跨过云与本地的鸿沟,真正地调用ArcPy,将用户的意图,转化为对 ArcGIS Pro 的实际操作。
在下一篇文章中,我们将着手搭建这座连接 AI 与 ArcGIS Pro 的桥梁,为我们的 AI 助手装上那双至关重要的“手”。
欢迎在评论区里疯狂吐槽你在 ArcGIS 里遇到的烦心事,或者聊聊你对这个系列、对哪个技术方向最感兴趣。你们的反馈会直接影响我后续内容的侧重点!
参考资料
[1]
语言模型: https://python.langchain.com/docs/concepts/chat_models/
[2]
模型的一个关键限制: https://www.glean.com/blog/how-to-build-an-ai-assistant-for-the-enterprise
[3]
dify-and-fastgpt-for-RAG: /blog/ai/dify-and-fastgpt-for-RAG
[4]
Retrieval augmented generation...: https://python.langchain.com/docs/concepts/rag/
[5]
dify cloud: https://cloud.dify.ai/explore/apps
[6]
千问的通用文本向量-v4: https://bailian.console.aliyun.com/?tab=model#/model-market/detail/text-embedding-v4
[7]
阿里百炼: https://bailian.console.aliyun.com/?tab=home#/home
[8]
个人网站: https://www.renhai.online/
[9]
我的知乎: https://www.zhihu.com/people/Ing_ideas
[10]
我的博客: https://www.renhai.online/blog
[11]
我的 GITHUB: https://github.com/renhai-lab
[12]
我的 GITEE: https://gitee.com/renhai-lab
[13]
RSS: https://www.renhai.online/rss.xml