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