国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手把手教你使用Python調(diào)用 ChatGPT!支持http代理

這篇具有很好參考價(jià)值的文章主要介紹了手把手教你使用Python調(diào)用 ChatGPT!支持http代理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

手把手教你使用Python調(diào)用 ChatGPT!支持http代理

作者:虛壞叔叔
博客:https://xuhss.com

早餐店不會(huì)開(kāi)到晚上,想吃的人早就來(lái)了!??

手把手教你使用Python調(diào)用 ChatGPT!支持http代理

前段時(shí)間OpenAI 開(kāi)放了兩個(gè)新模型的api接口,專門為聊天而生的 gpt-3.5-turbo 和 gpt-3.5-turbo-0301。

手把手教你使用Python調(diào)用 ChatGPT!支持http代理

ChatGPT is powered by gpt-3.5-turbo, OpenAI’s most advanced language model.

從上面這句話,我們可以知道現(xiàn)在 chat.openai.com 官網(wǎng)就是由 gpt-3.5-turbo 模型提供的服務(wù),現(xiàn)在官方公開(kāi)了這一模型的調(diào)用接口,這使得我們這些普通開(kāi)發(fā)者也能直接在自己的應(yīng)用/服務(wù)中使用這個(gè)狂攬億萬(wàn)用戶的模型。

接下來(lái)將和大家介紹如何利用 Python 快速玩轉(zhuǎn) gpt-3.5-turbo。

一、先跑起來(lái),再理解

首先你需要有一個(gè) openai 賬號(hào),如何注冊(cè)我就不多說(shuō)了,網(wǎng)上教程很多,而且很詳細(xì),如果有問(wèn)題可以加我微信:pythonbrief,添加通過(guò)后請(qǐng)直接描述你的問(wèn)題+問(wèn)題截圖。

訪問(wèn)下面頁(yè)面,登錄 openai 賬號(hào)后,創(chuàng)建一個(gè) api keys。

# api keys 創(chuàng)建頁(yè)面

https://platform.openai.com/account/api-keys

接下來(lái)很簡(jiǎn)單了,安裝 openai 官方的 Python SDK,這里需要注意的是得安裝最新版本 openai,官方推薦的是 0.27.0 版本。

pip install openai==0.27.0

直接上請(qǐng)求代碼:

import openai
import json
 
# 目前需要設(shè)置代理才可以訪問(wèn) api
os.environ["HTTP_PROXY"] = "自己的代理地址"
os.environ["HTTPS_PROXY"] = "自己的代理地址"
 
 
def get_api_key():
    # 可以自己根據(jù)自己實(shí)際情況實(shí)現(xiàn)
    # 以我為例子,我是存在一個(gè) openai_key 文件里,json 格式
    '''
    {"api": "你的 api keys"}
    '''
    openai_key_file = '../envs/openai_key'
    with open(openai_key_file, 'r', encoding='utf-8') as f:
        openai_key = json.loads(f.read())
    return openai_key['api']
 
openai.api_key = get_api_key()
 
q = "用python實(shí)現(xiàn):提示手動(dòng)輸入3個(gè)不同的3位數(shù)區(qū)間,輸入結(jié)束后計(jì)算這3個(gè)區(qū)間的交集,并輸出結(jié)果區(qū)間"
rsp = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "一個(gè)有10年P(guān)ython開(kāi)發(fā)經(jīng)驗(yàn)的資深算法工程師"},
        {"role": "user", "content": q}
    ]
)

代碼解析:

  • get_api_key() 函數(shù)是我自己寫(xiě)的一個(gè)從文件讀取 api keys 的方法,我是存在一個(gè) openai_key 文件里,json 格式,你可以改成你自己的獲取方法,甚至可以直接寫(xiě)到代碼里(雖然不推薦,但確實(shí)最簡(jiǎn)單)。
  • q 是請(qǐng)求的問(wèn)題
  • rsp 是發(fā)送請(qǐng)求后返回結(jié)果
  • openai.ChatCompletion.create 中參數(shù)
  • model 是使用的模型名稱,是一個(gè)字符串,用最新模型直接設(shè)置成gpt-3.5-turbo 即可
  • messages 是請(qǐng)求的文本內(nèi)容,是一個(gè)列表,列表里每個(gè)元素類型是字典,具體含義如下表:

