Rumah >pembangunan bahagian belakang >Tutorial Python >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.
Cari SDK terbalik yang sesuai
Pengarang asal menggunakan ini.
Tidak banyak fail dalam keseluruhan pakej Jika anda suka Python
, anda boleh lihat saya Java
tidak dapat memahaminya dengan baik.
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').
Kami mengimport pakej terbalik kami.
from revChatGPT.revChatGPT import Chatbot
Ini ialah kod sumber dalam pakej terbalik, yang digunakan untuk memulakan perkhidmatan Kami baru sahaja memanggil pakej ini dalam kelas.
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.
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 ChatGPT
Maklum 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.
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.
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.
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
.
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
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.
Kini, selain mendapat OpenAi
daripada session-token
, kita juga perlu mendapatkan cf_clearance
.
Pada masa yang sama, kita juga perlu mendapatkan user-agent
.
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
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.
Lakukan penyelidikan anda sendiri.
Dan ramai pengarang pakej terbalik juga memikirkan penyelesaian yang sempurna, mari tunggu dengan sabar!
Kemudian, sila lihat ayat ini:
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!