skip to content
1874
image

Raycast AI 接入自定义 Providers

/ 7 min read

最后更新:

前言

为了榨干我订阅的火山引擎的 Coding Plan Pro 价值,我最近都在绞尽脑汁用 AI 优化我现有的工作流。

我从很早就开始用 Raycast 了,一开始的 Raycast AI 只能订阅它自己的套餐,最近发现竟然支持自定义Provider了(其实25年7月就支持了。。。)

然后就研究了一下,还真让我发现了一些好用的场景。

配置第三方 Provider

1. 在设置中打开 Custom Providers

image.png

2.配置 Providers.yaml 文件

初次配置时,文件名是:providers.example.yaml ,配置完成后需要改名为providers.yaml 才会生效

image.png
providers:
- id: ark-coding
name: 火山方舟 Coding Plan
base_url: https://ark.cn-beijing.volces.com/api/coding/v3
api_keys:
ark: 你的 API Key
models:
- id: glm-5.1
name: GLM-5.1
provider: ark
context: 200000
abilities:
temperature:
supported: true
system_message:
supported: true
tools:
supported: true
vision:
supported: true
- id: doubao-seed-2.0-lite
name: Doubao-Seed-2.0-lite
provider: ark
context: 256000
abilities:
temperature:
supported: true
system_message:
supported: true
tools:
supported: true
vision:
supported: true
- id: deepseek-v4-pro
name: DeepSeek V4 Pro
provider: ark
context: 1024000
abilities:
temperature:
supported: true
system_message:
supported: true
tools:
supported: true
vision:
supported: false
- id: doubao-seed-2.0-pro
name: Doubao-Seed-2.0-pro
provider: ark
context: 256000
abilities:
temperature:
supported: true
system_message:
supported: true
tools:
supported: true
vision:
supported: true
providers:
- 一个服务商:
id: Raycast内部服务商ID
name: 界面显示名称
base_url: OpenAI兼容API地址
api_keys:
key别名: API Key
models:
- 一个模型:
id: 实际发送给API的模型名
name: 界面显示模型名
provider: 使用哪个key别名
context: 上下文长度,具体得看模型本身支持的长度
abilities: Raycast认为这个模型支持的能力

关键参数:

  • abilities.temperature.supported: true 表示这个模型支持温度参数。Raycast 可以给它传 temperature,用于控制回答随机性。一般翻译、总结、代码建议可以低一点;创意写作可以高一点。
  • abilities.system_message.supported: true 表示支持 system prompt。Raycast 可以把 AI Command、Preset、全局指令等作为 system message 传给模型。 如果这个能力不支持,很多“角色设定”“固定翻译风格”“命令模板”效果会变差。
  • abilities.tools.supported: true 表示支持工具调用,也就是 OpenAI 风格的 function calling / tool calling。Raycast AI Extensions、一些需要调用扩展能力的场景可能会依赖它。不过这里要注意:你写 true 只是告诉 Raycast“这个模型支持工具”,但实际能不能跑通还取决于该模型的 OpenAI-compatible tools 格式支持得好不好。
  • abilities.tvision.supported: true 表示支持图片输入。Raycast 会允许你给这个模型附带图片、截图等视觉输入。例如 deepseek-v4-pro 就不支持图片输入。

abilities.vision.supported: true 这个参数貌似对第三方 Providers 支持不太好,我即使配置了 true ,模型也无法看到我发的图片。

使用场景

配置完成后可以自定义每个功能的首选 Model

image.png

Raycast AI 我目前常用的就是 Quick AI 和 AI Command 这两个

Quick AI

唤醒 Raycast 框后按下 Tab 建可以与 AI 进行对话。我一般用于快速查询一些简单问题,复杂问题我都是直接使用 Chat GPT 了。

image.png

智能翻译 AI Command

我把 Raycast 自带的 AI Command 全禁用了。我目前用的最多的就是自定义的「智能翻译」AI Command。其他 AI 功能我还在探索中,感觉现在 AI 工具实在是太多了,只能按便利性/专业程度使用多工具来处理日常比较好。

它的好处是系统级的翻译,只要是能选中文字的地方,就能即时翻译。虽然网页端的全文翻译我用的是插件,但是偶尔也只需要翻译一句话,就可以用这种方式来解决。

image.png

这是我的 Prompt

你是一个双向翻译助手。
请自动判断输入文本的主要语言,并按下面规则处理。
规则:
1. 如果输入主要是英文:
- 翻译成自然、准确的简体中文
- 如果里面有重要术语、缩写、技术名词、产品名、概念词,请在译文后补充「名词解释」
- 名词解释要简短,帮助中文用户理解背景和含义
- 代码、命令、URL、文件路径、变量名、包名不要翻译
2. 如果输入主要是中文:
- 翻译成自然、地道的英文
- 语气简洁、清楚、适合日常沟通或技术交流
- 不要额外解释
3. 如果输入中英文混合:
- 根据主要语言判断翻译方向
- 保留代码、命令、URL、文件路径、变量名、包名
输出格式:
如果是英译中:
【原文】
这里输出原始英文
【翻译】
这里输出中文译文
【名词解释】
- 术语 1:解释
- 术语 2:解释
如果没有需要解释的名词,可以省略「名词解释」。
如果是中译英:
【翻译】
这里输出英文译文
输入内容:
{selection}
image.png

Prompt 中是可以添加动态变量的

  • Selected Text 当前光标选中的文本。我自己用的是这个
  • Clipboard Text 剪贴板的文本

配置完成后设置一个快捷键触发,例如 option + F 。使用起来就非常舒服:

  1. 选中需要翻译的文本
  2. 按下option + F 就会开始翻译了
image.png

当然,他也有个小问题:有点小慢。因为它的调用流程会多一层转发,先交给 Raycast 然后再转发到自定义 Provider。Raycast AI 官方订阅则没有这个问题,还挺快的,不知道是不是故意的。