使用Raycast,不想用他家的付费AI服务,我们一般会自己购买其他兼容OpenAI API的AI服务。如何既要又要呢?
Raycast虽然提供了BYOK支持使用密钥使用主流AI服务,但国人一般使用第三方API供应商或国产AI服务。应该如何绕过这个限制呢?

其实Raycast提供了Ollama服务API调用,有了这个API,我们能做的就很多了。那我们就可以通过Ollama协议,转换成你购买的其他OpenAI兼容的API,从而实现使用Raycast AI的目的。

代理设置

刚好这个仓库提供了这个能力:https://github.com/miikkaylisiurunen/raycast-ai-openrouter-proxy
但是作者是使用docker启动,对于mac有点臃肿了,毕竟还先安装Docker。

研究发现,它其实就是一个node服务。我们本地只需要先安装Mac系统node依赖:

brew install node

然后我写了一个run.sh放在克隆的工程根目录

#!/bin/bash# Exit immediately if a command exits with a non-zero status.set -e# Check if node_modules directory existsif [ ! -d "node_modules" ]; then  echo "Node modules not found. Running npm install..."  npm installfi# Export environment variablesexport API_KEY=${API_KEY:-"1234"}export BASE_URL=${BASE_URL:-"http://0.0.0.0:8012/v1"}# The docker-compose exposes port 3000, so we'll use that as the defaultexport PORT=${PORT:-11812}export MODELS_PATH=${MODELS_PATH:-"./models.json"}# Check the first argument to decide the modeif [ "$1" = "prod" ]; then  echo "Building for production..."  npm run build  echo "Starting the application in prod mode..."  npm startelse  echo "Starting the application in dev mode..."  npm run devfi

运行./run.sh prod即可。

命令支持环境变量,使用方式为

BASE_URL=https://example.com/v3 API_KEY=1234 bash ./run.sh prod
  • BASE_URL:你的服务提供方的url
  • API_KEY:你的服务提供方的api密钥
  • PORT:这个代理服务启动后,在本地打开的端口,默认11812
  • MODELS_PATH:你的模型列表,以根目录models.json的形式存在。
    ⚠️其中需要注意,根目录下的models.json设置:
    • name为Raycast UI中显示的名称;
    • id为你的服务器请求是的模型名称;
    • contextLength为上下文长度;
    • capabilities为列表,有["vision", "tools"]这些,vision是支持图片,tools是支持工具;
    • temperature为温度,一般是0~1或者0~2;

配置好run.sh后即可开始运行。不加prod后缀可以查看详细日志。加prod则仅打印一般日志

Raycast配置

然后就可以在Raycast的AI tab下的Ollama Host中配置我们启动代理地址了: localhost:11812 (其中11812与上面的PORT参数对应)。
点击下右侧Sync Models按钮,没问题就应该可以看到模型列表了

设置好以后,一定要修改AI 模型。否则就像我一样,会使用AI试用额度:
AI设置中:


‼️Raycast AI插件中,我就是忘了设置这个跑了十几次它自己的AI流量:

如何使用

直接在Raycast窗口按Tab即可开始聊天。