程序運(yùn)行返回內(nèi)容,從響應(yīng)回復(fù)內(nèi)容我們可以看到,回復(fù)內(nèi)容是一個(gè) json 字符串,

手把手教你使用Python調(diào)用 ChatGPT!支持http代理

我們可以通過(guò)以下方法直接獲取相關(guān)信息:

返回消息內(nèi)容

rsp.get("choices")[0]["message"]["content"]

角色

rsp.get("choices")[0]["message"]["role"]

問(wèn)題+回答總長(zhǎng)度

rsp.get("usage")["total_tokens"]

其他信息也可以通過(guò)類似方法獲取。

  • 測(cè)試 ChatGPT 回答代碼運(yùn)行情況,可以看出代碼邏輯和運(yùn)行都沒(méi)啥問(wèn)題,注釋也到位。

手把手教你使用Python調(diào)用 ChatGPT!支持http代理

二、實(shí)現(xiàn)多輪對(duì)話

如何實(shí)現(xiàn)多輪對(duì)話?

gpt-3.5-turbo 模型調(diào)用方法 openai.ChatCompletion.create 里傳入的 message 是一個(gè)列表,列表里每個(gè)元素是字典,包含了角色和內(nèi)容,我們只需將每輪對(duì)話都存儲(chǔ)起來(lái),然后每次提問(wèn)都帶上之前的問(wèn)題和回答即可。

手把手教你使用Python調(diào)用 ChatGPT!支持http代理

  • 可以看到,我首先問(wèn)了“1+1=幾”,然后問(wèn)“為什么是這樣”,ChatGPT 會(huì)根據(jù)前面的提問(wèn)將新問(wèn)題識(shí)別為“為什么1+1=2”。
  • 后面繼續(xù)問(wèn)水仙花數(shù)有哪些,再問(wèn)“如何寫(xiě)個(gè)python程序來(lái)識(shí)別這些數(shù)”,ChatGPT 同樣會(huì)根據(jù)前面的提問(wèn)將新問(wèn)題識(shí)別為“如何寫(xiě)個(gè)python程序來(lái)識(shí)別這些水仙花數(shù)”,并給出對(duì)應(yīng)解答。

實(shí)現(xiàn)代碼

import openai
import json
import os
 
os.environ["HTTP_PROXY"] = "http://127.0.0.1:7890"
os.environ["HTTPS_PROXY"] = "http://127.0.0.1:7890"
 
# 獲取 api
def get_api_key():
    # 可以自己根據(jù)自己實(shí)際情況實(shí)現(xiàn)
    # 以我為例子,我是存在一個(gè) openai_key 文件里,json 格式
    '''
    {"api": "你的 api keys"}
    '''
    openai_key_file = '../envs/openai_key'
    with open(openai_key_file, 'r', encoding='utf-8') as f:
        openai_key = json.loads(f.read())
    return openai_key['api']
openai.api_key = get_api_key() 
 
 
 
