rboot
adalah kerangka chatbot sederhana dan efisien yang ditulis dalam golang
, yang mudah diperluas. Ia dapat bekerja pada berbagai layanan obrolan, dan dapat mengimplementasikan聊天
,工作助手
,服务监控
,警报触发
, dan fungsi lainnya melalui skrip yang diperluas.
golang v1.13+
$ go get github.com/ghaoo/ rboot
$ cd $GOPATH /github.com/ghaoo/ rboot /robot
$ go build
$ ./robot
Adaptor pesan digunakan untuk memantau pesan masuk dan keluar. Melalui adaptor pesan, pesan klien obrolan dapat dikirim ke robot. Setelah diproses oleh skrip, pesan yang dikembalikan dikirim ke klien.
rboot
menyediakan implementasi sederhana dari命令行cli
微信网页版
dari adaptor倍洽
WeChat钉钉
企业微信
.
Plugin
tidak menyediakan banyak plug-in out-of-the-box, kecuali plug-in help
, dan yang lainnya perlu dikembangkan oleh pengembang sesuai dengan kebutuhan mereka sendiri.
bantuan penggunaan plugin :
!help <plugin>
: Melihat informasi bantuan plug-in, ketika perintah tidak menyertakan nama plug-in, semua informasi bantuan plug-in akan dicantumkan. Dengan nama plug-in, hanya informasi bantuan untuk plug-in ini. di akan dicantumkan.
Ada kasus plug-in sederhana di bawah folder
robot/plugins
. Pengembang dapat memeriksa cara menulis plug-in.
Plugin
tidak hanya dapat menggunakan golang untuk menulis plug-in, tetapi juga menggunakan plug-in skrip untuk menjalankan perintah sistem atau file plug-in yang ditulis dalam bahasa skrip.
Plug-in skrip adalah plugin Plugin
yang digunakan untuk mengurai bahasa skrip. Ini merupakan perpanjangan dari plug-in rboot . Jalankan perintah atau skrip sistem melalui file konfigurasi yaml
.
Karena plugin skrip dibuat di
Plugin
, setiap skrip akan didaftarkan diPlugin
, jadi pastikan nama plugin tidak tumpang tindih, jika tidak, plugin yang didaftarkan terlebih dahulu dapat digantikan oleh plugin yang didaftarkan kemudian!
PLUGIN_DIR
: Folder tempat file konfigurasi plugin skrip disimpan. Jika tidak dikonfigurasi, defaultnya adalah scripts
Kita dapat membuat plugin skrip dengan membuat file yaml
, dan mengonfigurasi plugin skrip melalui opsi konfigurasi di file tersebut. Misalnya, kita membuat file hello.yml
dengan konten berikut:
name : hello
version : 0.1.0
ruleset :
hello : " ^hello "
usage :
hi : echo hello world and 你好
description : 脚本插件示例
command :
-
cmd :
- echo hi
- echo hello world
-
dir : plugins
cmd :
- echo 你好
Plug-in ini menggunakan perintah sistem echo
. Artinya adalah: ketika kita memasukkan "hello", skrip akan mengembalikan tiga pesan: hi
, hello world
dan你好
.
Arti dari setiap bidang dalam konfigurasi:
Konfigurasi | harus | makna |
---|---|---|
nama | Ya | Nama plugin |
peraturan | Ya | aturan yang ditetapkan |
versi | TIDAK | Versi plugin |
penggunaan | TIDAK | Penggunaan plugin |
keterangan | TIDAK | Pengenalan plugin |
memerintah | Ya | Kumpulan perintah plug-in |
--- | --- | --- |
dir | TIDAK | Folder eksekusi perintah |
cmd | Ya | Perintah plugin |
command
dapat mengonfigurasi beberapa kumpulan perintah, dan urutan eksekusi dari atas ke bawah.
cmd
dapat dikonfigurasi dengan banyak perintah, dan urutan eksekusi dari atas ke bawah.
Plug-in skrip mendukung系统命令
dan脚本语言
. Mode perintah sistemnya seperti hello.yml
di atas, cukup isi folder dan perintah sistem pada file tersebut.
Bahasa skrip adalah metode eksekusi berdasarkan mode perintah sistem. Kita dapat menggunakan perintah sistem untuk memanggil skrip bahasa untuk mengeksekusi skrip yang lebih kompleks. Misalnya, kami menggunakan python untuk menampilkan "halo robot".
Skrip python kami adalah sebagai berikut:
#!/usr/bin/env python
print ( "Hello, robot! i am a python script" )
File konfigurasi kami adalah sebagai berikut:
name : pyscript
version : 0.1.0
ruleset :
py : " ^hello python "
usage :
py : execute python script
description : python插件示例
command :
dir : script
cmd :
- ./hello.py
Saat kita memasukkan hello python
, robot akan memanggil skrip hello.py
, dan skrip tersebut akan menampilkan "Halo, robot! Saya skrip python" dan menampilkannya kepada kita melalui robot.
Harap konfirmasi apakah
目录分隔符
cocok dengan pengaturan sistem saat ini pada sistem operasi yang berbeda. Silakan gunakan di bawahwindows
silakan gunakan
/
di bawahunix
Proyek ini menggunakan lisensi open source MIT, dan instruksi lisensi lengkap dapat ditemukan di file LICENSE.