不动一行代码,给ArcGIS Pro装上AI大脑(低代码实战篇)

不动一行代码,给ArcGIS Pro装上AI大脑(低代码实战篇)

Published on

目录:


前言

关于什么是RAG:

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

检索增强生成(RAG,Retrieval-Augmented Generation) 是一种创新技术,外部数据源的相关信息整合到语言模型的输出中,增强了语言模型的输出能力。

dify-and-fastgpt-for-RAG文章中有简单说明,你也可以查看其他资料比如Retrieval augmented generation...,这里不再赘述。


【ArcGIS Pro AI助手开发日志 #2】

在上一篇文章里,我们立下了一个Flag,要从零开始打造一个专属的ArcGIS Pro AI助手。很多朋友留言说对这个项目很感兴趣,但担心自己不会编程,玩不转。

别担心!今天这篇,就是专门为零基础、完全不会编程的你准备的。

我们的目标很简单:不动一行代码,只用鼠标点一点,就把那些枯燥的ArcGIS帮助文档,变成一个能与你对话的AI知识库。让你亲身体验,原来AI离我们这么近!

为什么我们要先玩“低代码”?

简单说,有三大好处:

  1. 快!几分钟搞定:能让你在几分钟内就看到成果,瞬间获得成就感。
  2. 省钱!几乎零成本:我们今天选的工具,基本都是免费的,你只需要有大模型的 API Key 就够了,甚至你可以在阿里百炼平台直接注册白嫖Qwen模型。
  3. 理解概念:它能帮你直观地理解一个AI应用是怎么工作的(上传知识 -> 处理知识 -> 对话),为你以后深入学习打下基础。

话不多说,我们来看看今天的主角:dify。

第一站:Dify - 你的开源AI应用

Dify就是一套“活页本工具”,让你自由组装和定制自己的AI应用。最棒的是,它是开源的,你可以像我一样部署在自己的服务器上,数据安全有保障。

  • 一句话总结:一个能让你“造”出自己AI应用并分享出去的开源平台。
  • 优点:开源,可私有化部署,定制能力强,支持团队协作。
  • 缺点:需要自己准备一台装了Docker的电脑和OpenAI 或者 Deepseek、Qwen API Key,对完全不懂技术的小白有那么一点点初始门槛(不过你跟着我之前的文章,问题不大)。

实战步骤:

  1. 登录你的Dify:打开你自己部署的 dify ,或者免去部署步骤,直接注册官方的云平台:dify cloud
  2. 创建知识库:在“知识库”菜单栏,点击“创建知识库”。
  3. 上传文档:在新创建的知识库里,点击“添加文档”,选择“文本文件上传”。把你的ArcGIS文档传上去。参考图中相关配置,Dify会自动处理分段和嵌入。你可以看到它处理的过程。

    默认情况下,ArcGIS Pro 的离线帮助文档可能位于安装目录下的某个子文件夹,例如: C:\Program Files\ArcGIS\Pro\Resources\Help或者C:\Users\<your_username>\AppData\Local\Programs\ArcGIS\Pro\Resources\Help 具体路径可能因安装配置而异。中文版会在zh-CN子文件夹中。 > > 这里的嵌入模型,根据你的情况选择,国内可以使用千问的通用文本向量-v4

  4. 创建应用:回到探索界面,选择从 知识库 + 聊天机器人 创建应用程序:
  5. 关联知识库:在工作流的“知识检索”界面,,把你刚刚创建的“ArcGIS知识库”关联进来。
  6. 编写提示词:
你是一个地理信息专家,专注于ArcGIS Pro和arcpy相关问题。

你将使用以下内容作为你所学习的知识,放在<context></context> XML标签内。

<context>

这里是上下文的变量 <<< 需要修改

</context>

请按照以下步骤完成任务:

1. 阅读用户的问题。

2. 你始终需要寻找知识库中内容来回答用户,基于这些内容用与用户相同的语言进行详细、准确的回答。

3. 如果你不知道答案,直接告诉用户你不知道。

4. 如果用户的问题比较模糊或不明确,请礼貌地要求用户澄清问题。

5. 回答时保持简明、专业,并确保输出不包含任何xml标签。
  1. 调试: 点击预览可以实时对话: 查看工作流的知识库检索情况,很明显,我们通过父子检索完整的把缓冲区的整个文档喂给了大模型:
  2. 发布与分享:你可以点击发布中的运行,在新窗口中对话,你也可以把这个链接发给你的朋友,他们也能和你做的这个ArcGIS问答机器人聊天了!

