Bagikan melalui


Library class

Pustaka dialog terkait yang digunakan untuk tujuan perutean. Pustaka dapat dirantai bersama-sama untuk memungkinkan pengembangan bot yang kompleks. Kelas UniversalBot adalah Pustaka yang membentuk akar rantai ini. Pustaka bagian yang dapat digunakan kembali dapat dikembangkan dengan membuat instans Pustaka baru dan menambahkan dialog seperti yang Anda lakukan pada bot. Pustaka Anda harus memiliki nama unik yang sesuai dengan situs web pustaka atau nama modul NPM Anda. Bot kemudian dapat menggunakan kembali pustaka Anda hanya dengan menambahkan instans Pustaka bagian Anda ke bot mereka menggunakan UniversalBot.library(). Jika pustaka Anda sendiri bergantung pada pustaka lain, Anda harus menambahkannya ke pustaka Anda sebagai dependensi menggunakan Library.library(). Anda dapat dengan mudah mengelola beberapa versi pustaka Anda dengan menambahkan nomor versi ke nama pustaka Anda.

Untuk memanggil dialog dalam bot pustaka Anda harus memanggil session.beginDialog() dengan id dialog yang sepenuhnya memenuhi syarat dalam bentuk ':'. Anda biasanya akan menyembunyikan ini dari pengembang dengan mengekspos fungsi dari modul mereka yang memulai dialog untuk mereka. Jadi memanggil sesuatu seperti myLib.someDialog(session, { arg: '' }); akan akhirnya memanggil session.beginDialog('myLib:someDialog', args); di bawah sampul.

Perlu dicatat bahwa dialog selalu dipanggil dalam dialog saat ini sehingga setelah Anda dalam dialog dari pustaka Anda, Anda tidak perlu mengawali setiap beginDialog() memanggil Anda dengan nama pustaka Anda. Ini hanya ketika menyeberang dari satu konteks pustaka ke konteks lain yang perlu Anda sertakan awalan nama pustaka.

Konstruktor

Library(string)

Membuat instans baru pustaka.

Properti

name

Pustaka namespace unik. Ini digunakan untuk mengisolasi dialog pustaka dan perintah yang dilokalkan.

RouteTypes

Nilai routeType yang didukung yang dikembalikan secara default dari findRoutes().

Metode

addRouteResult(IRouteResult, IRouteResult[])

Metode pembantu dipanggil dari berbagai metode temuan rute untuk mengelola penambahan rute kandidat ke kumpulan hasil.

  • Jika skor lebih besar, maka kecocokan terbaik saat ini dalam set hasil baru akan dikembalikan yang hanya berisi kecocokan baru.
  • Jika skor sama dengan kecocokan terbaik saat ini, skor akan ditambahkan ke set yang ada.
  • Jika skor kurang dari kecocokan terbaik saat ini, skor akan diabaikan.
beginDialogAction(string, string, IDialogActionOptions)

Mendaftarkan tindakan global yang akan memulai dialog lain kapan saja dipicu. Dialog baru akan didorong ke tumpukan sehingga tidak secara otomatis mengakhiri tugas saat ini. Tugas saat ini akan dilanjutkan setelah dialog baru berakhir. Perintah bawaan akan secara otomatis meminta kembali pengguna setelah ini terjadi tetapi perilaku tersebut dapat dinonaktifkan dengan mengatur bendera promptAfterAction saat memanggil perintah bawaan.

bestRouteResult(IRouteResult[], IDialogState[], string)

Menemukan rute terbaik untuk digunakan dalam kumpulan hasil yang berisi beberapa rute ambigu. Strategi disambigution berikut akan digunakan:

  1. : Jenis rute kustom adalah prioritas tertinggi dan alwsay akan lebih disukai. Ini memungkinkan pengembang mengambil alih perutean dalam bot dengan cara yang sangat kuat.
  2. activeDialog: Dialog aktif adalah prioritas tertinggi berikutnya.
  3. StackAction: Tindakan tumpukan adalah prioritas tertinggi berikutnya dan tindakan dengan posisi tumpukan terdalam akan dikembalikan.
  4. GlobalAction: Tindakan global adalah prioritas terendah. Jika dialogStack melewati tindakan dari pustaka terdalam di tumpukan akan disukai. Jika tidak, yang pertama akan dikembalikan.
