最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python代碼實現(xiàn)輕松編寫一個QQ AI機器人

 更新時間:2026年03月10日 08:52:52   作者:ofox  
這篇文章主要介紹了如何結(jié)合QQ 官方 Python SDK + 任意大模型 API,用30 行代碼搞定一個能在 QQ 群里聊天的 AI 機器人,不用裝任何桌面客戶端,一個 Python 腳本跑在服務器上就行,感興趣的小伙伴可以了解下

最近刷熱榜全是 OpenClaw 接 QQ Bot 的教程,看起來很香:掃碼創(chuàng)建機器人、一鍵接入 AI、5 分鐘搞定。

但我下載完 OpenClaw 一看——800MB 的客戶端,Electron 套殼,內(nèi)存 1.2G 起步。我就想讓機器人在群里回答問題而已,有必要裝這么重的東西?

于是我試了另一條路:QQ 官方 Python SDK + 任意大模型 API,30 行代碼搞定一個能在 QQ 群里聊天的 AI 機器人。不用裝任何桌面客戶端,一個 Python 腳本跑在服務器上就行。

先說結(jié)論

方案部署方式資源占用靈活性上手難度
OpenClaw + QQ桌面客戶端內(nèi)存 1.2G+開箱即用但定制難?
botpy + AI APIPython 腳本內(nèi)存 50MB想接什么模型接什么??
go-cqhttp(非官方)Docker/二進制內(nèi)存 30MB功能最全但有封號風險???

我最終選了 botpy(QQ 官方 SDK),原因很簡單:官方支持 = 不怕封號。

準備工作:3 分鐘注冊 QQ 機器人

