开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

Skill管理

DevKit AI支持管理Skills资源包,可以列出已下载的Skills、下载更新Skills及清理本地缓存Skills。

命令格式

./devkitai skills [-h] [list | update | clean]

参数说明

表1 参数说明

参数

参数说明

-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
    清理完成