LinkTool(灵图)插件重构
| client | ||
| common | ||
| DarkImages | ||
| doc | ||
| host | ||
| Images | ||
| Properties | ||
| resource | ||
| server | ||
| ui | ||
| .gitignore | ||
| Config.daml | ||
| LinkToolAddin.csproj | ||
| LinkToolAddin.sln | ||
| LinkToolModule.cs | ||
| README.md | ||
LinkToolAddin(灵图插件)
介绍
灵图是一个将LLM运用MCP技术与ArcGIS Pro结合的插件,该插件实现以下功能:
- 以自然语言对话的形式接收用户输入的需求并与模型进行交互
- 根据需要调用ArcGIS Pro地理处理工具的API或者执行arcpy代码,实现对地理数据的处理,完成用户需求
- 将处理结果以自然语言的形式反馈给用户
开发协作
首次贡献前准备
克隆仓库
本项目为.NET 8.0开发,使用C#语言编写,使用Visual Studio 2022或Rider 2024及以上进行开发。
协作时需要先拉取主分支代码,通过以下命令进行拉取:
git clone xxx.git
开发环境配置
- 需要确保你电脑上已安装ArcGIS Pro 3.4.3及其SDK
- 修改
Properties/launchSettings.json中executablePath项的值为你电脑上ArcGIS Pro.exe的位置 - 确保电脑上已安装.NET SDK 8(注意版本一定是8,不能是9)
- 使用NuGet包管理器安装
Esri.ArcGISPro.Extensions30包(版本参考:3.4.1.55405) - 部分情况下可能还需要替换LinkToolAddin.csproj中的所有相关安装路径
- 点击运行进行测试,看是否能正常打开ArcGIS Pro和LinkTool插件
- 确认无误建议commit到本地的master分支以备后续使用(但请勿推送至远端)
- 修改McpServerList里面filesystem的白名单目录
创建分支
然后在本地创建一个新的分支进行开发,以功能或模块进行命名,请修改下面命令的branch_name为你要创建的分支名称:
git checkout -b branch_name
开发流程
完成开发后,使用以下命令将代码提交到本地分支,请修改下面命令的commit message为你的提交信息,简要说明本次提交修改了什么:
git add .
git commit -m "your commit message"
然后将本地分支推送到远程分支,请修改下面命令的branch_name为你要推送的分支名称:
git push origin branch_name
提交PR(合并请求)
在Gitea网站上,进入到你的分支页面,点击“创建拉取请求”按钮,填写PR的标题和描述,详细描述本次PR的修改内容,选择要合并到的主分支(master),然后点击“创建拉取请求”按钮。
PR创建后,微信群内通报,等待其他开发者进行代码审查和合并。审查通过后,PR将被合并到主分支。
提交要求
- 确保代码跑的通才提交(commit),未完成的请通过stage存档,不要commit不完整的代码。
- 勤提交,单个模块提交一次,避免一次性提交过多代码,严禁在一次提交中修改多个模块的代码。
- 提交消息统一用中文,简要描述本次提交的修改内容。
- 提交代码前,确保代码格式化完成,使用VS2022或Rider2024的格式化功能进行格式化,严禁提交不格式化的代码。
- 特殊情况下如需提交测试未通过的代码,请提交到新的分支临时用于协作
代码规范
代码命名规范
- 文件命名:使用大驼峰命名法,文件名与类名一致,文件后缀为.cs
- 类命名:使用大驼峰命名法,类名与文件名一致
- 方法命名:使用大驼峰命名法,方法名以动词开头,描述方法的功能
- 变量命名:使用小驼峰命名法,变量名以小写字母开头,描述变量的含义
- 常量命名:使用大驼峰命名法,常量名以大写字母开头,描述常量的含义
代码或文档中待办事项使用TODO标记,格式为// TODO: 待办事项描述,如:
// TODO: 待办事项描述