騰訊上周剛開放了個人開發(fā)者注冊(終于?。?,流程很快:

  • 打開 QQ 開放平臺,手機 QQ 掃碼登錄
  • 點「創(chuàng)建機器人」,填個名字和簡介
  • 拿到 appidtoken

一個 QQ 號最多創(chuàng)建 5 個機器人。注意:目前個人開發(fā)者只能在群聊里用,私聊功能還沒開放。

核心代碼:30 行搞定

先裝依賴:

pip install qq-botpy openai

然后就是完整代碼了:

# qq_ai_bot.py
import botpy
from botpy.message import GroupMessage
from openai import OpenAI

# AI 客戶端 - 兼容 OpenAI 協(xié)議的都能用
ai = OpenAI(
    api_key="your-api-key",
    base_url="https://api.ofox.ai/v1"  # 我用的聚合接口,Claude/GPT/Gemini 隨便切
)

class MyBot(botpy.Client):
    async def on_group_at_message_create(self, message: GroupMessage):
        """群里被 @ 時觸發(fā)"""
        user_msg = message.content.strip()
        if not user_msg:
            return

        # 調(diào)大模型
        resp = ai.chat.completions.create(
            model="claude-sonnet-4-20250514",  # 換成任意模型
            messages=[
                {"role": "system", "content": "你是一個 QQ 群里的 AI 助手,回復簡潔有趣。"},
                {"role": "user", "content": user_msg}
            ],
            max_tokens=500
        )
        answer = resp.choices[0].message.content

        # 回復消息
        await message.reply(content=answer)

intents = botpy.Intents(public_messages=True)
client = MyBot(intents=intents)
client.run(appid="your-appid", secret="your-secret")

沒錯,就這么多。on_group_at_message_create 是群里 @機器人 時的回調(diào),拿到用戶消息 → 丟給大模型 → 回復。

進階:加上多輪對話記憶

光能一問一答太無聊了,加個簡單的上下文記憶:

from collections import defaultdict, deque

# 每個群維護最近 10 輪對話
chat_history = defaultdict(lambda: deque(maxlen=20))

class MyBot(botpy.Client):
    async def on_group_at_message_create(self, message: GroupMessage):
        user_msg = message.content.strip()
        if not user_msg:
            return

        group_id = message.group_openid
        history = chat_history[group_id]
        history.append({"role": "user", "content": user_msg})

        messages = [
            {"role": "system", "content": "你是 QQ 群里的 AI 助手,回復簡潔有趣,不超過 200 字。"}
        ] + list(history)

        resp = ai.chat.completions.create(
            model="claude-sonnet-4-20250514",
            messages=messages,
            max_tokens=500
        )
        answer = resp.choices[0].message.content
        history.append({"role": "assistant", "content": answer})

        await message.reply(content=answer)

deque(maxlen=20) 自動滾動,內(nèi)存占用幾乎為零。如果你想更持久,換成 Redis 或 SQLite 都行,但對于群聊機器人來說,記住最近幾輪就夠了。

踩坑記錄

坑 1:botpy 版本混亂

pip install botpy 裝的不是官方版本!QQ 官方的包名是 qq-botpy

# ? 錯誤
pip install botpy

# ? 正確
pip install qq-botpy

裝錯了會報一堆莫名其妙的 import 錯誤,我在這上面浪費了半小時。

坑 2:群聊需要額外申請

個人開發(fā)者創(chuàng)建完機器人后,默認只有頻道權(quán)限。想在QQ 群里用,需要在開放平臺后臺額外勾選「群聊」場景,然后等審核(大概 1-2 小時)。

很多教程沒提這一步,導致代碼寫好了機器人死活不響應。

坑 3:消息里的 @前綴 要處理

用戶在群里 @機器人 發(fā)消息時,message.content 前面會帶一個 @機器人名字 的前綴(注意有個空格)。如果不處理,這段文字會一起發(fā)給大模型,導致回復很奇怪。

# 清理 @ 前綴
user_msg = message.content.strip()
if user_msg.startswith(f"@{bot_name}"):
    user_msg = user_msg[len(f"@{bot_name}"):].strip()

坑 4:回復有頻率限制

QQ 機器人有頻率限制:被動回復每分鐘最多 5 條(個人開發(fā)者),超過會被靜默丟棄,不報錯。

解決方案:對于長回復,先截斷到 500 字以內(nèi);對于高頻群,加個 cooldown:

import time

last_reply = {}

async def on_group_at_message_create(self, message: GroupMessage):
    group_id = message.group_openid
    now = time.time()
    if now - last_reply.get(group_id, 0) < 12:  # 12秒冷卻
        return
    last_reply[group_id] = now
    # ... 正常處理

模型怎么選

QQ 群聊場景比較特殊:消息短、要求響應快、上下文碎片化。我試了幾個模型的體驗:

模型響應速度群聊效果適合場景
GPT-4.1-mini0.8s回復質(zhì)量高但偶爾太長技術群
Claude Sonnet1.2s語氣自然,長度適中通用群
Gemini Flash0.5s最快,但中文偶爾拉胯對速度要求高
Qwen-Plus0.6s中文最好,回復接地氣中文閑聊群

我最后在代碼里用的是 Claude Sonnet,因為群聊場景下它的回復長度和語氣最合適。如果你更在意速度,Gemini Flash 是最快的。這些模型我都是通過一個聚合接口調(diào)的,改個 model 參數(shù)就切換了,不用管各家 API 的差異。

部署:丟到服務器上跑

本地測試沒問題后,直接 nohup 掛后臺就行:

想更穩(wěn)定可以用 systemd 或 supervisor,但說實話對于個人用的小機器人,nohup 夠了。

小結(jié)

全網(wǎng)都在裝 OpenClaw 搞 QQ 機器人,但如果你只是想讓機器人能聊天、能回答問題,完全沒必要裝一個 800MB 的桌面客戶端。QQ 官方 SDK + 一個 AI API,30 行 Python 就夠了。

當然 OpenClaw 的優(yōu)勢在于它的多 Agent 能力和可視化配置,如果你需要復雜的工作流編排,那確實比自己寫代碼方便。但對于「群里 @機器人問個問題」這種簡單場景,輕量方案完全夠用。

到此這篇關于Python代碼實現(xiàn)輕松編寫一個QQ AI機器人的文章就介紹到這了,更多相關Python QQ機器人內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python實現(xiàn)錄音小程序

    python實現(xiàn)錄音小程序

    這篇文章主要為大家詳細介紹了python實現(xiàn)錄音小程序,實現(xiàn)錄音播放功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 淺談Pandas dataframe數(shù)據(jù)處理方法的速度比較

    淺談Pandas dataframe數(shù)據(jù)處理方法的速度比較

    這篇文章主要介紹了淺談Pandas dataframe數(shù)據(jù)處理方法的速度比較,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Python使用正則表達式過濾或替換HTML標簽的方法詳解

    Python使用正則表達式過濾或替換HTML標簽的方法詳解

    這篇文章主要介紹了Python使用正則表達式過濾或替換HTML標簽的方法,簡單介紹了Python正則相關語法并結(jié)合具體實例形式分析了Python基于正則表達式的HTML標簽過濾與替換相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python實現(xiàn)Mysql全量數(shù)據(jù)同步的腳本分享

    Python實現(xiàn)Mysql全量數(shù)據(jù)同步的腳本分享

    這篇文章主要為大家詳細介紹了基于Python如何實現(xiàn)Mysql全量數(shù)據(jù)同步的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-06-06
  • python3.5 cv2 獲取視頻特定幀生成jpg圖片

    python3.5 cv2 獲取視頻特定幀生成jpg圖片

    這篇文章主要為大家詳細介紹了python3.5 cv2 獲取視頻特定幀生成jpg圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python字符串常見使用操作方法介紹

    python字符串常見使用操作方法介紹

    本文介紹python字符串使用方法,Python最常見數(shù)據(jù)類型就是字符串,無論哪種編程語言,字符串無處不在,比如從用戶那里讀取字符串,并將字符串打印到屏幕顯示出來,字符串是一種數(shù)據(jù)結(jié)構(gòu),下文詳細內(nèi)容介紹需要的朋友可以參考一下
    2022-03-03
  • python實現(xiàn)掃雷小游戲

    python實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 詳解Python圖像處理庫Pillow常用使用方法

    詳解Python圖像處理庫Pillow常用使用方法

    PIL(Python Imaging Library)是Python一個強大方便的圖像處理庫,只支持到Python2.7。這篇文章主要介紹了Python圖像處理庫Pillow常用使用方法,需要的朋友可以參考下
    2019-09-09
  • 一篇超級全面的Python功能圖譜(推薦)

    一篇超級全面的Python功能圖譜(推薦)

    Python作為一種廣受歡迎的高級編程語言,不僅在基本語法上易于學習,還擁有強大的標準庫和活躍的開發(fā)社區(qū),本文詳細介紹了Python從基礎語法到高級應用的全面功能,并通過實際案例和代碼示例展示了其在科學計算、Web開發(fā)、機器學習等多個領域的應用,需要的朋友可以參考下
    2024-09-09
  • 解決python xx.py文件點擊完之后一閃而過的問題

    解決python xx.py文件點擊完之后一閃而過的問題

    今天小編就為大家分享一篇解決python xx.py文件點擊完之后一閃而過的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

平潭县| 桐庐县| 神农架林区| 宜宾县| 闽侯县| 德州市| 普兰县| 通河县| 巫山县| 泰宁县| 易门县| 本溪市| 泾阳县| 托克逊县| 丰原市| 元江| 五峰| 余姚市| 常州市| 嘉荫县| 越西县| 滨州市| 福清市| 右玉县| 易门县| 温宿县| 砚山县| 青浦区| 丘北县| 元朗区| 阳新县| 常熟市| 东山县| 赤壁市| 日土县| 隆德县| 华安县| 仙游县| 朔州市| 桐柏县| 海林市|