跳转到主要内容

VRHandsFrame Mod 与用户扩展规范 (1.0.1)

简介

通过在 Steam 创意工坊安装官方 Mod,可以使用部分外部 API。 请自行获取 API 密钥等认证信息。


安装 Mod 后,设置界面侧边栏底部会显示相应项目。 将滑动条设为 ON,即可使用 Mod 代替内置功能。 如果未显示 Mods 项目,请重启 VRHandsFrame 或 Steam 客户端。

Mods Item


关于用户扩展

如果想使用官方 Mod 不支持的 API,有以下两种方法:

  • 添加描述 Extension Object 的新 json 文件 (推荐)
  • 编辑官方的 user_extension.json 文件

Extension Object 是用于定义用户扩展的 API URL 端点、请求/响应参数等信息的对象。 user_extension.json 是包含若干 Extension Object 示例的文件。


文件位置

从 Steam 创意工坊安装 Mod 后,应用启动时会在以下目录生成所需的 user_extension.jsonmanifest.json 文件:

  • 图像识别用
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/VisionBaseMod/
  • 翻译用
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/TranslationBaseMod/

请在此位置添加描述 Extension Object 的 json 文件。 文件名可以任意指定,但 Extension Object 中 "name" 键的值在每个 Mod 内必须唯一。

** 请勿删除原有的 user_extension.jsonmanifest.json 文件! 这些文件是必需的。 **


Mod 使用准则

  • 请遵守 VRHandsFrame 软件许可协议。 https://store.steampowered.com//eula/2324090_eula_0
  • 请勿以窃取其他用户数据的方式使用。
  • 请勿用于任何托管服务的商业宣传(如销售 API 密钥或订阅)。
  • 使用他人创建的用户扩展时,请注意确认其中没有设置可疑的 URL。
  • VRHandsFrame 应用开发者(Eureka Works)在图像识别和翻译两种 Mod 的使用过程中,均不会保存或查看用户的任何数据。
  • 关于数据处理,请留意各 API 服务的使用条款和隐私政策。

Extension Object

name
required
string

扩展名称

  • 会显示在 VRHandsFrame 的设置菜单中。
  • 名称在每个 Mod 内必须唯一。 不得与其他 Extension Object 的名称重复。
url
required
string

API 请求的目标 URL

required
Key (object)

作为 API 请求密钥的认证信息。

  • 可以在 VRHandsFrame 的设置菜单中粘贴或删除。
  • 公开您的扩展配置时,请注意不要直接包含密钥。
object

API 请求的可选 HTTP 头

required
Array of APIRequestObject (object) non-empty

API 请求所需的参数

  • 请求使用 HTTP POST 方法发送。
  • 请注意这是包含多种参数元素的数组对象。
required
APIResponseObject (object)

API 响应期望的参数

Example
{
  • "name": "OpenAI Vision Sample (gpt-4o-mini)",
  • "key": {
    • "type": "bearer",
    • "value": ""
    },
  • "headers": {
    • "Content-Type": "application/json"
    },
  • "request": [
    • {
      }
    ],
  • "response": {
    • "type": "json",
    • "jsonKey": "choices[0].message.content"
    }
}

API Request Object

type
required
string
Enum: "json" "form" "query"

参数类型

  • json : JSON 格式
  • form : HTTP POST 表单格式
  • query : HTTP URL 查询参数格式

query 参数对象可与 JSON 或表单数据组合使用。 此时请作为数组元素分别定义。

params
required
object

API 请求参数

请根据要使用的 API 的规范设置参数。 以下字符串用作占位符:

  • $image_png : 待识别的 PNG 图像数据(Base64 编码)
  • $image_jpg : 待识别的 JPEG 图像数据(Base64 编码)
  • $image_data : 与 $image_png 相同(为向后兼容而保留)
Example
{
  • "type": "json",
  • "params": {
    • "image": "$image_png"
    }
}

API Response Object

type
required
string
Value: "json"
jsonKey
required
string

存放要接收的文本信息的 Json 键

Example
{
  • "type": "json",
  • "jsonKey": "choices[0].message.content"
}

user_extension.json

description
required
string

Mod 名称

version
required
string

Mod 版本

required
Array of ExtensionObject (object) >= 0 items

用户扩展定义

Example
{
  • "description": "Vision User Extension",
  • "version": "1.0.1",
  • "extensions": [
    • {
      }
    ]
}