clone(Library, string)

Mengembalikan klon pustaka yang sudah ada.

customAction(IDialogActionOptions)

Mendaftarkan tindakan global kustom yang akan memanggil handler onSelectAction saat dipicu.

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

Mendaftarkan atau mengembalikan dialog dari pustaka.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Mendaftarkan tindakan global yang akan mengakhiri percakapan dengan pengguna saat dipicu.

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Mendapatkan keyakinan dialog aktif bahwa dialog tersebut memahami pesan saat ini. Dialog harus menjadi anggota pustaka saat ini, jika tidak, skor 0,0 akan dikembalikan.

findDialog(string, string)

Mencari pustaka dan semua dependensinya untuk dialog tertentu. Mengembalikan dialog jika ditemukan, jika tidak null.

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Mencari pustaka untuk melihat apakah ada tindakan global yang telah dipicu.

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Mencari rute kandidat untuk menangani pesan saat ini. Untuk benar-benar memulai penanganan pesan, Anda harus memanggil selectRoute() dengan salah satu hasil yang dikembalikan. Logika pencarian default dapat diambil alih menggunakan onFindRoute() dan hanya pustaka saat ini yang dicari sehingga Anda harus memanggil findRoutes() putus-putus untuk setiap pustaka dalam hierarki.

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Mencari tumpukan dialog sesi untuk melihat apakah ada tindakan yang telah dipicu.

forEachDialog((dialog: Dialog, id: string) => void)

Menghitung semua dialog pustaka.

forEachLibrary((library: Library) => void)

Menghitung semua pustaka pustaka anak. Pemanggil harus mengambil langkah-langkah yang tepat untuk menghindari referensi melingkar saat menghitung hierarki. Dalam kebanyakan kasus memanggil libraryList() adalah pilihan yang lebih baik karena sudah berisi logika untuk menghindari siklus.

library(Library | string)

Mendaftarkan atau mengembalikan dependensi pustaka.

libraryList(boolean)

Mengembalikan daftar pustaka unik dalam hierarki. Harus dipanggil pada akar hierarki pustaka dan menghindari siklus yang dibuat ketika dua pustaka anak mereferensikan pustaka dependen yang sama.

localePath(string)

Mendapatkan atau mengatur jalur ke folder "/locale/" pustaka yang berisi perintah yang dilokalkan. Perintah untuk pustaka harus disimpan dalam file "/locale/<IETF_TAG>/.json" di bawah jalur ini di mana "<IETF_TAG>" mewakili tage bahasa 2-3 digit untuk lokal dan "" adalah nama file yang cocok dengan namespace pustaka.

onFindRoutes(IFindRoutesHandler)

Mengganti findRoutes() logika pencarian rute default dengan implementasi kustom.

onSelectRoute(ISelectRouteHandler)

Mengganti logika default untuk selectRoute() dengan implementasi kustom.

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

Mencoba mencocokkan ucapan teks pengguna dengan niat menggunakan pengenal pustaka. Lihat IIntentRecognizer.recognize() untuk detailnya.

recognizer(IIntentRecognizer)

Menambahkan plugin recognizer baru ke pustaka.

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Merutekan pesan saat ini ke dialog aktif.

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Merutekan pesan saat ini ke tindakan global yang dipicu.

selectRoute(Session, IRouteResult)

Memicu penanganan pesan saat ini menggunakan rute yang dipilih. Logika default dapat diambil alih menggunakan onSelectRoute().

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Merutekan pesan saat ini ke tindakan tumpukan yang dipicu.

Detail Konstruktor

Library(string)

Membuat instans baru pustaka.

new Library(name: string)

Parameter

name

string

Namespace unik untuk pustaka.

Detail Properti

name

Pustaka namespace unik. Ini digunakan untuk mengisolasi dialog pustaka dan perintah yang dilokalkan.

name: string

Nilai Properti

string

RouteTypes

Nilai routeType yang didukung yang dikembalikan secara default dari findRoutes().

static RouteTypes: Object

Nilai Properti

Object

Detail Metode

addRouteResult(IRouteResult, IRouteResult[])