class ChatGPT:
    def __init__(self, user):
        self.user = user
        self.messages = [{"role": "system", "content": "一個(gè)有10年P(guān)ython開(kāi)發(fā)經(jīng)驗(yàn)的資深算法工程師"}]
        self.filename="./user_messages.json"
 
    def ask_gpt(self):
        # q = "用python實(shí)現(xiàn):提示手動(dòng)輸入3個(gè)不同的3位數(shù)區(qū)間,輸入結(jié)束后計(jì)算這3個(gè)區(qū)間的交集,并輸出結(jié)果區(qū)間"
        rsp = openai.ChatCompletion.create(
          model="gpt-3.5-turbo",
          messages=self.messages
        )
        return rsp.get("choices")[0]["message"]["content"]
 
 
    def writeTojson(self):
        try:
            # 判斷文件是否存在
            if not os.path.exists(self.filename):
                with open(self.filename, "w") as f:
                    # 創(chuàng)建文件
                    pass
            # 讀取
            with open(self.filename, 'r', encoding='utf-8') as f:
                content = f.read()
                msgs = json.loads(content) if len(content) > 0 else {}
            # 追加
            msgs.update({self.user : self.messages})
            # 寫(xiě)入
            with open(self.filename, 'w', encoding='utf-8') as f:
                json.dump(msgs, f)
        except Exception as e:
            print(f"錯(cuò)誤代碼:{e}")
            
 
def main():
    user = input("請(qǐng)輸入用戶名稱: ")
    chat = ChatGPT(user)
    
    # 循環(huán)
    while 1:
        # 限制對(duì)話次數(shù)
        if len(chat.messages) >= 11:
            print("******************************")
            print("*********強(qiáng)制重置對(duì)話**********")
            print("******************************")
            # 寫(xiě)入之前信息
            chat.writeTojson()
            user = input("請(qǐng)輸入用戶名稱: ")
            chat = ChatGPT(user)
            
        # 提問(wèn)
        q = input(f"【{chat.user}】")
        
        # 邏輯判斷
        if q == "0":
            print("*********退出程序**********")
            # 寫(xiě)入之前信息
            chat.writeTojson()
            break
        elif q == "1":
            print("**************************")
            print("*********重置對(duì)話**********")
            print("**************************")
            # 寫(xiě)入之前信息
            chat.writeTojson()
            user = input("請(qǐng)輸入用戶名稱: ")
            chat = ChatGPT(user)
            continue
            
        # 提問(wèn)-回答-記錄
        chat.messages.append({"role": "user", "content": q})
        answer = chat.ask_gpt()
        print(f"【ChatGPT】{answer}")
        chat.messages.append({"role": "assistant", "content": answer})
 
 
if __name__ == '__main__':
    main()

代碼解析:

ChatGPT 類,包含三個(gè)函數(shù):

  • __init__初始化函數(shù),初始化了三個(gè)個(gè)實(shí)例變量,user、messages、filename(當(dāng)前用戶、消息列表、存儲(chǔ)記錄的文件路徑)。
  • ask_gpt函數(shù),將當(dāng)前用戶所有歷史消息+最新提問(wèn)發(fā)送給 gpt-3.5-turbo ,并返回響應(yīng)結(jié)果。
  • writeTojson函數(shù),結(jié)束/重置用戶時(shí)記錄當(dāng)前用戶之前的訪問(wèn)數(shù)據(jù)。
  • main函數(shù),程序入口函數(shù),用戶輸入用戶名后進(jìn)入與 ChatGPT 的循環(huán)對(duì)話中,輸入 0 退出程序,輸入 1 重置用戶,退出和重置都會(huì)將當(dāng)前用戶之前訪問(wèn)數(shù)據(jù)記錄搭配 json 文件中。
  • 由于 gpt-3.5-turbo 單次請(qǐng)求最大 token 數(shù)為:4096,所以代碼里限制了下對(duì)話次數(shù)。

更多拓展

  • 你可以寫(xiě)個(gè)函數(shù),從 json 文件讀取歷史用戶訪問(wèn)記錄,然后每次訪問(wèn)可以選用戶。
  • 你可以寫(xiě)個(gè) web 服務(wù),使用 session 或者數(shù)據(jù)庫(kù)支持多用戶同時(shí)登錄,同時(shí)訪問(wèn)。
  • 你可以基于之前分享的釘釘機(jī)器人項(xiàng)目,將 gpt-3.5-turbo 接入釘釘機(jī)器人。
  • 你還可以關(guān)注下方小卡片 搜索更多 ChatGPT 相關(guān)項(xiàng)目,或者其他有意思的項(xiàng)目學(xué)習(xí)練手,歡迎學(xué)習(xí)交流。