体验总结:Dify的强大在于“创造”和“分享”。它让你从一个AI的“使用者”,变成了AI应用的“创造者”。对于我们这种喜欢折腾的人来说,简直是神器。


第二站:Coze (扣子) - 功能全面的“机器人商店”

Coze就是一座设备齐全、琳琅满目的现代化“机器人生产工厂”,而且目前还是提供免费额度。

  • 一句话总结:一个免费、功能强大到不像话的,集创建、调试、发布于一体的Bot(机器人)开发平台。
  • 优点:功能超多(数据库、插件、工作流),能一键把你的机器人发布到微信公众号、豆包、飞书等平台,也能发布微网页,有更多符合国内的助手模板。
  • 缺点非开源(2025年7月27号开源了),数据和应用都托管在官方平台上。

实战步骤:

整体跟dify差不多。

  1. 访问官网:打开Coze官网(国内是coze.cn,国际是coze.com),登录账号。
  2. 创建Bot:点击“创建Bot”,给你的机器人起个名字和介绍。
  3. 配置知识库:在左侧的“技能”模块里,找到“知识库”,点击“创建”。然后把你的ArcGIS文档上传。
  4. 配置提示词和调试对话:上传完毕后,右侧的“预览与调试”窗口就是你的实时聊天界面。你可以不断和它对话,同时在左侧调整“人设与回复逻辑”里的提示词(Prompt),把它调教得更符合你的要求。
  5. 发布:当你满意后,点击右上角的“发布”按钮,就可以选择把它发布到哪个平台了。比如你可以直接关联到你的个人微信公众号上,让你的粉丝都能用上这个ArcGIS问答机器人。

体验总结:Coze的完成度和生态集成度高得惊人。它不仅是一个知识库工具,更是一个完整的Bot开发和分发平台,可玩性极高。

横向对比 & 我该怎么选?

特性DifyCoze (扣子)
上手难度⭐⭐ (较低)⭐⭐ (较低)
定制能力⭐⭐⭐⭐ (高)⭐⭐⭐⭐ (高)
分享与集成⭐⭐⭐ (可分享网页)⭐⭐⭐⭐⭐ (极强)
成本服务器成本 + API 按量付费每天提供免费额度
数据隐私自己掌握托管于平台或自己托管
一句话建议想自己掌控数据、爱折腾的开发者想快速体验完整功能、并发布到多平台的用户

除此之外还有阿里百炼、腾讯等等国内平台,也都是低代码开发平台,都很不错。

总结与下一步

我们体验了几款强大的工具,成功地在不编写代码的情况下,创建了属于我们自己的ArcGIS问答机器人。从Dify、Langflow到国内的阿里百炼,这些平台都证明了AI应用的门槛,远比我们想象的要低。

通过这次“快餐式”的体验,我们已经看到了AI知识库的巨大潜力。但你可能也发现了,这些平台虽然方便,但在处理专业的GIS问题时,有时会答得不够精准。

也许你会想:我们能不能在平台内部把它调得更好?当然可以!

比如在Dify中,我们完全可以构建一个更复杂的工作流:可以利用ReAct Agent让AI对自己的回答进行反思和修正;也可以在知识检索前加入一个查询优化节点;甚至可以让工作流针对一个问题,生成多个子问题去并行检索,最后再汇总信息进行回答。也可以维护知识库文档的元数据,检索的时候用来过滤文档。dify也可以做很复杂的工作流:

对于90%的用户和场景,Dify这类低代码平台就是最佳解决方案。

它的上限远比看起来要高。通过精细化的知识运营和高级的工作流编排,其性能足以满足绝大多数专业需求。对结果导向的人来说,这应是首选工具。

所以,Dify这类低代码平台能走多远?它能帮我们复刻出官方的AI助手吗?

答案是:能,但只能完成一半。

让我们回顾一下官方AI助手的核心能力:

  1. 智能问答 (Help) :基于文档回答问题。
  2. 数据查询 (Query) :将自然语言翻译成SQL。
  3. 意图驱动操作 (Intent-Driven Actions) :将自然语言翻译成可执行的ArcGIS操作。

通过精心设计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助手装上那双至关重要的“手”。