Metode pembantu dipanggil dari berbagai metode temuan rute untuk mengelola penambahan rute kandidat ke kumpulan hasil.

  • Jika skor lebih besar, maka kecocokan terbaik saat ini dalam set hasil baru akan dikembalikan yang hanya berisi kecocokan baru.
  • Jika skor sama dengan kecocokan terbaik saat ini, skor akan ditambahkan ke set yang ada.
  • Jika skor kurang dari kecocokan terbaik saat ini, skor akan diabaikan.
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])

Parameter

route
IRouteResult

Rute kandidat untuk ditambahkan ke set.

current

IRouteResult[]

Hasil (Opsional) diatur untuk menambahkan rute juga. Jika hilang, set baru hanya dengan rute akan dikembalikan.

Mengembalikan

beginDialogAction(string, string, IDialogActionOptions)

Mendaftarkan tindakan global yang akan memulai dialog lain kapan saja dipicu. Dialog baru akan didorong ke tumpukan sehingga tidak secara otomatis mengakhiri tugas saat ini. Tugas saat ini akan dilanjutkan setelah dialog baru berakhir. Perintah bawaan akan secara otomatis meminta kembali pengguna setelah ini terjadi tetapi perilaku tersebut dapat dinonaktifkan dengan mengatur bendera promptAfterAction saat memanggil perintah bawaan.

function beginDialogAction(name: string, id: string, options?: IDialogActionOptions)

Parameter

name

string

Nama unik untuk menetapkan tindakan.

id

string

ID dialog untuk memulai.

options
IDialogActionOptions

(Opsional) opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan, jika tidak, tindakan perlu terikat ke tombol menggunakan CardAction.dialogAction() untuk memicu tindakan. Anda juga dapat menggunakan dialogArg untuk meneruskan param tambahan ke dialog yang sedang dimulai.

Mengembalikan

bestRouteResult(IRouteResult[], IDialogState[], string)

Menemukan rute terbaik untuk digunakan dalam kumpulan hasil yang berisi beberapa rute ambigu. Strategi disambigution berikut akan digunakan:

  1. : Jenis rute kustom adalah prioritas tertinggi dan alwsay akan lebih disukai. Ini memungkinkan pengembang mengambil alih perutean dalam bot dengan cara yang sangat kuat.
  2. activeDialog: Dialog aktif adalah prioritas tertinggi berikutnya.
  3. StackAction: Tindakan tumpukan adalah prioritas tertinggi berikutnya dan tindakan dengan posisi tumpukan terdalam akan dikembalikan.
  4. GlobalAction: Tindakan global adalah prioritas terendah. Jika dialogStack melewati tindakan dari pustaka terdalam di tumpukan akan disukai. Jika tidak, yang pertama akan dikembalikan.
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)

Parameter

routes

IRouteResult[]

Array rute kandidat untuk difilter.

dialogStack

IDialogState[]

(Opsional) tumpukan dialog yang digunakan untuk menentukan pustaka mana yang akan disukai tindakan global.

rootLibraryName

string

(Opsional) namespace pustaka yang lebih disukai saat memisahkan tindakan global dan tidak ada dialog pada tumpukan.

Mengembalikan

clone(Library, string)

Mengembalikan klon pustaka yang sudah ada.

function clone(copyTo?: Library, newName?: string)

Parameter

copyTo
Library

Instans (Opsional) untuk menyalin objek saat ini. Jika kehilangan instans baru akan dibuat.

newName

string

(Opsional) jika ditentukan salinan yang dikembalikan akan diganti namanya menjadi nama baru.

Mengembalikan

customAction(IDialogActionOptions)

Mendaftarkan tindakan global kustom yang akan memanggil handler onSelectAction saat dipicu.

function customAction(options: IDialogActionOptions)

Parameter

options
IDialogActionOptions

Opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan. Logika pencocokan kustom dapat disediakan menggunakan onFindAction.

Mengembalikan

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

Mendaftarkan atau mengembalikan dialog dari pustaka.

function dialog(id: string, dialog?: Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, replace?: boolean)

Parameter

id

string

ID unik dialog yang diregsiter atau diambil.

dialog

Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep

(Opsional) dialog atau air terjun untuk mendaftar.

  • dialog :{Dialog} - Dialog untuk ditambahkan.
  • dialog :{IDialogWaterfallStep[]} - Air terjun langkah-langkah untuk dijalankan. Lihat IDialogWaterfallStep untuk detailnya.
  • dialog :{IDialogWaterfallStep} - Air terjun langkah tunggal. Memanggil perintah bawaan atau memulai dialog baru akan mengakibatkan dialog saat ini berakhir setelah menyelesaikan permintaan/dialog anak.
