记录贴 - GPT 尝试 第二弹

  • 资料来源:

    <>

  • 更新

    1
    2025.02.15 初始

导语

春节期间的 gpt 尝试助力还是蛮多的, 那么这个周末继续!

第一弹 后遗留的痛点

  • poe 每月的剩余点数还是太多了
  • cursor 500/月请求实在是 10 多天就没了.
  • poe 转出的 openai api 半残, 有时需要完全原版 api 才行…

一篇解决!

  • api 按量付费, 没有订阅成本 -> openrouter
  • cursor 请求不够, poe 太多剩余 -> ngrok + poe2openai 转换为 cursor 可用

Openrouter

对比了 N 多服务后, 最终决定还是 Openrouter;

对 api 服务需求:

  • 非二道贩子, 需要长期使用.
  • 非单一模型, 需要类似 poe 聚合平台.
  • 用量大头在 poe, api 为备用/应急/备选.

Openrouter 恰好全部满足

  • 费用与官方保持一致, +5% 服务费, 用量较少尚可接受
  • 任意 visa 卡即可完成充值.
  • api 与 openai 标准完全兼容

最新技巧:一键申请任意大模型 API,支持国内信用卡,彻底解决大模型 API 难题

付款等参考这里, 不加赘述: https://www.youtube.com/watch?v=h4HiH75ob1Q

Cursor 使用 Poe Api

上文 有提到 cursor api 暂时不支持 localhost 部署的 gpt 服务, 所有请求都需要经过 cursor server;

整个的症结在于 api 必须可以在公网访问, 当内网部署的 poe2openai 又不希望暴露到公网…

so 重新部署一套转换不就好了, 安全性问题交给前端内网转发解决…

ngrok + poe2openai = cursor 可用公网 api 服务.

Poe Api 服务

注册 ngrok 账号, 免费版完全够用, copy token 到 .env 文件, 最后 docker compose up -d 启动

  • 不需要提供 公网服务, 因此无需映射到任何端口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: '3.8'
services:
poe2openai:
image: jeromeleong/poe2openai:latest
container_name: poe2openai
environment:
- PORT=8080
- LOG_LEVEL=info
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=123456
- MAX_REQUEST_SIZE=1073741824

ngrok:
image: ngrok/ngrok:latest
container_name: ngrok
depends_on:
- poe2openai
command:
- "http"
- "http://poe2openai:8080"
- "--url=固定前缀.ngrok-free.app"
environment:
NGROK_AUTHTOKEN: ${NGROK_AUTHTOKEN}

题外话: 如果不配置,每次 ngrok 的 url 都是随机的,非常不方便. 参考 https://ngrok.com/blog-post/free-static-domains-ngrok-users

Cursor 配置

cursor 中配置

  • OpenAI API Key = poeapi 的密钥
  • Override OpenAI Base URL = https://固定前缀.ngrok-free.app/v1

此时遇到第一个坑, 无法 Enable OpenAI API Key, 此时 Verify 无法验证通过, 但是其提示 Invalid OpenAI API Key, 但是按照 cursor 给出的验证命令又是可以正常请求的

1
2
// 这个命令是可以正常请求的
curl https://固定前缀.ngrok-free.app/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer 密钥" -d "{ \"messages\": [ { \"role\": \"system\", \"content\": \"You are a test assistant.\" }, { \"role\": \"user\", \"content\": \"Testing. Just say hi and nothing else.\" } ], \"model\": \"gpt-4o-mini\" }"

不确定是 poe2openai 实现不完全, 还是跨域问题. 此时重启 cursor

1
cursor.exe --disable-web-security

然后再次点击 Verify 就可以通过验证, 开启自定义 API 了.

别急还有一个坑, 此时打开 chat 调用测试请求, 任意 openai / deepseek 模型,都可以看到都有正常的响应, 唯独 claude-3.5-sonnet ….

  • 折腾到这里, 其实有些泄气, 各种测试中, 与 cursor 搭配效果最好的就是 claude-3.5-sonnet, 反而不能用…

最终在 issue 中有人提及 ollama 模型有时需要修改模型名称才能使用, (o゜▽゜)o☆ BINGO!.. 找到突破口了…

poe2openai 支持在 url/admin 路径下配置模型名称, 将 claude-3.5-sonnet 重命名为 C3.5S 再到 cursor 添加模型, 成功调用.

  • model 名称中不能包含 claude , 这个坑尝试了 10 多次才验证出来…

尾巴

cursor 配置上 poe 以后才发现,点数掉的快啊… 一天大概掉了 5 万点, 对比下 cursor 500 次/月 请求, 似乎也是有道理的…

其实还尝试使用了其他的 gpt 前端 例如 lode-chat openwebui 等, 对比下 cherry-studio 没有特别打动我的改进, 暂且停留在 cherry-studio