Skill管理
DevKit AI支持管理Skills资源包,可以列出已下载的Skills、下载更新Skills及清理本地缓存Skills。
命令格式
./devkitai skills [-h] [list | update | clean]
参数说明
参数 |
参数说明 |
|---|---|
-h/--help |
获取帮助信息。 |
list |
列出已下载的Skills。 |
update |
下载并更新配置的Skills。 |
clean |
清理本地缓存Skills。 |
使用示例
- 下载更新Skills。
./devkitai skills update
返回信息如下:
准备更新所有配置的skills... 当前配置的skills存放目录/home/skills不存在,努力创建中。 当前配置的skills存放目录/home/skills创建成功。 准备更新Skill DevkitAI 开始检测skillDevkitAI下载地址的网络连通性,请耐心等待。 网络连接成功,开始下载Skill: DevkitAI 100%[======================================================================] 0.81M 3.9MB/s eta 0m 00s 解压进度 [==================================================] 301/301 DevkitAI skill更新完成 更新完成: 1/1 个 skills 成功 [OK] DevkitAI (1.0.0)
- 文档向量入库时间依赖词嵌入模型能力性能,模型能力较弱时可能会花费较长时间,请耐心等待几秒到几十分钟。
- DevKit AI提供了默认的Skills配置,若有需要可以在工具目录“config/config.yaml”文件中自定义增加需要下载的Skills。
配置示例如下:
remote_skills: # embedding_model: "bge-m3:latest" # skill embedding model load_child_skills: false # true: 加载所有子 skill;false: 只加载顶层 skill candidate_k: 20 # 两路统一召回条数(正整数) weight_vector: 0.7 # 向量检索权重(0-1) similarity_threshold: 0.45 # 意图召回相似度阈值(0-1),阈值越高,意图识别越精确 skills: - name: DevkitAI version: "1.0.0" url: "https://raw.gitcode.com/openeuler/kunpeng-devkit/archive/refs/heads/master.zip" checksum: "" # 可留空,校验会跳过 channel: api # api: http方式下载/git: git clone方式下载/local:加载本地文件目录 enable: true force_update: false # 是否强制下载(忽略版本检测) local_filename: "DevkitAI.zip" # 可选:指定下载文件名,不填则从URL自动解析,local方式不需要设置 format: "auto" # auto/tar.gz/zip/file/directory,如果选择auto且无法辨识具体文件包结构时,默认为directory downloader: default_timeout: 60 # 默认超时时间(秒) retry_times: 2 # 重试次数 http: ssl_verify: true # 是否验证SSL证书(生产环境建议true) chunk_size: 5242880 # 1MB - 分块大小 max_parallel: 3 # 最大并行下载数 min_file_size: 10485760 # 10MB - 大于这个才使用分块并行下载 git: default_branch: "main" # 默认分支 clone_depth: 1 # clone 深度 verification: enable: true # 是否启用校验 (false 则跳过所有校验,安全风险!) signature: enable: false # 是否启用签名验证 (需要配套 .p7s/.sig 签名文件) signature_format: "DER" # DER 或 PEM verify_chain: true # 是否验证证书链 root_ca: "" # 根证书路径 backend: config: root_dir: "/home/skills" # skills根目录,local方式禁止设置url与此目录相同 security: signature_verify_enable: false # 是否启用签名验证(默认关闭) hash_algorithm: "sha256" # 默认hash算法 zip_bomb_threshold: 1000.0 # 压缩比阈值 max_single_file_size: 104857600 # 100MB - 单文件大小限制 max_total_file_size: 524288000 # 500MB - 总大小限制 max_file_count: 30000 # 文件数量限制 malicious_code_scan_enable: true # 是否扫描恶意代码 text_file_max_size: 10485760 # 10MB - 文本文件大小限制 max_pax_header_size: 10485760 # 10MB - PAX header 最大字节数 allow_sparse_files: false # 是否允许稀疏文件(默认拒绝) max_compression_depth: 3 # 嵌套压缩包解压深度限制 magic_numbers: # 文件头魔数配置(十六进制字符串) "zip": "504b0304" "tar.gz": "1f8b0800" "tgz": "1f8b0800" "gzip": "1f8b0800" "pdf": "25504446" "png": "89504e47" "jpg": "ffd8ffe0" "jpeg": "ffd8ffe0"表2 remote_skills全局配置 参数
默认值
参数说明
embedding_model
-
词嵌入模型名称,用于对Skills进行向量化和检索。
load_child_skills
True
是否加载子Skills:
- true:开启。
- false:关闭。
candidate_k
20
检索候选数量(最小值1)。
weight_vector
0.7
向量权重(0.0 ~ 1.0)。
similarity_threshold
0.45
相似度阈值(0.0 ~ 1.0)。
skills
-
Skills配置列表(具体配置请参见表3)。
表3 单个Skill配置 参数
参数选项
参数说明
name
-
Skill名称。
version
-
Skill版本号。默认
"1.0.0"。
url
-
下载Skills的URL地址。
说明:当channel设置为local时(即本地下载),url填写本地Skills目录路径:“/path/to/Skill-dir”(本地Skills放置目录,请根据实际进行替换)。
checksum
-
文件校验和(用于验证下载完整性)。
auth_token
-
认证Token(用于私有仓库访问)。
file_checksums
-
多个文件的校验和映射。
channel
api/git/local
下载渠道:api(API下载)、git(Git克隆)、local(本地)。
enable
true/false
是否启用该Skill:
- true:开启。
- false:关闭。
force_update
true/false
是否启用强制更新。
- true:开启。
- false:关闭。
local_filename
-
指定下载本地文件名,不填则从URL自动解析,local方式不需要设置。
format
"auto"/"tar.gz"/"zip"/"file"/"directory"
下载文件格式,默认为"auto"。
表4 downloader配置 参数
参数选项
参数说明
default_timeout
-
默认超时时间,默认60秒。
retry_times
-
重试次数,默认失败重试2次。
http
ssl_verify
true/false
是否验证SSL证书(生产环境建议true):
- true:开启。
- false:关闭。
chunk_size
-
分块大小,默认为5MB。
max_parallel
-
最大并行下载数,默认为3。
min_file_size
-
文件启用分块并行下载阈值,文件大于此配置才使用分块并行下载。
git
default_branch
-
默认拉取的分支名称。默认为"main"。
clone_depth
-
Git克隆深度,默认为1。
verification
enable
true/false
是否启用校验(false跳过所有校验,可能存在安全风险,请谨慎关闭):
- true:开启。
- false:关闭。
signature
enable
true/false
是否启用签名验证(需要配套.p7s/.sig签名文件使用):
- true:开启。
- false:关闭。
signature_format
"DER"/"PEM"
签名格式,可选“DER”或“PEM”。
verify_chain
true/false
是否验证证书链:
true:开启。
false:关闭。
root_ca
-
根证书路径。
表5 backend配置 参数
参数说明
config
root_dir
Skills根目录,默认为“/home/skills”。
说明:如果表3中参数中使用local方式进行Skills下载,那么“url”(下载Skills的URL地址)配置目录禁止与此目录配置相同。
表6 security配置 参数
参数选项
参数说明
signature_verify_enable
true/false
是否启用签名验证(默认关闭):
- true:开启。
- false:关闭。
hash_algorithm
-
hash算法配置,默认为"sha256"。
zip_bomb_threshold
-
压缩比阈值,解压后体积与压缩后体积的比值上限,默认为1000.0。
max_single_file_size
-
单文件大小限制,默认100MB。
max_total_file_size
-
总文件大小限制,默认500MB。
max_file_count
-
文件数量限制,默认30000。
malicious_code_scan_enable
true/false
是否扫描恶意代码(默认开启):
- true:开启。
- false:关闭。
text_file_max_size
-
文本文件大小限制,默认10MB。
max_pax_header_size
-
PAX header最大字节数,默认10MB。
allow_sparse_files
true/false
是否允许稀疏文件(默认拒绝):
- true:允许。
- false:拒绝。
max_compression_depth
-
嵌套压缩包解压深度限制,默认值为3。
magic_numbers
"zip"/"tar.gz"/"tgz"/"gzip"/"pdf"/"png"/"jpg"/"jpeg"
文件头魔数(magic number)配置。通过读取文件头部的前几个字节(十六进制序列),验证文件实际类型是否与后缀名一致,防止通过修改后缀名绕过安全检测。
- 列出已下载的Skills。
./devkitai skills list
返回信息如下:
当前skills(共 16 个): 名称 路径 -------------------------------------------------------------------------------- check-64k-page-size /home/skills/DevkitAI/check-64k-page-size cpp-kunpeng-migration /home/skills/DevkitAI/cpp-kunpeng-migration crc-opt /home/skills/DevkitAI/crc-opt devkit-kspect-analysis /home/skills/DevkitAI/devkit-kspect-analysis devkit-numafast-analysis /home/skills/DevkitAI/devkit-numafast-analysis devkit-topdown-analysis /home/skills/DevkitAI/devkit-topdown-analysis devkit-turbostat-analysis /home/skills/DevkitAI/devkit-turbostat-analysis docker-image-migration /home/skills/DevkitAI/docker-image-migration false-sharing-analysis /home/skills/DevkitAI/false-sharing-analysis java-arm-migration /home/skills/DevkitAI/java-arm-migration kunpeng-java-tuning /home/skills/DevkitAI/kunpeng-java-tuning migration-source-collector /home/skills/DevkitAI/migration-source-collector migration-target-execution /home/skills/DevkitAI/migration-target-execution opentunex-scenario-bottleneck /home/skills/DevkitAI/opentunex-scenario-bottleneck sql-migration /home/skills/DevkitAI/sql-migration tuning-recommendation-generator /home/skills/DevkitAI/tuning-recommendation-generator
DevKit AI支持本地模式直接加载Skills:直接将本地Skill文档放到“/home/skills”目录下,该方式无需执行./devkitai skills update,且支持扫描二级目录Skill加载多个Skills,新开对话即可直接加载。
- 清理本地缓存Skills。
./devkitai skills clean
返回信息如下:
准备skill清理前环境检查... 即将删除/home/skills目录下skill相关的所有文件 请输入Y或N确认清理? (Y/y:清理, N/n:不清理): y 清理完成