探索 Coze Plugin:实现 GitHub Plugin 自动汇总更新日志

扣子(Coze)是一款功能强大的一站式 AI Bot 开发平台。今天,该平台正式在国内上线,我们第一时间体验了如何在 Coze 上开发一个 Bot,通过自然语言描述需求及配置 GitHub 插件,实现按仓库汇总更新日志。在这个过程中,我们无需写任何代码,只通过自然语言描述需求,真正感受到了大模型的神奇之处。

什么是 Plugin

我们知道大模型的知识储备是有限的,截止到训练完成的那一刻,此后的知识大模型是一无所知。为了弥补这一不足,Coze 提供了 Plugin 机制。Plugin 可以被理解为在线服务,能够提供实时信息,例如查询天气、查询 GitHub 仓库等。当用户向大模型提出问题需要一些实时数据时,我们可以引导大模型调用 Plugin 来获取这些信息,从而弥补大模型在知识方面的局限性。

Coze Plugin Store 上已有官方提供的大量 Plugin:

如何开发 Plugin

首先我们需要创建一个 Bot。在 Personal 工作区点击右上角的 新建 Bot,即可进入 Bot 编辑器:

其中:

  • 人设与回复逻辑:即 Bot 的 Prompt,我们可以理解为这是 Bot 的业务逻辑,只是不需要写代码,通过自然语言描述逻辑即可
  • 技能 :包含 插件工作流数据库 等,扩展了 Bot 的在线检索及存储能力
  • 预览和调试:可在右侧与 Bot 对话,验证配置是否符合预期

当我们需要开发一个 Plugin 时,我们点击 插件 右侧的加号,在弹窗中新建一个 Plugin。我们以 GitHub Plugin 为例:

其中:

  • 插件名称 :插件的唯一标识,在 Prompt 中使用 插件名称.工具名称(参数) 的方式引导大模型调用插件
  • 插件描述:即插件的 Prompt,帮助大模型理解插件的作用
  • 插件 URL :插件服务的 URL。在 Coze 中插件需要通过 HTTP 服务提供给平台调用,这里我们的 GitHub 插件采用了 GitHub 官方的 OpenAPI,即 URL:api.github.com ,该插件的所有工具的 baseURL 都需要基于这个值。
  • 授权方式:当插件的服务需要授权时需要配置。支持 OAuth 协议的授权,这里我们的 GitHub 插件需要获取用户的仓库列表,因此需要授权。
  • client_idclient_secret :即 OAuth 授权过程的凭证。我们需要前往 GitHub 创建,打开 GitHub OAuth Apps,点击右上角的 New OAuth App ,新建完成后即可获取。需要注意的是,Authorization callback URL 需要填写 Coze 平台的回调地址,即 bot-open-api.oceancloudapi.com/api/oauth/a...
  • scope :即 OAuth 的 scope,这里我们不需要填写
  • authorization_url :即 OAuth 获取 access_token 的接口 URL,我们填写 GitHub 的 github.com/login/oauth...
  • authorization_content_type :填写 application/json

至此,我们的插件就创建好了。我们再给插件添加两个工具:获取授权用户的仓库列表 getMyRepositories 及获取仓库的 commit getCommits。我们以第一个工具为例:

  1. 配置工具的基本信息 。工具名称是唯一标识,在 Bot 调用时会用到;工具描述是工具 Prompt,帮助大模型理解插件的作用;工具路径即对应的 HTTP 服务 URL,前半部分是 插件 URL 的值;请求方法即 HTTP 的请求方法。
  1. 配置输入参数。即工具的输入参数,配置和 HTTP 参数的映射关系
  1. 配置输出参数 。即工具的输出内容数据结构,我们可以借助平台提供的 自动解析 功能,根据 HTTP 接口返回的 JSON 结构自动解析
  1. 调试与校验:运行一下工具,确认前面的配置都是正确的

至此,我们就完成了一个 Plugin 的开发。

开发 Bot

接下来,我们就可以基于上面的 GitHub Plugin,开发一个帮我汇总更新日志的 Bot。我们先梳理下这个 Bot 的业务逻辑:

  • 当用户未授权时,需要先完成 GitHub 的 OAuth 授权
  • 当用户已授权时,Bot 查询用户的仓库列表,并向用户提问需要汇总哪个仓库的更新日志
  • 用户指定仓库后,Bot 查询仓库的 commit 记录,并生成更新日志

根据上面的逻辑,我们写出的 人设与回复逻辑(Prompt)如下:

markdown 复制代码
# Character
你是一个专业的 AI 助手,擅长帮助用户生成详细的 GitHub 项目更新日志。你可以按照用户的 Github 库的提交记录,给用户生成详细的项目更新信息。

## Skills

