TG Bot接入OpenAI API,用命令行也能与AI对话

浏览:2658次阅读
没有评论

前言

我所遇到的问题相信大家也都遇到了,有时候与 chatGPT 对话时经常出现 1 小时内请求过多的情况,心情不好就不跟你聊了。

于是

我为了测试 text 模型到底怎么样,有没有大家说的那么神奇,我与 GPT 的交互陷入了一个死循环。原因是我想让它帮我写用 tg bot 接入 OpenAI,然后用和 bot 交互,你猜怎么着,GPT 模型不支持 API 调用,目前只能用 post 请求,这就把 GPT 给难坏了,4 小时这代码也没写明白,一个劲儿说我请求次数太多!最后我给它一个 60 分吧,感觉嗷,用 AI 取代程序员还有待时日。

TG Bot接入OpenAI API,用命令行也能与AI对话插图

本文内容一共分为两个部分,第一部分是在一台 linux 服务器,直接用 python 命令行的方式与最新的模型 Davinci-003 交互;第二部分是与已经接入 API 的 telegram bot 交互,实现的方法也很简单,主要命令和代码如下:

第一部分

首先我们需要在服务器上安装 pip 和 openai 库:

apt update
apt install pip vim -y
pip install openai

然后,需要申请 OpenAI 的 api,在这里申请:https://platform.openai.com/account/api-keys
顺便说一下,申请 api 需要先绑定信用卡,不支持中国卡,哇咔咔!推荐使用:https://iweec.com/709.html
绑卡后两个月送 $18,随便造;参考费用是 750 个单词算 1000tokens,费用 $0.02。为了测试不超标,我把消费限制在每月最多 $1。设置限额的方法就是在 https://platform.openai.com/account/billing/limits 看条件设置吧!

然后,就是在 vps 上创建 main.py, 内容如下:

import openai

openai.api_key = "这里是你申请到的 API-key"

def chat_with_gpt3(prompt):
    response = openai.Completion.create(
        engine="text-davinci-003",
        prompt=prompt,
        max_tokens=104,
        n=1,
        stop=None,
        temperature=0.5,
    )
    message = response.choices[0].text
    return message

def main():
    while True:
        message = input("You:")
        response_message = chat_with_gpt3(message)
        print(f"Bot: {response_message}")

if __name__ == "__main__":
    main()

最后执行 python3 chat.py,即可实现交互问答:
TG Bot接入OpenAI API,用命令行也能与AI对话插图1

第二部分

首先还是要申请 OpenAI 的 apikey,方法上面说了;
然后这个 vps 也必须是海外的嗷,因为我们要用 bot;

apt update
apt install pip vim -y
pip install openai aiogram 

下一步就是新建 main.py,内容如下:

import openai
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor

token = '这里是你的 bot token'
openai.api_key = '这里是你的 api-key'

bot = Bot(token)
dp = Dispatcher(bot)

@dp.message_handler()
async def send(message : types.Message):
    response = openai.Completion.create(
    model="text-davinci-003",
    prompt=message.text,
    temperature=0.9,
    max_tokens=1000,
    top_p=1.0,
    frequency_penalty=0.0,
    presence_penalty=0.6,
    stop=["You:"]
)
    await message.answer(response['choices'][0]['text'])

executor.start_polling(dp, skip_updates=True)

最后,就是执行 python3 main.py,提示:Updates were skipped successfully. 就可以到你的 bot 当中,跟他聊一下!

小结

切记:不要暴露 API 和 token!!

我在上面用例当中引用的 text-davinci-003 模型,虽然快,但是有点傻:

正文完
 0

科技与狠活

文章搜索
最新文章
标签云
AgentGPTaiAI写作AI创作AI变声ai工具AI换脸AI绘画AI编程AI视频AI音乐alistAlpacaAnthropicAPIAutoGPTAWSbardBingbuzzBybitCHAT GPT 国内版免费ChatbotUIChatGPTChatGPT中文版ChatGPT使用ChatGPT写论文chatgpt国内怎么用ChatGPT官网chatgpt官网中文版chatGPT怎么用ChatGPT是什么意思chatgpt注册Cherry Studioclaudeclaude 3.7 sonnetClaude Codeclaudecodeclaud注册clineCodeFormerCodexCopilotcursorDALL-E 3deepseekDeepSeek R1DeepSeek-R1discorddockerFaceFusionFaceFusion汉化版GeminiGnomeGPT SoVITSGPT-4gpt-4oGPT-5gpt4.0gpt4oheygenIDMImageCreatoriosiphoneIP代理linuxLX MusicManusMidjourneyMidjourney官网Midjourney怎么用Midjourney注册MiniGPT-4MonicaNameCheapNameCheap优惠码netbootNewBingNext WebOpen InterpreteropenAIOpenAI o3openai官网opencodeOpenManusopusOraclePandoraPhotoshopPhotoshop beatPhotoshop下载Photoshop免费版potplayerpotplayer播放器proxysixPSPSAIReplits3fsScalewaySDXLshhsshSunotabbytabby下载TampermonkeytelegramterminalTermius,Windtermtextfreetgtiktoktiktok下载tiktok官网tiktok是什么TrollStoreTTSTwitchTwitch下载Twitch如何直播Twitch直播UIumamiUSDTutoolsVercelvpsVPS使用VPS扩容VPS服务器vps赚钱vs codevscodeWhisper云服务器亚马逊云人工智能人形机器人免费CHATGPT中文版加密货币去马斯克国内怎么玩chatgpt国外vps国际版抖音TIKTOK域名外币卡对象存储巨魔2建站建站教程微信多开必应抖音国际版数字人文字转语音文本转语音服务器机器人机器人女友比特币油猴洛雪音乐甲骨文百度网盘百度网盘下载网站克隆网站监控网站监控工具网站统计翻译苹果AI虚拟号码视频播放器视频播放器下载视频翻译视频转文字语音克隆语音转文本谷歌邮件服务器门罗币闲置vps静态IP韩国VPS音乐下载香港VPS香港vps主机