replace

boolean

(Opsional) jika benar, dialog harus mengganti dialog yang ada jika sudah terdaftar.

Mengembalikan

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Mendaftarkan tindakan global yang akan mengakhiri percakapan dengan pengguna saat dipicu.

function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

Parameter

name

string

Nama unik untuk menetapkan tindakan.

msg
TextOrMessageType

(Opsional) pesan untuk mengirim pengguna sebelum mengakhiri percakapan.

options
ICancelActionOptions

(Opsional) opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan, jika tidak, tindakan perlu terikat ke tombol menggunakan CardAction.dialogAction() untuk memicu tindakan.

Mengembalikan

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Mendapatkan keyakinan dialog aktif bahwa dialog tersebut memahami pesan saat ini. Dialog harus menjadi anggota pustaka saat ini, jika tidak, skor 0,0 akan dikembalikan.

function findActiveDialogRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

Parameter

context
IRecognizeContext

Konteks pengenal baca-saja untuk percakapan saat ini.

callback

(err: Error, routes: IRouteResult[]) => void

Fungsi yang harus dipanggil dengan rute yang ditemukan.

dialogStack

IDialogState[]

(Opsional) tumpukan dialog untuk dicari. Perilaku defaultnya adalah mencari tumpukan dialog sesi saat ini.

findDialog(string, string)

Mencari pustaka dan semua dependensinya untuk dialog tertentu. Mengembalikan dialog jika ditemukan, jika tidak null.

function findDialog(libName: string, dialogId: string)

Parameter

libName

string

Nama pustaka yang berisi dialog.

dialogId

string

ID unik dialog dalam pustaka.

Mengembalikan

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Mencari pustaka untuk melihat apakah ada tindakan global yang telah dipicu.

function findGlobalActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

Parameter

context
IRecognizeContext

Konteks pengenal baca-saja untuk percakapan saat ini.

callback

(err: Error, routes: IRouteResult[]) => void

Fungsi yang harus dipanggil dengan rute yang ditemukan.

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Mencari rute kandidat untuk menangani pesan saat ini. Untuk benar-benar memulai penanganan pesan, Anda harus memanggil selectRoute() dengan salah satu hasil yang dikembalikan. Logika pencarian default dapat diambil alih menggunakan onFindRoute() dan hanya pustaka saat ini yang dicari sehingga Anda harus memanggil findRoutes() putus-putus untuk setiap pustaka dalam hierarki.

function findRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

Parameter

context
IRecognizeContext

Konteks pengenal baca-saja untuk percakapan saat ini.

callback

(err: Error, routes: IRouteResult[]) => void

Fungsi yang harus dipanggil dengan rute yang ditemukan.

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Mencari tumpukan dialog sesi untuk melihat apakah ada tindakan yang telah dipicu.

function findStackActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

Parameter

context
IRecognizeContext

Konteks pengenal baca-saja untuk percakapan saat ini.

callback

(err: Error, routes: IRouteResult[]) => void

Fungsi yang harus dipanggil dengan rute yang ditemukan.

dialogStack

IDialogState[]

(Opsional) tumpukan dialog untuk dicari. Perilaku defaultnya adalah mencari tumpukan dialog sesi saat ini.

forEachDialog((dialog: Dialog, id: string) => void)

Menghitung semua dialog pustaka.

function forEachDialog(callback: (dialog: Dialog, id: string) => void)

Parameter

callback

(dialog: Dialog, id: string) => void

Fungsi iterator untuk memanggil dengan setiap dialog.

forEachLibrary((library: Library) => void)

Menghitung semua pustaka pustaka anak. Pemanggil harus mengambil langkah-langkah yang tepat untuk menghindari referensi melingkar saat menghitung hierarki. Dalam kebanyakan kasus memanggil libraryList() adalah pilihan yang lebih baik karena sudah berisi logika untuk menghindari siklus.

function forEachLibrary(callback: (library: Library) => void)

Parameter

callback

(library: Library) => void

Fungsi iterator untuk memanggil dengan setiap libray anak.

library(Library | string)

Mendaftarkan atau mengembalikan dependensi pustaka.

function library(lib: Library | string)

Parameter

lib

