Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

WBOY
WBOYke hadapan
2023-04-28 22:46:052401semak imbas

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Ini SDK bukan sahaja boleh digunakan untuk membangunkan robot, tetapi anda juga boleh membangunkan kesan yang anda inginkan secara bebas, seperti yang anda fikirkan, ia adalah kit alat untuk membantu anda chuanchuan Build a ChatGPT perkhidmatan dan sesi.

Baru-baru ini OpenAi memasang perkhidmatan Cloudflare CDN padanya Perkhidmatan ini akan memintas permintaan mesin bukan sebenar dan kini boleh dipecahkan.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Cari SDK terbalik yang sesuai

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Pengarang asal menggunakan ini.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Tidak banyak fail dalam keseluruhan pakej Jika anda suka Python, anda boleh lihat saya Java tidak dapat memahaminya dengan baik.

Latihan bermula - Latihan Bab 1

RevChatGPT yang digunakan dalam kod bergantung pada perpustakaan kod sumber:
https://github.com/acheong08/ChatGPT

Versi Python kami memerlukan >=3.8, kemudian pip naik taraf terus kepada versi terkini.

Tujuan kod di bawah adalah untuk berinteraksi dengan antara muka rasmi ChatGPT Sila pasang kebergantungan yang digunakan di dalamnya
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')
.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Kami mengimport pakej terbalik kami.

from revChatGPT.revChatGPT import Chatbot

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Ini ialah kod sumber dalam pakej terbalik, yang digunakan untuk memulakan perkhidmatan Kami baru sahaja memanggil pakej ini dalam kelas.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Kemudian buat antara muka yang membuang perkhidmatan ini supaya ia boleh dipanggil dengan mudah.

Kami hanya perlu menjalankan kod di atas untuk berinteraksi secara langsung dengan ChatGPT pada port 7777.
Kami menggunakan alat antara muka untuk mengujinya. Hasilnya adalah seperti yang ditunjukkan di bawah. Anda dapat melihat bahawa antara muka berfungsi dengan normal dan hasil perbualan diperoleh daripada ChatGPT.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Isi mesej:

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

Isi mesej ialah kandungan tersuai kami Anda boleh menambah medan sendiri untuk memanjangkan fungsi antara muka
Ini contoh Mesej dalam ialah kandungan ucapan kami
dan antara muka kembali:

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

yang juga ditakrifkan oleh kami apabila code=0 bermakna interaksi dengan ChatGPT berjaya, maka data ialah ChatGPTMaklum balas kepada perbualan kami. Apabila code=1 digunakan, ini bermakna ralat telah berlaku Tiada data pada masa ini, tetapi mesej ralat dikembalikan dalam msg.

Pada ketika ini kita mempunyai antara muka yang boleh berinteraksi dengan ChatGPT Melalui antara muka ini, kita boleh mengadakan perbualan dengan ChatGPT

Memandangkan kita mempunyai perbualan, kita perlu. Dengan kotak input dan butang, anda boleh membuat halaman web untuk memanggil antara muka ini Ini sangat mudah, dan kami tidak akan membincangkan butiran di sini.

Apa yang kami mahu lakukan ialah robot QQ Prinsipnya adalah untuk membiarkan robot QQ mendengar mesej, memajukan mesej ke ChatGPT melalui antara muka kami, dan kemudian menghantar kandungan perbualan yang dikembalikan oleh ChatGPT ke. Pengguna QQ seperti robot yang boleh bercakap sudah sedia Kaedah khusus akan diterangkan di bawah.

Latihan diteruskan - Latihan Bahagian 2

Di atas kami melaksanakan antara muka dan berjaya memperoleh kandungan perbualan ChatGPT menggunakan kod Seterusnya kami akan terus menambah baik logik berkaitan robot QQ kepada komen dalam kod.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Untuk lebih mudah membandingkan kod yang dioptimumkan (disambungkan ke robot QQ) dengan kod sebelumnya, saya membuka perbandingan tempatan dan Kod yang tidak berubah telah disimpan.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Anda mungkin tidak memahami logik pelaksanaan interaksi robot, kerana kami menggunakan rangka kerja robot Sebenarnya, kami tidak boleh mengehadkan pemikiran kami logik sendiri.

Kami menggunakan go-cqhttp.

Pusat Bantuan go-cqhttp

Jadi, anda perlu memahami perubahan inigo-cqhttp sebelum anda boleh memahaminya, tetapi kita perlu belajar secara fleksibel, kita hanya perlu memahami idea Ya, kemudian pergi ke dokumentasi rasmi untuk mengetahui cara menggunakannya.

Pada ketika ini, kod ini sudah mempunyai fungsi memproses permintaan rakan, permintaan kumpulan dan membalas mesej.

Seperti yang anda lihat, berbanding artikel sebelum ini, kami telah menambah banyak kod dan menambah komen

Sudah tentu, tidak mengapa jika anda tidak faham kod ini, anda boleh mengikuti kod saya Tukar bahagian artikel yang sepadan dan gunakannya secara langsung.

