搜尋
首頁後端開發Python教學怎麼使用Python對接OpenAi API實現智慧QQ機器人

怎麼使用Python對接OpenAi API實現智慧QQ機器人

這些SDK不只可以用來開發機器人,還可以自由的開發你想要的效果,如你所想,他是一個工具包,幫你chuanchuan建構一個ChatGPT服務和會話。

最近OpenAi給他套上了一個CloudflareCDN服務,這個服務會去攔截非真機請求,現在已經可以破解了。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

尋找合適的逆向SDK

怎麼使用Python對接OpenAi API實現智慧QQ機器人

原作者用的是這​​個。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

整個套件的檔案並不是很多,喜歡Python的可以去看看,我這個Java看不太懂。

實作開始-實作篇第一

程式碼中使用到的revChatGPT依賴原始碼庫:
https://github.com/acheong08/ChatGPT

#我們的Python版本,需要>=3.8,然後pip直接升級到最新版本。

下面程式碼的目的是與ChatGPT官方介面互動,注意安裝裡面用到的依賴
chat-gpt-qbot.py:

import flask, json
from flask import request
from revChatGPT.revChatGPT import Chatbot
config = {
    "session_token": "换成你自己的token"
}
# 创建一个服务,把当前这个python文件当做一个服务
server = flask.Flask(__name__)
chatbot = Chatbot(config, conversation_id=None)
def chat(msg):
    message = chatbot.get_chat_response(msg)['message']
    print(message)
    return message
@server.route('/chat', methods=['post'])
def chatapi():
    requestJson = request.get_data()
    if requestJson is None or requestJson == "" or requestJson == {}:
        resu = {'code': 1, 'msg': '请求内容不能为空'}
        return json.dumps(resu, ensure_ascii=False)
    data = json.loads(requestJson)
    print(data)
    try:
        msg = chat(data['msg'])
    except Exception as error:
        print("接口报错")
        resu = {'code': 1, 'msg': '请求异常: ' + str(error)}
        return json.dumps(resu, ensure_ascii=False)
    else:
        resu = {'code': 0, 'data': msg}
        return json.dumps(resu, ensure_ascii=False)
if __name__ == '__main__':
    server.run(port=7777, host='0.0.0.0')

怎麼使用Python對接OpenAi API實現智慧QQ機器人

我們導入我們的逆向套件。

from revChatGPT.revChatGPT import Chatbot

怎麼使用Python對接OpenAi API實現智慧QQ機器人

這是逆向包裡面的源碼,用來初始化一個服務,我們剛剛的類別中呼叫了這個套件。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

然後去建立拋出這個服務的接口,方便被呼叫。

我們只要執行上面的程式碼就可以在7777埠直接與ChatGPT互動了。
我們使用介面工具測試一下,結果如下圖,可以看到,介面正常工作並從ChatGPT得到了對話結果。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

其中訊息體:

{"msg": "你会数学吗"}

訊息體是我們自訂的內容,你可以自己增加欄位對介面進行功能擴充
本例子中的msg就是我們的發言內容
而介面回傳的:

{ "code": 0, "data": "是的,我会数学。我是一个大型语言模型,我可以回答各种问题,包括数学问题。你有什么数学问题需要我帮助你解决吗?"}

這也是我們自己定義的,當code=0時代表與ChatGPT#互動成功,此時dataChatGPT回饋給我們的對話內容。而當code=1時說明出現了錯誤,此時沒有data,但在msg中回傳了錯誤訊息。

到這裡我們就擁有了一個可以和ChatGPT交互到接口,透過這個接口,我們就能與ChatGPT進行對話

既然進行對話,那就需要一個輸入框和一個按鈕,你可以做一個網頁來呼叫這個接口,這很簡單,我們不在這裡贅述了。

我們真正要做的是一個QQ機器人,其原理就是讓QQ機器人監聽到訊息,並透過我們的介面把訊息轉發給ChatGPT,然後再把ChatGPT回傳的對話內容傳送給QQ用戶,這樣一個可以對話的機器人就做好了,具體做法,下文繼續講解。

實踐繼續-實踐篇第二

上文我們實現了一個接口,用代碼成功獲取到了ChatGPT的對話內容,下面我們將繼續完善QQ機器人相關邏輯,注意看程式碼中的註解。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

為了更方便的將優化後(接入QQ機器人)的程式碼,與之前的程式碼比較,我開啟一個本地比較,並收起了沒有變動的程式碼。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

怎麼使用Python對接OpenAi API實現智慧QQ機器人

怎麼使用Python對接OpenAi API實現智慧QQ機器人

#

機器人的互動實現邏輯,這個你可能會看不懂,因為我們是使用了一個機器人框架,那其實我們不要局限自己的思想,我們可以嘗試自己修改使用其他機器人框架,比如雲仔機器人,邏輯去自己實作。

我們使用的是go-cqhttp

go-cqhttp幫助中心

所以說,這一寫更改,你得去了解這個go-cqhttp你才能看懂,不過我們要靈活學習,我們只需要了解思路便可,然後去官方文件找使用方法。

此時,這些程式碼已經擁有了處理好友請求、拉群請求、回覆訊息的功能。

可以看到,相對於上個文章,我們增加了很多程式碼,並且都加了註解

當然,這些程式碼看不懂沒關係,可以照著我的文章改一下對應的地方,直接用。

大家來原創作者Q群玩兒,我也在裡面:206867743

實務繼續-實作篇第三

前兩篇文章我們已經解決了和ChatGPT通訊的問題和QQ處理訊息的問題,現在我們就需要處理如何監聽QQ消息了。

在一次次的更新和遇到的問題中,原創作者和逆向套件的許多作者都更新了很多內容,我們看看原創作者的更新記錄:

2022-12-12 23:52 增加一個Windows專用版本,只能在Windows電腦或伺服器上使用,可以自動取得cloudflare Cookie 2022-12-12 12:38 更新內容增加CloudFlare配置,更新依賴,暫不支援帳號密碼,暫不知道CloudFlare配置多久需要更換一次,現在好像必須要翻牆了 2022-12-10 17:42 更新內容增加帳號密碼支持,可以不使用token ,直接使用帳號密碼2022-12-10 00:23 更新內容將每個QQ私聊區分,每個人私聊機器人都是一個獨立的會話將每個QQ群區分,每個QQ群是一個獨立的會話增加回覆字數限制,超過限制轉換成圖片回复(見配置文件)如果想要重置會話,對機器人發送:重置會話

簡介

監聽QQ訊息並不需要我們寫程式碼,因為市面上已經有很多開源QQ機器人框架,在這裡我們使用go-cqhttp
#官方文件: go-cqhttp
如果您有興趣的話,可以閱讀一下官方文檔,如果不想看,直接看我的文章就好。

前提條件您需要準備一個QQ號,不要使用自己大號您需要準備一個OpenAi的帳號,用來獲取Token一台伺服器(可選,如果您想讓機器人7x24小時在線的話,請準備一台,1核1G足以,外服最好)

注意:OpenAi(ChatGPT)的註冊方式B站有一堆視頻,隨便參考一個就行。

不會註冊也可以看看我部落格的文章:一文教你快速註冊OpenAi(ChatGPT)

(舊版)機器人搭建教學我也是寫過了:使用OpenGPT(ChatGPT)搭建QQ 機器人

但是!注意,先前說過,現在的ChatGPT套了一個CFCDN,會攔截人機互動請求。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

那我們現在,除了需要取得OpenAisession-token,還需要取得cf_clearance

同時,我們還需要取得user-agent

怎麼使用Python對接OpenAi API實現智慧QQ機器人

前往控制台的網路標籤裡面查看,如果是空白,你發一句訊息就可以。

複製之後寫到設定檔中,也就是py/config.js檔。

目前原始作者打包了兩個版本,一個Linux的,麻煩在於cfCDN交互令牌會在2H內失效,我們需要手動獲取並更新,麻煩。

另一個是window版本,已經實作自動取得CloudflareCookie

設定指南

怎麼使用Python對接OpenAi API實現智慧QQ機器人

這個版本只能在Windows上使用,Windows電腦或伺服器都行。

依然只支持token。

系統會自動開啟Google瀏覽器取得Cloufflare相關Cookie,第一次執行時可能需要手動驗證,請注意點一下。

注意,腳本它只能開啟Google瀏覽器,沒配置其他瀏覽器。

其他描述

那在作者最新版本的程式碼裡面,也是新增了一部分功能。

怎麼使用Python對接OpenAi API實現智慧QQ機器人

自行研究。

然後很多逆向包作者也在想一個完美解決的辦法,我們慢慢等待吧!

怎麼使用Python對接OpenAi API實現智慧QQ機器人

然後,請看這句話:

怎麼使用Python對接OpenAi API實現智慧QQ機器人

以上是怎麼使用Python對接OpenAi API實現智慧QQ機器人的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Apr 02, 2025 am 07:12 AM

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具