Library | string

  • lib:{Library} - Pustaka untuk mendaftar sebagai dependensi.
  • lib:{string} - Nama unik pustaka untuk dicari. Semua dependensi juga akan dicari.

Mengembalikan

libraryList(boolean)

Mengembalikan daftar pustaka unik dalam hierarki. Harus dipanggil pada akar hierarki pustaka dan menghindari siklus yang dibuat ketika dua pustaka anak mereferensikan pustaka dependen yang sama.

function libraryList(reverse?: boolean)

Parameter

reverse

boolean

(Opsional) Jika daftar true akan dihasilkan dari daun yang berarti pustaka akar akan dicantumkan terakhir. Nilai default adalah false yang berarti akan dihasilkan dari akar ke bawah dan pustaka akar akan dicantumkan terlebih dahulu.

Mengembalikan

localePath(string)

Mendapatkan atau mengatur jalur ke folder "/locale/" pustaka yang berisi perintah yang dilokalkan. Perintah untuk pustaka harus disimpan dalam file "/locale/<IETF_TAG>/.json" di bawah jalur ini di mana "<IETF_TAG>" mewakili tage bahasa 2-3 digit untuk lokal dan "" adalah nama file yang cocok dengan namespace pustaka.

function localePath(path?: string)

Parameter

path

string

(Opsional) jalur ke pustaka folder "/locale/". Jika ditentukan, ini akan memperbarui jalur pustaka.

Mengembalikan

string

onFindRoutes(IFindRoutesHandler)

Mengganti findRoutes() logika pencarian rute default dengan implementasi kustom.

function onFindRoutes(handler: IFindRoutesHandler)

Parameter

handler
IFindRoutesHandler

Fungsi yang akan dipanggil kapan saja findRoutes() dipanggil untuk pustaka.

onSelectRoute(ISelectRouteHandler)

Mengganti logika default untuk selectRoute() dengan implementasi kustom.

function onSelectRoute(handler: ISelectRouteHandler)

Parameter

handler
ISelectRouteHandler

Fungsi yang akan dipanggil kapan saja selectRoute() dipanggil.

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

Mencoba mencocokkan ucapan teks pengguna dengan niat menggunakan pengenal pustaka. Lihat IIntentRecognizer.recognize() untuk detailnya.

function recognize(context: IRecognizeContext, callback: (err: Error, result: IIntentRecognizerResult) => void)

Parameter

context
IRecognizeContext

Konteks pengenal baca-saja untuk percakapan saat ini.

callback

(err: Error, result: IIntentRecognizerResult) => void

Fungsi yang harus dipanggil setelah penyelesaian pengenalan.

recognizer(IIntentRecognizer)

Menambahkan plugin recognizer baru ke pustaka.

function recognizer(plugin: IIntentRecognizer)

Parameter

plugin
IIntentRecognizer

Pengenal yang akan ditambahkan.

Mengembalikan

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Merutekan pesan saat ini ke dialog aktif.

function selectActiveDialogRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parameter

session
Session

Objek sesi untuk percakapan saat ini.

route
IRouteResult

Hasil rute yang dikembalikan dari panggilan sebelumnya ke findRoutes() atau findActiveDialogRoutes().

newStack

IDialogState[]

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Merutekan pesan saat ini ke tindakan global yang dipicu.

function selectGlobalActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parameter

session
Session

Objek sesi untuk percakapan saat ini.

route
IRouteResult

Hasil rute yang dikembalikan dari panggilan sebelumnya ke findRoutes() atau findGlobalActionRoutes().

newStack

IDialogState[]

selectRoute(Session, IRouteResult)

Memicu penanganan pesan saat ini menggunakan rute yang dipilih. Logika default dapat diambil alih menggunakan onSelectRoute().

function selectRoute(session: Session, route: IRouteResult)

Parameter

session
Session

Objek sesi untuk percakapan saat ini.

route
IRouteResult

Hasil rute yang dikembalikan dari panggilan sebelumnya ke findRoutes().

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Merutekan pesan saat ini ke tindakan tumpukan yang dipicu.

function selectStackActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parameter

session
Session

Objek sesi untuk percakapan saat ini.

route
IRouteResult

Hasil rute yang dikembalikan dari panggilan sebelumnya ke findRoutes() atau findStackActionRoutes().

newStack

IDialogState[]