Back

8 min read

ChatGPT 深度使用与日用方案

ChatGPT 是一个基于 GPT-3.5-turbo 的聊天机器人,它可以通过简单的 API 调用来实现与人类的对话。
views | comments

前置准备

关于如何注册 OPENAI,网上的方法已经很多了,这里不再赘述。这里简单讲解一下如何拿到 ChatGPT 的 API。

ChatGPT 上注册成功账号后,在 API 页面中,点击 Get API Key 按钮,即可获得你的 API Key。

Get ChatGPT API Key

其他办法

继续深入讲解如何利用你的 API Key 前,先简单讲述一下其他方法:

通过网站:

  1. BAI Chat 就是一个干净免费的网站,完全可以直接使用,并且具备速通能力。
  2. Kliuu ChatGPT 是一个个人搭建的版本,同样有速通能力,但被限制最多输入 30 字符,最多回复 220 字符。

通过 Telegram:

  1. BAI 就是上边提到的 BAI Chat 的 Telegram 版本,速度还算快,体验不错。
  2. BAI White BAI Chat 的镜像版本。
  3. ChatGPT OpenAI Bot 甚至提供语音发送回复,但有 10 秒冷却(等于没有)。

ChatGPT 与 Telegram

如果你对隐私、速度、安全或者单纯自定义有一定的要求,可以尝试自己搭建 Telegram 机器人,拥有更多的灵活度和更快的响应。更多信息详见 Github 项目 TBXark/ChatGPT-Telegram-Workers,下面也简单讲解一下部署流程。

::: timeline

  • 创建 Telegram 机器人

    首先,你需要一个 Telegram 账号,然后在 BotFather 上创建一个机器人,按照提示操作即可。

  • 部署 Workers

    1. Cloudflare Workers 上注册账号
    2. 点击右上角的 Create a Service
    3. 进入新建的 workers,选择 Quick Edit,将 ../dist/index.js 代码复制到编辑器中,保存。
    Alt text
  • 配置环境变量

    前往你的 Workers,点击右上角的 Setting -> Variables,设置下述变量。

    带 * 的为必设置,带 ^ 的为推荐设置

    变量名简述默认值特殊说明
    *API_KEYOpenAI API Keynull
    *TELEGRAM_AVAILABLE_TOKENS支持多个 Telegram Bot Tokennull多个 Token 用,分隔
    *CHAT_WHITE_LIST聊天 ID 白名单null多个 ID 用,分隔,不知道 ID,和机器人聊一句就能返回
    I_AM_A_GENEROUS_PERSON关闭白名单,允许所有人访问false鉴于很多人不想设置白名单,或者不知道怎么获取 ID,所以设置这个选项就能允许所有人访问, 值为true时生效
    AUTO_TRIM_HISTORY自动清理历史记录true为了避免 4096 字符限制,将消息删减
    MAX_HISTORY_LENGTH最大历史记录长度20AUTO_TRIM_HISTORY开启后 为了避免 4096 字符限制,将消息删减
    CHAT_MODELopen ai 模型选择gpt-3.5-turbo
    SYSTEM_INIT_MESSAGE系统初始化信息你是一个得力的助手默认机器人设定
    SYSTEM_INIT_MESSAGE_ROLE系统初始化信息角色system默认机器人设定
    ^ENABLE_USAGE_STATISTICS开启使用统计false开启后,每次调用 API 都会记录到 KV,可以通过/usage查看
    HIDE_COMMAND_BUTTONS隐藏指令按钮null把想要隐藏的按钮写入用逗号分开/start,/system, 记得带上斜杠,修改之后得重新init
    DEBUG_MODE调试模式false目前可以把最新一条消息保存到 KV 方便调试
    *WORKERS_DOMAINWorkers 域名null例如 workers_name.username.workers.dev
  • 配置 KV 数据库

    1. 前往侧栏的 Workers -> KV,点击右上角的 Create a Namespace, 名字随便取, 但是绑定的时候必须设定为DATABASE
    2. 点击右上角的 Setting -> Variables
    3. KV Namespace Bindings 中点击 Edit variables
    4. 点击 Add variable
    5. 设置名字为DATABASE 并选择刚刚创建的 KV 数据
  • 初始化

    1. 运行 https://workers_name.username.workers.dev/init 自动绑定 telegram 的 webhook 和设定所有指令
    2. 开始新对话,使用/new指令开始,之后每次都会将聊天上下文发送到 ChatGPT
    3. 使用/setenv KEY=VALUE指令修改用户配置,例如SETENV SYSTEM_INIT_MESSAGE=现在开始是喵娘,每句话已喵结尾
    4. 使用 /role 角色名 SYSTEM_INIT_MESSAGE=现在开始是猫娘,每句话以喵结尾 可以创建一个新角色,并使用 ~角色名 聊天内容 调用。

:::

ChatGPT 与 AMA

AMA(Ask Me Anything)原本指一种在线问答形式,这里只是一个 ChatGPT 第三方客户端,支持 Android 和 iOS。

如果你还想获得速通能力,可以尝试自己设置 API Server(原理就是反代官方 API 接口)(感谢 sfc9982’s blog 提供的思路)。

与上文相同,你需要在 Cloudflare Workers 上部署一个 Worker。相关注册等流程上文讲过这里不再赘述。

::: timeline

  • 注意部署内容有发生改变,你需要填入以下内容:

    const TELEGRAPH_URL = 'https://api.openai.com'
    addEventListener('fetch', (event) => {
    event.respondWith(handleRequest(event.request))
    })
    async function handleRequest(request) {
    const url = new URL(request.url)
    url.host = TELEGRAPH_URL.replace(/^https?:\/\//, '')
    const modifiedRequest = new Request(url.toString(), {
    headers: request.headers,
    method: request.method,
    body: request.body,
    redirect: 'follow'
    })
    const response = await fetch(modifiedRequest)
    const modifiedResponse = new Response(response.body, response)
    // 添加允许跨域访问的响应头
    modifiedResponse.headers.set('Access-Control-Allow-Origin', '*')
    return modifiedResponse
    }
  • 点击编辑器右下角的 “Save and deploy” 按钮部署该代码,在弹出的对话框中继续选择 “Save and deploy” 确认部署。

  • 在 Cloudflare Workers 的管理界面中,点击 “Triggers” 选项卡,然后点击 “Custom Domians” 中的 “Add Custom Domain” 按钮以绑定自己的域名(为的是防止免费提供的域名本身被拒绝速通,如果你能用也可以不设置)。

  • 测试:将官方的 https://api.openai.com/v1/chat/completions 换为自己的域名(如 https://mydomain.com/v1/chat/completions ),如果打开收到结果如:

    {
    "error": {
    "message": "You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.",
    "type": "invalid_request_error",
    "param": null,
    "code": null
    }
    }

    说明你部署反代成功。只需填入 AMA 的设置中的 API Server 即可。

:::

ChatGPT 与 PureWriter

PureWriter 中文名纯纯写作,是一款优秀的写作工具,支持 Windows、Android 平台(但 Windows 功能比较残缺),这里以 Android 版(也只有这个支持)为例。

下载:Pure Writer 官网

在设置中可输入 ChatGPT 的 API Key 即可快速启用。注意纯纯写作不支持自定义 API Server,没有办法速通。

Pure Writer

除了 “时光机” 界面外,还能在打字界面调用,有效提升写作效率。当然你也可以单纯当作一款 ChatGPT 客户端。

  • Author: CWorld
  • Update date: March 27, 2023
  • Copyright: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
  • Link: https://cworld.top/blog/chatgpt
Comment seems to stuck. Try to refresh?✨