
[Bahasa Inggris] | [中文]
Bot pada apa pun adalah pembangun chatbot AI yang kuat yang memungkinkan Anda untuk dengan cepat membangun chatbot dan menjalankannya di mana saja.
Pengembang dapat membangun dan menjalankan robot dialog cerdas dengan memilih koneksi antara berbagai model AI besar dan saluran aplikasi dengan konfigurasi ringan. Ini mendukung pengalihan mudah antara beberapa jalur dalam satu proyek. Arsitektur ini memiliki skalabilitas yang kuat; Setiap aplikasi dapat menggunakan kembali kemampuan model yang ada, dan setiap model baru dapat berjalan di semua saluran aplikasi.
Model:
Aplikasi:
Mendukung sistem Linux, MacOS, dan Windows, dan Python harus diinstal. Disarankan untuk menggunakan versi Python antara 3.7.1 dan 3.10.
Kloning kode proyek dan instal dependensi:
git clone https://github.com/zhayujie/bot-on-anything
cd bot-on-anything/
pip3 install -r requirements.txt File konfigurasi inti adalah config.json , dan file template config-template.json disediakan dalam proyek, yang dapat disalin untuk menghasilkan file config.json efektif akhir:
cp config-template.json config.jsonSetiap model dan saluran memiliki blok konfigurasi sendiri, yang bersama -sama membentuk file konfigurasi lengkap. Struktur keseluruhan adalah sebagai berikut:
{
" model " : {
" type " : " openai " , # Selected AI model
" openai " : {
# openAI configuration
}
},
" channel " : {
" type " : " slack " , # Channel to be integrated
" slack " : {
# slack configuration
},
" telegram " : {
# telegram configuration
}
}
} File konfigurasi dibagi menjadi model dan channel di level terluar. Bagian model adalah untuk konfigurasi model, di mana type menentukan model mana yang akan digunakan; Bagian saluran berisi konfigurasi untuk saluran aplikasi, dan bidang type menentukan aplikasi mana yang akan diintegrasikan.
Saat menggunakan, Anda hanya perlu mengubah bidang type di bawah blok model dan konfigurasi saluran untuk beralih antara model dan aplikasi apa pun, menghubungkan jalur yang berbeda. Di bawah ini, setiap model dan konfigurasi aplikasi dan proses berjalan akan diperkenalkan secara bergantian.
Jalankan perintah berikut di direktori root proyek, dengan saluran default menjadi terminal:
python3 app.py Model default adalah gpt-3.5-turbo . Untuk detailnya, lihat dokumentasi resmi. Ini juga mendukung gpt-4.0 , cukup ubah parameter tipe model.
pip3 install --upgrade openaiCatatan: Versi OpenAI harus di atas
0.27.0. Jika instalasi gagal, Anda dapat meningkatkan PIP denganpip3 install --upgrade pip.
{
" model " : {
" type " : " chatgpt " ,
" openai " : {
" api_key " : " YOUR API KEY " ,
" model " : " gpt-3.5-turbo " , # Model name
" proxy " : " http://127.0.0.1:7890 " , # Proxy address
" character_desc " : " You are ChatGPT, a large language model trained by OpenAI, aimed at answering and solving any questions people have, and can communicate in multiple languages. When asked who you are, you should also tell the questioner that entering #clear_memory can start a new topic exploration. Entering draw xx can create a picture for you. " ,
" conversation_max_tokens " : 1000, # Maximum number of characters in the reply, total for input and output
" temperature " :0.75, # Entropy, between [0,1], the larger the value, the more random the selected candidate words, the more uncertain the reply, it is recommended to use either this or the top_p parameter, the greater the creativity task, the better, the smaller the precision task
" top_p " :0.7, # Candidate word list. 0.7 means only considering the top 70% of candidate words, it is recommended to use either this or the temperature parameter
" frequency_penalty " :0.0, # Between [-2,2], the larger this value, the more it reduces the repetition of words in the model's output, leaning towards producing different content
" presence_penalty " :1.0, # Between [-2,2], the larger this value, the less restricted by the input, encouraging the model to generate new words not present in the input, leaning towards producing different content
}
}api_key : Isi OpenAI API KEY yang dibuat saat mendaftarkan akun Anda.model : Nama model, saat ini mendukung gpt-3.5-turbo , gpt-4 , gpt-4-32k (API GPT-4 belum terbuka).proxy : Alamat klien proxy, lihat #56 untuk detailnya.character_desc : Konfigurasi ini menyimpan sepotong teks yang Anda katakan ke chatgpt, dan itu akan mengingat teks ini sebagai pengaturannya; Anda dapat menyesuaikan kepribadian apa pun untuk itu.max_history_num [Opsional]: Panjang memori maksimum percakapan, melebihi panjang ini akan menghapus memori sebelumnya.{
" model " : {
" type " : " linkai " ,
" linkai " : {
" api_key " : " " ,
" api_base " : " https://api.link-ai.tech " ,
" app_code " : " " ,
" model " : " " ,
" conversation_max_tokens " : 1000,
" temperature " :0.75,
" top_p " :0.7,
" frequency_penalty " :0.0,
" presence_penalty " :1.0,
" character_desc " : " You are an intelligent assistant. "
},
}api_key : Kunci untuk memanggil layanan Linkai, yang dapat dibuat di konsol.app_code : Kode untuk aplikasi atau alur kerja LinkAI, opsional, lihat pembuatan aplikasi.model : Mendukung model umum dari sumber domestik dan internasional, lihat daftar model. Ini dapat dibiarkan kosong, dan model default aplikasi dapat dimodifikasi di platform Linkai. Aplikasi yang dimulai secara default di templat konfigurasi adalah terminal, yang tidak memerlukan konfigurasi tambahan. Anda dapat memulai program dengan mengeksekusi python3 app.py langsung di direktori proyek. Pengguna berinteraksi dengan model dialog melalui input baris perintah, dan mendukung efek respons streaming.

Kontributor: Regimenarsenic
Dependensi
pip3 install PyJWT flask flask_socketioKonfigurasi
" channel " : {
" type " : " http " ,
" http " : {
" http_auth_secret_key " : " 6d25a684-9558-11e9-aa94-efccd7a0659b " , // JWT authentication secret key
" http_auth_password " : " 6.67428e-11 " , // Authentication password, just for personal use, a preliminary defense against others scanning ports and DDOS wasting tokens
" port " : " 80 " // Port
}
} Jalankan secara lokal: Setelah menjalankan python3 app.py , akses http://127.0.0.1:80 .
Jalankan di server: Setelah penyebaran, akses http://public domain or IP:port .
Persyaratan: Server dan akun berlangganan.
Instal Ketergantungan Werobot:
pip3 install werobot " channel " : {
" type " : " wechat_mp " ,
" wechat_mp " : {
" token " : " YOUR TOKEN " , # Token value
" port " : " 8088 " # Port the program listens on
}
} Jalankan python3 app.py di direktori proyek. Jika terminal menampilkan yang berikut, ini menunjukkan operasi yang berhasil:
[INFO][2023-02-16 01:39:53][app.py:12] - [INIT] load config: ...
[INFO][2023-02-16 01:39:53][wechat_mp_channel.py:25] - [WX_Public] Wechat Public account service start!
Bottle v0.12.23 server starting up (using AutoServer())...
Listening on http://127.0.0.1:8088/
Hit Ctrl-C to quit.
Buka akun berlangganan pribadi di platform resmi WeChat dan aktifkan konfigurasi server:

Konfigurasi Alamat Server (URL) : Jika Anda dapat mengakses program Python di server melalui URL yang dikonfigurasi di browser (Default Listening pada port 8088), ini menunjukkan bahwa konfigurasi valid. Karena akun berlangganan hanya dapat mengonfigurasi port 80/443, Anda dapat memodifikasi konfigurasi untuk mendengarkan langsung pada port 80 (memerlukan izin sudo) atau menggunakan penerusan proxy terbalik (seperti Nginx). Menurut dokumentasi resmi, Anda dapat mengisi IP publik atau nama domain di sini.
Konfigurasi Token : Harus konsisten dengan token dalam konfigurasi config.json .
Untuk proses operasi terperinci, lihat dokumentasi resmi.
Setelah pengguna mengikuti akun berlangganan, mereka dapat mengirim pesan.
Catatan: Setelah pengguna mengirim pesan, backend WeChat akan mendorong ke alamat URL yang dikonfigurasi, tetapi jika tidak ada balasan dalam 5 detik, koneksi akan terputus, dan itu akan dicoba lagi 3 kali. Namun, permintaan ke antarmuka OpenAI sering memakan waktu lebih dari 5 detik. Dalam proyek ini, metode asinkron dan caching telah mengoptimalkan batas batas waktu 5 detik hingga 15 detik, tetapi melebihi waktu ini masih tidak akan mengizinkan balasan normal. Pada saat yang sama, setiap kali koneksi terputus setelah 5 detik, kerangka kerja web akan melaporkan kesalahan, yang akan dioptimalkan nanti.
Persyaratan: Server dan akun layanan bersertifikat.
Di akun Layanan Perusahaan, edisi batas waktu 15 detik dari akun berlangganan pribadi diselesaikan dengan terlebih dahulu mengakses antarmuka OpenAI secara tidak sinkron dan kemudian secara proaktif mendorong pengguna melalui antarmuka layanan pelanggan. Konfigurasi mode pengembang dari akun layanan mirip dengan akun berlangganan. Untuk detailnya, lihat dokumentasi resmi.
Konfigurasi config.json untuk akun layanan perusahaan hanya perlu mengubah tipe ke wechat_mp_service , tetapi blok konfigurasi masih menggunakan kembali wechat_mp , dan di samping itu, Anda perlu menambahkan dua item konfigurasi: app_id dan app_secret .
" channel " : {
" type " : " wechat_mp_service " ,
" wechat_mp " : {
" token " : " YOUR TOKEN " , # Token value
" port " : " 8088 " , # Port the program listens on
" app_id " : " YOUR APP ID " , # App ID
" app_secret " : " YOUR APP SECRET " # App secret
}
}Catatan: Alamat IP Server harus dikonfigurasi di "IP WhiteList"; Jika tidak, pengguna tidak akan menerima pesan yang didorong secara proaktif.
Persyaratan: PC atau server (jaringan domestik) dan akun QQ.
Menjalankan Bot QQ membutuhkan tambahan menjalankan program go-cqhttp , yang bertanggung jawab untuk menerima dan mengirim pesan QQ, sementara program bot-on-anything kami bertanggung jawab untuk mengakses OpenAI untuk menghasilkan konten dialog.
Unduh program mesin yang sesuai dari rilis GO-CQHTTP, unzip, dan tempatkan file biner go-cqhttp di direktori bot-on-anything/channel/qq kami. File konfigurasi config.yml sudah disiapkan di sini; Anda hanya perlu mengisi konfigurasi akun QQ (Account-Uin).
Gunakan AIOCQHTTP untuk berinteraksi dengan GO-CQHTTP, jalankan perintah berikut untuk menginstal ketergantungan:
pip3 install aiocqhttp Cukup ubah type di blok saluran file konfigurasi config.json ke qq :
" channel " : {
" type " : " qq "
} Pertama, buka direktori root dari proyek bot-on-anything dan jalankan di Terminal 1:
python3 app.py # This will listen on port 8080 Pada langkah kedua, Terminal Buka 2, navigasikan ke direktori tempat cqhttp berada, dan jalankan:
cd channel/qq
./go-cqhttpCatatan:
protocol di file device.json di direktori yang sama dengan GO-CQHTTP dari 5 ke 2, lihat masalah ini.Kontributor: Brucelt1993
6.1 Dapatkan token
Melamar bot telegram dapat dengan mudah ditemukan di Google; Yang penting adalah mendapatkan ID token bot.
6.2 Instalasi Ketergantungan
pip install pyTelegramBotAPI6.3 Konfigurasi
" channel " : {
" type " : " telegram " ,
" telegram " :{
" bot_token " : " YOUR BOT TOKEN ID "
}
}Persyaratan: Server dan akun Gmail.
Kontributor: Simon
Ikuti dokumentasi resmi untuk membuat kata sandi aplikasi untuk akun Google Anda, konfigurasikan seperti di bawah ini, lalu Cheers !!!
" channel " : {
" type " : " gmail " ,
" gmail " : {
" subject_keyword " : [ " bot " , " @bot " ],
" host_email " : " [email protected] " ,
" host_password " : " GMAIL ACCESS KEY "
}
}❉ Tidak lagi membutuhkan server atau IP publik
Kontributor: AMAOO
Dependensi
pip3 install slack_boltKonfigurasi
" channel " : {
" type " : " slack " ,
" slack " : {
" slack_bot_token " : " xoxb-xxxx " ,
" slack_app_token " : " xapp-xxxx "
}
}Atur Bot Token Scope - Oauth & Izin
Tulis token pengguna bot bot ke file konfigurasi slack_bot_token .
app_mentions:read
chat:write
Aktifkan mode soket - mode soket
Jika Anda belum membuat token tingkat aplikasi, Anda akan diminta untuk membuatnya. Tulis token yang dibuat ke dalam file konfigurasi slack_app_token .
Langganan Acara (Langganan Acara) - Berlangganan acara bot
app_mention
Dokumentasi referensi
https://slack.dev/bolt-python/tutorial/getting-started
Persyaratan:
Dependensi
pip3 install requests flaskKonfigurasi
" channel " : {
" type " : " dingtalk " ,
" dingtalk " : {
" image_create_prefix " : [ " draw " , " draw " , " Draw " ],
" port " : " 8081 " , # External port
" dingtalk_token " : " xx " , # Access token of the webhook address
" dingtalk_post_token " : " xx " , # Verification token carried in the header when DingTalk posts back messages
" dingtalk_secret " : " xx " # Security encryption signature string in the group robot
}
}Dokumentasi referensi :
Menghasilkan robot
Alamat: https://open-dev.dingtalk.com/fe/app#/corp/robot Tambahkan robot, atur IP outbound server dalam manajemen pengembangan, dan alamat penerima pesan (alamat eksternal dalam konfigurasi, seperti https:/xx.xx.com:8081).
Dependensi
pip3 install requests flaskKonfigurasi
" channel " : {
" type " : " feishu " ,
" feishu " : {
" image_create_prefix " : [
" draw " ,
" draw " ,
" Draw "
],
" port " : " 8082 " , # External port
" app_id " : " xxx " , # Application app_id
" app_secret " : " xxx " , # Application Secret
" verification_token " : " xxx " # Event subscription Verification Token
}
}Menghasilkan robot
Alamat: https://open.feishu.cn/app/
Persyaratan: Server dan perusahaan bersertifikat WeChat.
Konfigurasi config.json untuk Enterprise WeChat hanya perlu mengubah tipe ke wechat_com , dengan URL server yang menerima pesan default: http: // ip: 8888/weChat.
" channel " : {
" type " : " wechat_com " ,
" wechat_com " : {
" wechat_token " : " YOUR TOKEN " , # Token value
" port " : " 8888 " , # Port the program listens on
" app_id " : " YOUR APP ID " , # App ID
" app_secret " : " YOUR APP SECRET " , # App secret
" wechat_corp_id " : " YOUR CORP ID " ,
" wechat_encoding_aes_key " : " YOUR AES KEY "
}
}CATATAN: Alamat IP Server harus dikonfigurasi dalam daftar "IP Tepercaya Perusahaan"; Jika tidak, pengguna tidak akan menerima pesan yang didorong secara proaktif.
Dokumentasi referensi :
clear_memory_commands : Perintah dialog internal untuk secara aktif menghapus memori sebelumnya, array string dapat menyesuaikan alias perintah.