### Skill 1: 获取 GitHub 仓库信息
1. 当用户提供一个完整的GitHub仓库链接时,例如 `https://github.com/{owner}/{repo}`,你应从 URL 中提取出 `owner` 和 `repo` 参数。
2. 如果用户输入一些关键词进行库搜索,你需要调用 `GitHub.searchRepositories(q)` 插件,查询相关的仓库信息,并以列表的形式展示给用户供他们选择。用户选择后,提取出其选择的 `owner` 和 `repo` 参数。
3. 用户也可以选择查询属于他们自己的仓库,你需要让用户进行 OAuth 授权,然后通过调用 `GitHub.getMyRepositories()` 插件,展示用户的所有仓库信息供他们选择。用户选择后,提取出其 `owner` 和 `repo` 参数。

### Skill 2: 查询仓库的 commit 记录
根据第一步获取到的 `owner` 和 `repo` 参数,你需要调用 `GitHub.getCommits(repo, owner)` 插件来查询所有的commit信息。

### Skill 3: 生成更新日志
根据第二步查询到的commit信息,你需要按照月份对其进行分类,将其优化后的commit消息展示出来。你需要按照以下格式生成更新日志并展示给用户:

# <年份-月>

- [新增] <优化后的message>,这通常以"feat"开头。
- [修复] <优化后的message>,这通常以"fix"开头。
- [优化] <优化后的message>,这通常以"refactor"开头。
- [文档] <优化后的message>,这通常以"docs"开头。

chore, test 开头的 commit 不在更新日志中展示

## Constraints:
- 尽量避免产生不必要的网络请求,可根据需要缓存部分信息。
- 尽量减少让用户等待的时间,合理安排异步任务的执行顺序。
- 注意保密用户的隐私,不要泄露或保存用户的 OAuth 授权信息。
- 对于用户提供的仓库链接,需要在工作开始前确认其有效性。
- 在生成日志时,针对一些技术性的词汇,考虑提供解释或者附带相关链接,以方便用户理解。
- 提供让用户查看更新日志详情的选项,例如查看某个 commit 的具体改动。

编写 Prompt 时,我们可以先将 Bot 的大致业务逻辑写好,再借助平台提供的 优化 功能进行格式和内容优化。Prompt 即 Bot 的业务逻辑,至此,我们的 Bot 就开发完成了。记得在 Plugin 中添加我们前面创建的 GitHub Plugin。

效果

接下来我们看看 Bot 的效果,首先我们让 Bot 查询我的仓库信息。Bot 提示需要授权

我们完成授权后,再次让 Bot 查询我的仓库信息,这次 Bot 成功查询到了:

我们再让 Bot 生成其中一个仓库的更新日志,Bot 按预期格式完成了汇总:

可以看到,Bot 很好的完成了我们的需求,整个开发过程我们没有写一行代码。

最后

Coze 平台除了 Plugin 外还提供了大量功能,对大模型的能力进行了补充,欢迎一起探索。

最后我们将 Bot 发布到豆包或其它平台上,这样用户就可以使用了。

欢迎来豆包体验本文的 Bot:生成更新日志

BotID: 7312698722042003493

相关推荐
陈敬雷-充电了么-CEO兼CTO8 小时前
DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型
人工智能·神经网络·自然语言处理·chatgpt·大模型·aigc·deepseek
标贝科技9 小时前
标贝科技参编国内首个AIGC大模型功能测试标准
功能测试·科技·aigc
Sherlock Ma20 小时前
Step-Video-T2V:阶跃星辰发布最强开源视频生成模型(论文详解)
图像处理·人工智能·深度学习·计算机视觉·ai作画·aigc
cpuCode1 天前
BERT 大模型
人工智能·深度学习·ai·自然语言处理·大模型·llm·bert
码农阿豪1 天前
本地部署Anything LLM+Ollama+DeepSeek R1打造AI智能知识库教程
人工智能·llm·ollama·deepseek
EdisonZhou2 天前
.NET程序员AI开发基座:Microsoft.Extensions.AI
aigc·.net core
Iotfsd2 天前
WPS的AI助手进化跟踪(灵犀+插件)
人工智能·语言模型·llm·wps·deepseek·灵犀·底座模型
程序设计实验室2 天前
LLM探索:离线部署Ollama和one-api服务
ai·llm
x-cmd2 天前
[250217] x-cmd 发布 v0.5.3:新增 DeepSeek AI 模型支持及飞书/钉钉群机器人 Webhook 管理
ai·机器人·llm·钉钉·飞书·webhook·deepseek
shandianchengzi2 天前
【BUG】LLM|Ubuntu 用 ollama 部署 DeepSeek 但没输出,llama 有输出
ubuntu·llm·bug·llama·ollama·deepseek