總結(jié)

最后的最后
由本人水平所限,難免有錯(cuò)誤以及不足之處, 屏幕前的靚仔靚女們 如有發(fā)現(xiàn),懇請(qǐng)指出!

最后,謝謝你看到這里,謝謝你認(rèn)真對(duì)待我的努力,希望這篇博客對(duì)你有所幫助!

你輕輕地點(diǎn)了個(gè)贊,那將在我的心里世界增添一顆明亮而耀眼的星!

?? 往期優(yōu)質(zhì)文章分享

  • C++ QT結(jié)合FFmpeg實(shí)戰(zhàn)開(kāi)發(fā)視頻播放器-01環(huán)境的安裝和項(xiàng)目部署
  • 解決QT問(wèn)題:運(yùn)行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
  • 解決安裝QT后MSVC2015 64bit配置無(wú)編譯器和調(diào)試器問(wèn)題
  • Qt中的套件提示no complier set in kit和no debugger,出現(xiàn)黃色感嘆號(hào)問(wèn)題解決(MSVC2017)
  • Python+selenium 自動(dòng)化 - 實(shí)現(xiàn)自動(dòng)導(dǎo)入、上傳外部文件(不彈出windows窗口)

?? 優(yōu)質(zhì)教程分享 ??

  • ??如果感覺(jué)文章看完了不過(guò)癮,可以來(lái)我的其他 專欄 看一下哦~
  • ??比如以下幾個(gè)專欄:Python實(shí)戰(zhàn)微信訂餐小程序、Python量化交易實(shí)戰(zhàn)、C++ QT實(shí)戰(zhàn)類項(xiàng)目 和 算法學(xué)習(xí)專欄
  • ??可以學(xué)習(xí)更多的關(guān)于C++/Python的相關(guān)內(nèi)容哦!直接點(diǎn)擊下面顏色字體就可以跳轉(zhuǎn)啦!
學(xué)習(xí)路線指引(點(diǎn)擊解鎖) 知識(shí)定位 人群定位
?? Python實(shí)戰(zhàn)微信訂餐小程序 ?? 進(jìn)階級(jí) 本課程是python flask+微信小程序的完美結(jié)合,從項(xiàng)目搭建到騰訊云部署上線,打造一個(gè)全棧訂餐系統(tǒng)。
??Python量化交易實(shí)戰(zhàn) ?? 入門級(jí) 手把手帶你打造一個(gè)易擴(kuò)展、更安全、效率更高的量化交易系統(tǒng)
?? C++ QT結(jié)合FFmpeg實(shí)戰(zhàn)開(kāi)發(fā)視頻播放器?? 難度偏高 分享學(xué)習(xí)QT成品的視頻播放器源碼,需要有扎實(shí)的C++知識(shí)!
?? 游戲愛(ài)好者九萬(wàn)人社區(qū)?? 互助/吹水 九萬(wàn)人游戲愛(ài)好者社區(qū),聊天互助,白嫖獎(jiǎng)品
?? Python零基礎(chǔ)到入門 ?? Python初學(xué)者 針對(duì)沒(méi)有經(jīng)過(guò)系統(tǒng)學(xué)習(xí)的小伙伴,核心目的就是讓我們能夠快速學(xué)習(xí)Python的知識(shí)以達(dá)到入門

?? 資料白嫖,溫馨提示 ??

關(guān)注下面卡片即刻獲取更多編程知識(shí),包括各種語(yǔ)言學(xué)習(xí)資料,上千套PPT模板和各種游戲源碼素材等等資料。更多內(nèi)容可自行查看哦!

手把手教你使用Python調(diào)用 ChatGPT!支持http代理文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-472684.html

