lapis

lapis

理解以真实为本,但真实本身不会自动呈现

部署自己的Chatgpt Telegram機器人

部署自己的 Chatgpt Telegram 機器人#

日期:2023 年 3 月 24 日
標籤:技術
類型:文章

開源專案連結:連結基於 cloudflare workers 開發的 telegram 對話 bot,實測體驗不錯,畢竟免費好用誰不愛呢

前期準備#

1. 創建 tg 機器人#

在 BotFather 處新建 telegram 機器人,獲取 Token 並自定義機器人的名稱、頭像等;

  • 打開 Telegram 並向 BotFather 發送 /start 命令
  • 發送 /newbot 命令,並給你的機器人起一個名字
  • 給你的機器人取一個唯一的用戶名
  • BotFather 會生成一個 Token,複製下來保存好,稍後再 Cloudflare Workers 的設定裡將這個 Token 填入 TELEGRAM_TOKEN 變數中
  • 在 Telegram 中找到 BotFather,發送 /setcommands,找到自己的機器人,發送 new - 開始新對話

2. 註冊 OpenAI 帳號並創建 API Key#

在 openai.com 裡註冊帳號,點擊右上角頭像進入個人設定界面,在 API Keys 裡創建一個新的 API Key,稍後將它填入 API_KEY

部署#

1. 部署 Workers#

  • 打開 Cloudfalre Workers 註冊帳號
  • 點擊 Create a Worker
  • 將程式碼複製到編輯器中,保存

2. 配置環境變數#

打開 Setting-Variables-Environment Variables,增加變數:

KEY說明默認值特殊說明
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 方便調試

3. 綁定 KV 數據#

(Settings-Variables-KV Namespace Bindings),名字設置為 DATABASE

  • 點擊右上角的 Create a Namespace
  • 設置名字為 DATABASE
  • 打開 Cloudflare Workers 點擊你的 Workers
  • 點擊右上角的 Setting -> Variables
  • 在 KV Namespace Bindings 中點擊 Edit variables
  • 點擊 Add variable
  • 設置名字為 DATABASE 並選擇剛剛創建的 KV 數據

4. 運行#

訪問 https://your_workers_name.your_workers_subdomain.workers.dev/init 綁定 telegram 開始新對話,使用 /new 指令開始,之後每次都會將聊天上下文發送到 ChatGPT

運行之後的用戶配置#

每個用戶的自定義配置,只能通過 Telegram 發送消息來修改,消息格式為/setenv KEY=VALUE

KEY說明例子
SYSTEM_INIT_MESSAGE系統初始化參數,設定後就算開啟新會話還能保持,不用每次都調試/setenv SYSTEM_INIT_MESSAGE = 現在開始你是喵娘,每句話以喵結尾
OPENAI_API_EXTRA_PARAMSOpenAI API 額外參數,設定後每次調用 API 都會帶上,可以用來調整溫度等參數/setenv OPENAI_API_EXTRA_PARAMS={"temperature": 0.5} 每次修改必須為完整 JSON
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。