用vps體驗一下人工智能問答吧
前言
我所遇到的問題相信大家也都遇到了,有時候與chatGPT對話時經(jīng)常出現(xiàn)1小時內(nèi)請求過多的情況,心情不好就不跟你聊了。
于是
我為了測試text模型到底怎么樣,有沒有大家說的那么神奇,我與GPT的交互陷入了一個死循環(huán)。原因是我想讓它幫我寫用tg bot接入OpenAI,然后用和bot交互,你猜怎么著,GPT模型不支持API調(diào)用,目前只能用post請求,這就把GPT給難壞了,4小時這代碼也沒寫明白,一個勁兒說我請求次數(shù)太多!最后我給它一個60分吧,感覺嗷,用AI取代程序員還有待時日。
本文內(nèi)容一共分為兩個部分,第一部分是在一臺linux服務(wù)器,直接用python命令行的方式與最新的模型 Davinci-003交互;第二部分是與已經(jīng)接入API的telegram bot交互,實現(xiàn)的方法也很簡單,主要命令和代碼如下:
第一部分
首先我們需要在服務(wù)器上安裝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。設(shè)置限額的方法就是在 https://platform.openai.com/account/billing/limits 看經(jīng)濟條件設(shè)置吧!
然后,就是在vps上創(chuàng)建 main.py,內(nèi)容如下:
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()
最后執(zhí)行 python3 chat.py,即可實現(xiàn)交互問答:

第二部分
首先還是要申請OpenAI的apikey,方法上面說了;
然后這個vps也必須是海外的嗷,因為我們要用bot;
apt update
apt install pip vim -y
pip install openai aiogram
下一步就是新建main.py,內(nèi)容如下:
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)
最后,就是執(zhí)行 python3 main.py,提示:Updates were skipped successfully.就可以到你的bot當中,跟他聊一下!

小結(jié)
切記:不要暴露API和token!!
我在上面用例當中引用的text-davinci-003模型,雖然快,但是有點傻:
