导入链接#
ThinkWatch Lite 支持通过链接预填一个新的上游。中转站或模型服务商可以把这样的链接放在控制台或开通通知中;已安装应用的用户打开链接后,在确认对话框中核对设置,一步即可创建上游。
本页面向中转站与服务商的运营人员,说明链接的两种形式、参数、应用所做的校验,以及链接刻意不支持的内容。页面末尾附有链接生成器。
链接形式#
两种形式携带相同的参数。
| 形式 | 说明 |
|---|---|
thinkwatch://import?… | 直接打开应用。浏览器在把链接交给应用之前会先请求许可。 |
https://thinkwat.ch/import#… | 一个网页:显示将要导入的设置,通过按钮打开应用,未安装应用时提供下载。参数位于 # 之后的片段中,浏览器不会把片段发送给任何服务器。该页面不加载统计或第三方脚本,读取参数后会从地址栏中移除片段。 |
网页形式适合用于邮件和控制台,因为收件人可能尚未安装应用。网页按与应用相同的规则校验参数,校验不通过的链接不显示任何内容。
参数#
| 参数 | 必填 | 取值 |
|---|---|---|
url | 是 | 服务的 Base URL,不含 /chat/completions、/messages 等接口路径。只接受 https://;http:// 仅限 localhost、127.0.0.1 与 [::1]。不得包含用户名或密码、查询串或片段。 |
name | 否 | 上游在应用中的名称。省略时由应用按地址生成。 |
protocol | 否 | anthropic、openai-chat、openai-responses 或 gemini。省略时由应用按地址识别。 |
key | 否 | API 密钥,按原样保存。只能包含字母、数字与 - _ . ~ + / = :。 |
models | 否 | 以逗号分隔的模型 ID。服务本身不提供模型列表时,应用使用这份清单。 |
编码规则:
- 每个值都要经过百分号编码,例如使用
encodeURIComponent。未编码的+表示空格,因此含+的密钥应写作%2B。 - 每个参数最多出现一次。
- 链接中出现其他参数、空值,或任一值不符合规则时,整条链接作废。应用会忽略这样的链接,不打开窗口。
长度与字符限制:
| 项目 | 限制 |
|---|---|
| 整条链接 | 8192 个字符 |
name | 64 个字符;首尾无空白;不含 /、\、$、{、}、<、>、" 与反引号;不以 __ 开头;不含控制字符或不可见字符 |
url | 2048 个字符 |
key | 512 个字符 |
models | 最多 64 项,每项最多 128 个字符;只含字母、数字与 - _ . : / @ + |
应用如何处理链接#
- **校验链接。**上述规则全部在应用中执行,与生成链接的页面做过哪些校验无关。
- **显示确认对话框。**对话框写明接收请求内容与 API 密钥的主机,以 ASCII 显示:国际化域名显示为 punycode(
xn--…),外形相近的域名无法冒充熟悉的域名。对话框同时显示 Base URL、接口协议、密钥(默认隐藏,可切换显示)与模型清单,其中只有名称可以修改。所有值都按纯文本显示。 - **确认之前不保存任何内容。**选择「创建」之前,应用不写入配置,也不向该地址发出任何网络请求:不检测连接,不获取模型列表。
- **只创建一个新的上游。**导入不会修改、替换或删除已有的上游。名称已被使用时须改用其他名称,不提供覆盖选项。新上游不会被设为默认,也不会加入任何路由。创建之后,它与手动添加的上游相同,包括获取模型列表。
- **一次只处理一条链接。**对话框打开期间,以及关闭后的几秒内到达的链接会被忽略,也不会把窗口调到前台。
示例#
兼容 Anthropic 接口的中转站:
thinkwatch://import?name=example-relay&url=https%3A%2F%2Fapi.relay.example&protocol=anthropic&key=sk-relay-EXAMPLE
https://thinkwat.ch/import#name=example-relay&url=https%3A%2F%2Fapi.relay.example&protocol=anthropic&key=sk-relay-EXAMPLE
兼容 OpenAI 接口、不提供模型列表的中转站:
thinkwatch://import?name=example-openai&url=https%3A%2F%2Fapi.relay.example%2Fv1&protocol=openai-chat&key=sk-relay-EXAMPLE&models=gpt-5%2Cgpt-5-mini
https://thinkwat.ch/import#name=example-openai&url=https%3A%2F%2Fapi.relay.example%2Fv1&protocol=openai-chat&key=sk-relay-EXAMPLE&models=gpt-5%2Cgpt-5-mini
链接不能设置的内容#
任何网页都能打开链接,因此链接只包含用户在一个对话框中能够判断的内容。以下内容刻意不支持:
| 不支持 | 原因 |
|---|---|
密钥中的环境变量引用(${NAME}) | 应用会从用户的环境变量中读取 ${NAME}。一条 key=${OPENAI_API_KEY} 的链接会把用户自己的密钥发送到中转站的主机。含 $、{ 或 } 的密钥一律拒绝。 |
| 请求头 | 请求头的值可以引用环境变量与凭据,并可改变请求的鉴权方式,这些无法在对话框中清楚呈现。 |
| 出站代理 | 链接不得让流量经由第三方转发。 |
| 价目表与计费方式 | 费用如何计算由用户决定。 |
| 路由规则与默认上游 | 链接不得改变已配置客户端的流量去向。 |
| MCP 服务与客户端配置 | 它们会执行命令或修改其他应用的设置。 |
| 图标等展示内容 | 连接不需要它们,且可被用于仿冒熟悉的服务。 |
指向其他主机的 http:// | 密钥将以明文传输。 |
| ChatGPT 账号登录与 Amazon Bedrock | 需要交互式登录或 AWS 凭据,无法通过链接携带。 |
这些设置可以在上游创建之后在应用中修改。
链接中的密钥#
含有密钥的链接本身就是凭据。应为每位客户单独生成链接,并通过私密渠道提供,例如客户自己的控制台。不含 key 的链接会创建一个没有密钥的上游,之后在应用中编辑该上游补充密钥。
链接生成器
在浏览器中生成,不发送任何内容。
填写接口地址后生成链接。
应用链接
网页链接