Python一行代碼實現(xiàn)ChatGPT接入微信機器人
正文
去年開發(fā)了一個開源項目:PyOfficeRobot,微信聊天機器人。今年ChatGPT大火,很多朋友在后臺提問:
能不能把微信機器人和ChatGPT加在一起?1行代碼就可以調(diào)用~
當然可以了!視頻教程已經(jīng)錄制好了??傳送門,在這里,我們分享一下文字教程。??
1、實現(xiàn)原理
也許所有智能聊天機器人都是下圖這種實現(xiàn)思路?
首先通過代碼(不限語言)去獲取聊天內(nèi)容,其次把聊天內(nèi)容傳給AI后臺,最后把拿到的AI回復,原路傳給聊天界面。
在這個過程中,問題的難點有:
- 如何獲取聊天內(nèi)容;
- 如何調(diào)用AI回復;
- 如何正確的自動回復。
在開發(fā)的過程中你會發(fā)現(xiàn),其中最后一項:如何正確每一次對話是最難的。
有很多種實現(xiàn)方式,今天我們講最簡單的一種,如果點贊超過100,我會給大家更新一個更復雜的方式~
2、上代碼
下載PyOfficeRobot
pip install PyOfficeRobot
1行代碼,實現(xiàn)微信機器人 + ChatGPT
import PyOfficeRobot PyOfficeRobot.chat.chat_by_gpt(who='程序員晚楓', api_key='你的api_key')
3、參數(shù)說明
上面只列出了2個參數(shù):
- who='程序員晚楓':必填,你想智能回復的人;
- api_key='你的api_key':必填,你自己的ChatGPT
其實在方法內(nèi)部還有一系列參數(shù),不過我們的項目主要給小白使用,我都給填了默認值,如果你是專業(yè)開發(fā),可以參考下面的說明,去修改一下。(來自OpenAI官網(wǎng))
completions = openai.Completion.create( engine=model_engine, prompt=prompt, max_tokens=max_tokens, # 生成結(jié)果時的最大 tokens 數(shù)。平均一個漢字是 2 個 tokens,text-davinci-003 最多是 4000 個 tokens,也就是 2000 個漢字左右 n=n, stop=stop, temperature=temperature, # 控制結(jié)果的隨機性,如果希望結(jié)果更有差異性 0.9,或者希望有固定結(jié)果可以嘗試 0.0 top_p=top_p, # 一個可用于代替 temperature 的參數(shù),對應機器學習中 nucleus sampling,如果設置 0.1 意味著只考慮構成前 10% 概率質(zhì)量的 tokens frequency_penalty=frequency_penalty, # 控制字符的重復度,取值為 -2.0 ~ 2.0 之間的數(shù)字 presence_penalty=presence_penalty # 控制主題的重復度,取值為 -2.0 ~ 2.0 之間的數(shù)字 )
4、寫在最后
GPT-3,尤其是GPT-4發(fā)布以后,越來越多的大廠加入到這場AIGC的競爭中,你覺得哪家公司會笑道最后?
以上就是Python一行代碼實現(xiàn)ChatGPT接入微信機器人的詳細內(nèi)容,更多關于Python ChatGPT接入微信的資料請關注腳本之家其它相關文章!
相關文章
基于并發(fā)服務器幾種實現(xiàn)方法(總結(jié))
下面小編就為大家分享一篇基于并發(fā)服務器幾種實現(xiàn)方法(總結(jié)),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12python實現(xiàn)excel和csv中的vlookup函數(shù)示例代碼
這篇文章主要介紹了python實現(xiàn)excel和csv中的vlookup函數(shù),介紹如何使用python在excel和csv里實現(xiàn)vlookup函數(shù)的功能,首先需要簡單了解一下python如何操作excel,需要的朋友可以參考下2023-01-01全面了解Python的getattr(),setattr(),delattr(),hasattr()
下面小編就為大家?guī)硪黄媪私釶ython的getattr(),setattr(),delattr(),hasattr()。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06python使用threading.Condition交替打印兩個字符
這篇文章主要為大家詳細介紹了python使用threading.Condition交替打印兩個字符,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05