调用 chatgpt API 踩坑记录
众所周知,chatgpt为国外网址,需要正确访问(翻墙)。本章内容包括免费翻墙、注册账号、申请chatgpt API KEY、如何使用等进行一一讲述
前言
众所周知,chatgpt国外网址,需要正确访问(翻墙)。本章内容包括免费翻墙、注册账号、申请chatgptAPI KEY、如何使用等进行一一讲述
免费翻墙
- 注册ikuuu VPN
- 直接在ikuuu使用教程下载
- ikuuu首页滚动到底部,一键导入clash配置


- 启动/关闭clash

- 如果无法使用,更换节点(点击“⚡”符号延迟测试,超时状态无法使用)

注册chatgpt账号
注册google邮箱直接进入chatgpt官方登录即可
调用Chatgpt API
你会碰到的问题:
- 手机号验证
在申请API key时需要验证码验证,且国内手机号不支持

- chatgpt 账号绑卡
申请API KEY后,通过文档调用https://api.openai.com/任意接口,报错:“You exceeded your current quota, please check your plan and billing details”
原因:即使chatgpt3.5免费API,也需要绑定一张卡
- 网络限制,配置允许访问
国内就不能直接访问OpenAI官网,也不能直接访问OpenAI API。每次请求都会超时。报错:connect ETIMEDOUT 104.244.46.246:443
解决问题
你会发现网上有很多方式,如下:
虚拟手机号验证方法比如:sms-activate、onlinesim
本人刚开始使用onlinesim虚拟手机号验证的API key,之后调用chatgpt API才发现需要绑定信用卡。后通过Wildcard注册的信用卡绑定。发现Wildcard免费赠送三次手机号验证。哭死。
如果你要调用chatgpt API推荐直接注册Wildcard信用卡,不仅可以绑卡,还可以解决手机号验证和OpenAI API无法访问的问题
手机号验证:


选择: OpenAI
绑卡
根据以下内容一一复制进去即可


OpenAI API 转发

其他解决国内无法访问OpenAI API
第三方代理
这种最简单,不需要自己维护,直接从网上找比较常用的代理即可,例如,使用第三方代理如api.openai-proxy.com,直接将官方接口域名 api.openai.com 替换为 api.openai-proxy.com 即可在国内网络环境下直接调用。
这种方式如果能找的一个性能很好的转发代理,速度快,没有限额,但是缺点是第三方服务虽然号称只做转发,不会泄露用户API Key,但是存在挂掉的风险。
Cloudflare提供的AI Gateway
官方文档:Get started · Cloudflare AI Gateway docs
下面是以OpenAI为例演示简单的创建流程。
1: 注册账户

2:创建AI Gateway
- 创建网关 「AI」->「AI Gateway」->「创建网关」:

- 自定义网关名称,点击「创建」:

- 点击「
名字 API Endpoints」查看详情:

- 选择不同提供商的
API,展示不同的代理域名,复制即可替换OpenAI域名。创建完成之后要等到几分钟才能使用。

- 最终域名

3: 监控与调整
- 在
Cloudflare Dashboard中,监控Worker的表现和请求日志。 - 根据需要调整缓存、速率限制等设置。

可以设置是否使用缓存和设置使用速率限制,建议不要使用缓存,可能导致不同问题出现重复答案。

测试接口并发布AI命令行工具
接口实现
- 下载
pnpm i openai - 核心代码
import OpenAI from 'openai'; // OpenAI实例 this.client = new OpenAI({ baseURL: '', apiKey: '', organization: '', }) // 实现 async chatCompletions(client: OpenAI, messages: OpenAI.Chat.Completions.ChatCompletionMessageParam[]) { try { const completion: OpenAI.Chat.Completions.ChatCompletion = await client.chat.completions.create({ model: 'gpt-3.5-turbo', messages }) return completion.choices[0].message; } catch (error) { throw new HttpException( error.message || '服务器异常', HttpStatus.BAD_REQUEST, ); } } // 调用 // messages传参 chatCompletions(this.client, messages)
脚手架实现代码
- 下载
pnpm install axios commander ora - 核心代码
#!/usr/bin/env node import axios from "axios"; import ora from "ora"; import { program } from "commander"; const spinner = ora("查询中..."); program .version("1.0.0") .command("query <content>") .description("query content") .action(async (content: string) => { try { spinner.start(); const messages = [ { role: "system", content: "你是一个乐于助人的助手。", }, { role: "user", content, }, ]; const res = await axios.post( "https://api.vliangao.cn/blog/ai/chatCompletions", { messages, } ); if (res.data) { spinner.succeed("查询完成"); console.log("查询结果:", res.data.data.content); } else { spinner.succeed("查询失败:" + (res.data.message || "服务器异常")); } } catch (error: any) { spinner.succeed("查询失败:" + (error.message || "服务器异常")); } }); program.parse(process.argv);
演示
- 下载
npm i lg-ai -g - 命令行输入
// lg query <content> lg query hi - 结果