到了這里,關(guān)于手把手教你使用Python調(diào)用 ChatGPT!支持http代理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手把手教你使用Python實(shí)現(xiàn)推箱子小游戲(附完整源碼)

    手把手教你使用Python實(shí)現(xiàn)推箱子小游戲(附完整源碼)

    我們這個(gè)項(xiàng)目是一個(gè)基于Python實(shí)現(xiàn)的推箱子小游戲,名叫Sokoban: 這個(gè)游戲的目的是讓玩家,也就是大寫(xiě)的 P ,推著箱子 # ,填充用小寫(xiě)的 o 標(biāo)記的地面上的洞 該版本的Sokoban的規(guī)則如下: 游戲在矩形的二維網(wǎng)格上舉行,其 原點(diǎn)(0,0) 位于左上方 網(wǎng)格上的每個(gè)單元格可以隨時(shí)包

    2024年02月03日
    瀏覽(38)
  • 手把手教你使用Flask框架構(gòu)建Python接口以及如何請(qǐng)求該接口

    Flask是一個(gè)輕量級(jí)的Web應(yīng)用框架,基于Python編寫(xiě),其核心思想是保持簡(jiǎn)潔,靈活性和易于擴(kuò)展。 Flask是一個(gè)輕量級(jí)的Web應(yīng)用框架,基于Python編寫(xiě),其核心思想是保持簡(jiǎn)潔,靈活性和易于擴(kuò)展。Flask提供了基本的Web開(kāi)發(fā)工具和應(yīng)用程序的結(jié)構(gòu),但同時(shí)也允許開(kāi)發(fā)者自由選擇其他庫(kù)

    2024年02月06日
    瀏覽(26)
  • 手把手教你個(gè)性化修改ChatGPT賬號(hào)頭像,純干貨,超簡(jiǎn)單

    手把手教你個(gè)性化修改ChatGPT賬號(hào)頭像,純干貨,超簡(jiǎn)單

    文 /?韓彬(微信公眾號(hào):量子論) 上一篇文章《該為 GPT-4 降溫了》的結(jié)尾,我提了一個(gè)問(wèn)題, 如何修改ChatGPT賬號(hào)頭像? 比如,在與ChatGPT對(duì)話時(shí),顯示的頭像是兩個(gè)字母。 我想同下圖一樣,展示的是“量子論”公眾號(hào)的圖標(biāo),怎么辦? 現(xiàn)在揭曉答案, ChatGPT頭像由 Gravat

    2023年04月16日
    瀏覽(29)
  • 【ChatGLM】手把手教你云服務(wù)器部署ChatGLM聊天網(wǎng)站,不限次數(shù)調(diào)用。

    【ChatGLM】手把手教你云服務(wù)器部署ChatGLM聊天網(wǎng)站,不限次數(shù)調(diào)用。

    私人部署地址:http://ilovechatgpt.cn。 免費(fèi)使用!無(wú)限調(diào)用!速度還蠻快呢。 官方地址:https://github.com/THUDM/ChatGLM-6B ChatGLM-6B 是一個(gè) 開(kāi)源的、支持中英雙語(yǔ)的對(duì)話語(yǔ)言模型 ,由基于 清華大學(xué) KEG 實(shí)驗(yàn)室 與 智譜 AI 于 2023 年聯(lián)合訓(xùn)練,可以針對(duì)用戶的問(wèn)題和要求提供適當(dāng)?shù)拇饛?fù)和

    2024年02月16日
    瀏覽(28)
  • 【AI助力科研】不看一篇文獻(xiàn),手把手教你用chatGPT寫(xiě)文獻(xiàn)綜述!

    【AI助力科研】不看一篇文獻(xiàn),手把手教你用chatGPT寫(xiě)文獻(xiàn)綜述!

    如這里我使用知網(wǎng)檢索,實(shí)際上很多網(wǎng)址和國(guó)內(nèi)外的出版社網(wǎng)址都支持一鍵導(dǎo)出文章信息 搜索后勾選,點(diǎn)擊導(dǎo)出與分析 點(diǎn)擊導(dǎo)出后選擇自定義,默認(rèn)是不導(dǎo)出摘要的,需要勾選! 勾選摘要后導(dǎo)出或者直接預(yù)覽在這里Copy一手! 這里必須進(jìn)行壓縮,不然太長(zhǎng)了,很難控制,最

    2024年04月14日
    瀏覽(28)
  • 手把手教你用Python編寫(xiě)郵箱腳本引擎

    手把手教你用Python編寫(xiě)郵箱腳本引擎

    版權(quán)聲明:原創(chuàng)不易,本文禁止抄襲、轉(zhuǎn)載需附上鏈接,侵權(quán)必究! 郵箱是傳輸信息方式之一,個(gè)人,企業(yè)等都在使用,朋友之間發(fā)消息,注冊(cè)/登錄信息驗(yàn)證,訂閱郵箱,企業(yè)招聘,向客戶發(fā)送消息等都是郵箱的使用場(chǎng)景;郵箱有兩個(gè)較重要的協(xié)議:SMTP和POP3,均位于OSI7層

    2024年02月06日
    瀏覽(104)
  • 手把手教你用Python實(shí)現(xiàn)2048小游戲

    手把手教你用Python實(shí)現(xiàn)2048小游戲

    感覺(jué)好久沒(méi)有寫(xiě)小游戲玩了,今天恰巧有空.這次我來(lái)用Python做個(gè)2048小游戲吧.廢話不多說(shuō),文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下 目錄 一、開(kāi)發(fā)環(huán)境 二、環(huán)境搭建 三、原理介紹 四、效果圖 Python版本:3.6.4 相關(guān)模塊: pygame模塊; 以及一些Python自帶的模塊。 安裝

    2024年04月28日
    瀏覽(94)
  • 手把手教你如何使用SimiliarWeb

    手把手教你如何使用SimiliarWeb

    在之前的“手把手教你如何使用Google Trends”文章中我們講到從事跨境電商的賣家第一步遇到的問(wèn)題是“客戶在哪里?”該如何推廣我的產(chǎn)品?因此若想自己的店鋪?zhàn)龃笞龊茫瑒t需要工具來(lái)幫助分析市場(chǎng)行情,根據(jù)市場(chǎng)行情調(diào)整自己的業(yè)務(wù)狀況。小編在上篇中已經(jīng)講解了三個(gè)特

    2024年02月09日
    瀏覽(103)
  • 手把手教你如何使用Docker

    手把手教你如何使用Docker

    我們?cè)诠鹃_(kāi)發(fā)中,會(huì)有開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,上線環(huán)境, 比如我們開(kāi)發(fā)人員開(kāi)發(fā)好了一個(gè)項(xiàng)目,在開(kāi)發(fā)環(huán)境中運(yùn)行正常,但測(cè)試人員拉到測(cè)試環(huán)境就跑不起來(lái)【jdk版本等】,或者上線的時(shí)候運(yùn)行不起來(lái),這時(shí)候就要為每個(gè)機(jī)器配置一個(gè)環(huán)境,那運(yùn)維人員不得累死?【哈哈,

    2024年02月10日
    瀏覽(104)
  • 【Oracle安裝及使用】超級(jí)詳細(xì)的初次在python中使用Oracl圖文詳解!手把手教你從安裝Oracle到在python中連接Oracle!

    【Oracle安裝及使用】超級(jí)詳細(xì)的初次在python中使用Oracl圖文詳解!手把手教你從安裝Oracle到在python中連接Oracle!

    需要安裝pycharm、 主要任務(wù):安裝Oracle、Oracle環(huán)境配置、新建數(shù)據(jù)庫(kù)、測(cè)試、pycharm中下載包、pycharm中使用Oracle。 1.Oracle完整安裝詳解 這篇很詳細(xì)了,還附了安裝包,按照博主一套下來(lái)基本沒(méi)問(wèn)題。 此外有幾個(gè)小改動(dòng): (1)HOST我改成了IP地址 * 查詢自己的本機(jī)地址方式如下

    2024年02月01日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包