feat: add skill install scripts and move skill into htsy/

This commit is contained in:
dcsunny
2026-07-01 15:53:37 +08:00
parent 3212e64776
commit 1f4a00a0b0
15 changed files with 465 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
# 素材与话术库
阅读本文件处理素材列表、素材增删改查、获取 OSS 上传 token、话术库、话术分类、话术标签等操作。素材内容里的消息结构见 [api-common.md](api-common.md)。
## 素材与话术接口
| 目标 | 接口 | 请求字段 | 常用返回字段 |
| --- | --- | --- | --- |
| 素材上传 | `POST /api/material/upload` | `type`(string, 必填,素材类型)`material`(bytes, 必填,素材) | `link`(string,素材地址) |
| 列表 | `POST /api/material/list` | `page`(int64, 必填,page)`pageSize`(int64, 必填,pageSize)`name`(string, 可选,素材名字搜索);`type`(string, 必填,类型)`isQy`(bool, 可选,是否属于企业) | `list`(repeated MaterialInfo,计划列表)`page`(int64page)`pageSize`(int64pageSize)`total`(int64,总数)`last`(bool,是否最后) |
| 添加 | `POST /api/material/add` | `id`(int64, 可选,素材id)`type`(string, 必填,素材类型)`name`(string, 必填,素材名字)`text`(MessageText, 可选,文本消息 text)`image`(MessageImage, 可选,图片消息 image)`sticker`(MessageSticker, 可选,表情消息 sticker)`video`(MessageVideo, 可选,视频消息 video)`miniProgram`(MessageMiniProgram, 可选,小程序 miniProgram)`link`(MessageLink, 可选,链接 link)`audio`(MessageAudio, 可选,音频 audio)`compositeImage`(MessageCompositeImage, 可选,合成图 compositeImage)`inviteGroup`(MessageInviteGroup, 可选,入群邀请 inviteGroup)`goods`(MessageGoods, 可选,商品 goods)`freeVideo`(MessageFreeVideo, 可选,视频号 freeVideo)`liveBroadcastRoom`(MessageLiveBroadcastRoom, 可选,直播间 liveBroadcastRoom)`file`(MessageFile, 可选,文件 file)`note`(MessageNote, 可选,笔记 note)`collection`(repeated Collection, 可选,合集 collection)`materialGroup`(repeated MaterialDialogueContent, 可选,素材组List)`isQy`(bool, 可选,是否属于企业);... 另有 1 个字段 | `id`(int64) |
| 删除 | `POST /api/material/del` | `ids`(repeated int64, 必填,删除的ids)`type`(string, 必填,素材类型) | 空对象或无业务数据 |
| 更新 | `POST /api/material/update` | `id`(int64, 可选,素材id)`type`(string, 必填,素材类型)`name`(string, 必填,素材名字)`text`(MessageText, 可选,文本消息 text)`image`(MessageImage, 可选,图片消息 image)`sticker`(MessageSticker, 可选,表情消息 sticker)`video`(MessageVideo, 可选,视频消息 video)`miniProgram`(MessageMiniProgram, 可选,小程序 miniProgram)`link`(MessageLink, 可选,链接 link)`audio`(MessageAudio, 可选,音频 audio)`compositeImage`(MessageCompositeImage, 可选,合成图 compositeImage)`inviteGroup`(MessageInviteGroup, 可选,入群邀请 inviteGroup)`goods`(MessageGoods, 可选,商品 goods)`freeVideo`(MessageFreeVideo, 可选,视频号 freeVideo)`liveBroadcastRoom`(MessageLiveBroadcastRoom, 可选,直播间 liveBroadcastRoom)`file`(MessageFile, 可选,文件 file)`note`(MessageNote, 可选,笔记 note)`collection`(repeated Collection, 可选,合集 collection)`materialGroup`(repeated MaterialDialogueContent, 可选,素材组List)`isQy`(bool, 可选,是否属于企业);... 另有 1 个字段 | 空对象或无业务数据 |
| 获取发送给机器人自己的素材 | `POST /api/material/get/byBotOwn` | `botId`(int64, 必填,机器人id)`msgType`(string, 必填,msgType)`botType`(int32, 必填,类型 1 个微 2企微);`friendId`(int64, 必填,客户id) | `msgType`(string,消息类型)`role`(string,角色名)`delayTime`(int64,延迟时间 单位ms如 1000ms)`delayType`(string,延迟时间单位 s 秒 m 分 h 小时);`text`(MessageText,文本消息 text)`image`(MessageImage,图片消息 image)`sticker`(MessageSticker,表情消息 sticker)`video`(MessageVideo,视频消息 video)`miniProgram`(MessageMiniProgram,小程序 miniProgram)`link`(MessageLink,链接 link)... |
| 获取单个素材信息 | `POST /api/material/info` | `id`(int64, 必填,id)`msgType`(string, 必填,msgType) | `id`(int64,素材id)`type`(string,素材类型)`name`(string,素材名字)`text`(MessageText,文本消息 text)`image`(MessageImage,图片消息 image)`sticker`(MessageSticker,表情消息 sticker)`video`(MessageVideo,视频消息 video)`miniProgram`(MessageMiniProgram,小程序 miniProgram)`link`(MessageLink,链接 link)`audio`(MessageAudio,音频 audio)... |
| 话术库创建 | `POST /api/material/dialogue/add` | `name`(string, 必填,素材名字)`content`(repeated MaterialDialogueContent, 可选,素材内容)`categoryId`(int64, 可选,分类id)`isQy`(bool, 可选,是否属于企业) | `id`(int64id) |
| 话术库列表 | `POST /api/material/dialogue/list` | `page`(int64, 必填,page)`pageSize`(int64, 必填,pageSize)`name`(string, 可选,素材名字搜索);`categoryId`(int64, 可选,按分类搜索)`tagIds`(repeated int64, 可选,按标签搜索)`isQy`(bool, 可选,是否属于企业) | `list`(repeated MaterialDialogueListItem,话术库列表)`page`(int64page)`pageSize`(int64pageSize)`total`(int64,总数)`last`(bool,是否最后) |
| 话术库删除 | `POST /api/material/dialogue/del` | `id`(int64, 可选,id) | 空对象或无业务数据 |
| 话术库更新 | `POST /api/material/dialogue/update` | `id`(int64, 可选,id)`name`(string, 必填,素材名字)`content`(repeated MaterialDialogueContent, 可选,素材内容)`categoryId`(int64, 可选,分类id)`isQy`(bool, 可选,是否属于企业) | 空对象或无业务数据 |
| 话术库分类创建 | `POST /api/material/dialogue/category/add` | `name`(string, 可选,类别名)`isQy`(bool, 可选,是否属于企业) | `id`(int64id) |
| 话术库分类列表 | `POST /api/material/dialogue/category/list` | `isQy`(bool, 可选,是否属于企业) | `list`(repeated MaterialDialogueCategoryItem) |
| 话术库分类更新 | `POST /api/material/dialogue/category/update` | `id`(int64, 可选)`name`(string, 可选) | 空对象或无业务数据 |
| 话术库分类删除 | `POST /api/material/dialogue/category/del` | `id`(int64, 可选) | 空对象或无业务数据 |
| 话术库标签创建 | `POST /api/material/dialogue/tag/add` | `name`(string, 可选,类别名) | `id`(int64id) |
| 话术库标签列表 | `POST /api/material/dialogue/tag/list` | `{}` | `list`(repeated MaterialDialogueTagItem) |
| 话术库标签更新 | `POST /api/material/dialogue/tag/update` | `id`(int64, 可选)`name`(string, 可选) | 空对象或无业务数据 |
| 话术库分类删除 | `POST /api/material/dialogue/tag/del` | `id`(int64, 可选) | 空对象或无业务数据 |
| 为话术库设置分类或者标签 | `POST /api/material/dialogue/setCategoryOrTag` | `dialogueId`(repeated int64, 必填,素材id)`categoryId`(int64, 可选,类别id)`tagIds`(repeated int64, 可选,标签id)`needDelTagIds`(repeated int64, 可选,要删除的标签id) | 空对象或无业务数据 |
| 获取oss上传的token,有效期5分钟 | `POST /api/material/getOssToken` | `type`(string, 必填,素材类型 image video等)`original`(string, 必填,来源 messagePush material等) | `accessID`(string,阿里云accessid)`host`(string,阿里云host)`policy`(string,阿里云policy)`signature`(string,阿里云signature)`dir`(string,阿里云文件目录)`expire`(int64,阿里云expire 毫秒)`domain`(string,阿里云domain) |
## 常用示例
```bash
htsy-cli call /api/material/list -d '{"page":1,"pageSize":20,"type":"image"}'
htsy-cli call /api/material/add -d '{"type":"text","name":"问候语","text":{"content":"你好"}}'
htsy-cli call /api/material/dialogue/list -d '{"page":1,"pageSize":20}'
```