Semua orang datang ke kumpulan Q pengarang asal untuk bermain, saya juga berada di dalamnya: 206867743.

Amalan diteruskan - Latihan Bahagian 3

Dalam dua artikel pertama, kami telah menyelesaikan masalah berkomunikasi dengan ChatGPT dan masalah pemprosesan mesej QQ Sekarang kami perlu menangani bagaimana untuk memantau Berita QQ.

Dalam kemas kini dan masalah yang dihadapi, pengarang asal dan ramai pengarang pakej terbalik telah mengemas kini banyak kandungan Mari kita lihat rekod kemas kini pengarang asal:

2022-12-12 23:52 Tambah versi khusus Windows, yang hanya boleh digunakan pada komputer atau pelayan Windows, dan secara automatik boleh mendapatkan cloudflare Cookie 2022-12-12 12:38 Kemas kini kandungan Tambah Konfigurasi CloudFlare, kemas kini kebergantungan, kata laluan akaun tidak disokong buat masa ini Saya tidak tahu berapa kerap konfigurasi CloudFlare perlu ditukar Sekarang nampaknya saya perlu memintas tembok api 2022-. 12-10 17:42 Kandungan dikemas kini untuk menambah sokongan kata laluan akaun, anda tidak boleh menggunakan token , terus menggunakan kata laluan akaun 2022-12-10 00:23 Kandungan yang dikemas kini membezakan setiap sembang peribadi QQ, dan robot sembang peribadi setiap orang ialah sesi bebas. Membezakan setiap kumpulan QQ, dan setiap kumpulan QQ adalah sesi bebas Naikkan had perkataan untuk balasan Jika had melebihi had, ia akan ditukar menjadi balasan gambar (lihat fail konfigurasi). perbualan, hantar ke robot: Tetapkan semula perbualan

Pengenalan

Dengar mesej QQ dan Kami tidak perlu menulis kod, kerana sudah terdapat banyak rangka kerja robot QQ sumber terbuka di pasaran. Di sini kami menggunakan go-cqhttp
Dokumentasi rasmi: go-cqhttp
Jika anda berminat, anda boleh membaca dokumentasi rasmi , jika anda tidak mahu membacanya, baca sahaja saya artikel secara langsung.

Prasyarat Anda perlu menyediakan akaun QQ Jangan gunakan akaun besar anda sendiri Anda perlu menyediakan akaun OpenAi untuk mendapatkan pelayan Token (pilihan, jika anda mahu robot berada dalam talian 24/7. sila Sediakan satu, 1 teras dan 1G sudah memadai, pelayan luaran adalah yang terbaik)

Nota: Terdapat banyak video mengenai kaedah pendaftaran OpenAi (ChatGPT) di Bilibili, hanya rujuk mana-mana.

Jika anda tidak tahu cara mendaftar, anda juga boleh membaca artikel di blog saya: Satu artikel mengajar anda cara cepat mendaftar OpenAi (ChatGPT)

(Versi lama ) Saya juga telah menulis tutorial tentang cara membina robot: gunakan OpenGPT (ChatGPT) membina robot QQ

Tetapi! Perhatikan, seperti yang dinyatakan sebelum ini, ChatGPT semasa dibalut dengan CF's CDN, yang akan memintas permintaan interaksi manusia-komputer.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Kini, selain mendapat OpenAi daripada session-token, kita juga perlu mendapatkan cf_clearance.

Pada masa yang sama, kita juga perlu mendapatkan user-agent.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Pergi ke tab rangkaian konsol dan semaknya Jika kosong, hantar sahaja mesej.

disalin dan ditulis ke dalam fail konfigurasi, iaitu fail py/config.js.

Pada masa ini, pengarang asal telah membungkus dua versi, satu untuk Linux Masalahnya ialah cf token interaksi CDN akan tamat tempoh dalam masa 2H Kami perlu mendapatkan dan mengemas kininya secara manual. yang menyusahkan.

Yang lain ialah versi window, yang telah diperolehi secara automatik CloudflareCookie.

Panduan Konfigurasi

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Versi ini hanya boleh digunakan pada Windows, mana-mana komputer atau pelayan Windows akan berfungsi.

Masih hanya menyokong token.

Sistem akan membuka Google Chrome secara automatik untuk mendapatkan kuki berkaitan Cloufflare mungkin diperlukan apabila dijalankan buat kali pertama, jadi sila klik dengan teliti.

Perhatikan bahawa skrip hanya boleh membuka Google Chrome dan tidak mengkonfigurasi penyemak imbas lain.

Penerangan lain

Dalam versi terbaharu kod pengarang, beberapa fungsi baharu juga telah ditambah.

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Lakukan penyelidikan anda sendiri.

Dan ramai pengarang pakej terbalik juga memikirkan penyelesaian yang sempurna, mari tunggu dengan sabar!

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Kemudian, sila lihat ayat ini:

Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar

Atas ialah kandungan terperinci Cara menggunakan Python untuk menyambung ke OpenAi API untuk melaksanakan robot QQ pintar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam