Fitur Utama • Contoh • Memulai • Informasi Tambahan
Coba CSML daring
CSML (Bahasa Meta Standar Percakapan) adalah bahasa pemrograman khusus domain dan mesin chatbot, yang dirancang untuk memudahkan pengembangan chatbot yang kompleks.
Dengan sintaksis yang sangat ekspresif dan hanya berupa teks, alur CSML mudah dipahami, sehingga memudahkan penerapan dan pemeliharaan agen percakapan. CSML menangani slot memori jangka pendek dan panjang, injeksi metadata, dan koneksi ke API pihak ketiga mana pun atau memasukkan kode arbitrer ke dalam bahasa pemrograman apa pun berkat API runtime yang kuat.
start:
say " Hi, nice to meet you, I'm a demo bot "
if (name) {
say " I already know you "
goto known
}
else
goto name
name:
say Question (
" I'd like to know you better, what's your name? " ,
buttons=[
Button ( " I'm anonymous ? " , accepts=[ " No " , " Nope " ]) as anonBtn
],
)
hold
if (event.match(anonBtn)) {
remember name = " anon "
} else {
remember name = event
}
goto known
known:
if (name == " anon " )
say "...but I know you don't want to say too much about yourself!"
else
say "You are {{name}}! "
goto end
Dokumentasi lengkap tersedia di https://docs.csml.dev/bahasa.
Cara paling sederhana untuk memulai CSML adalah dengan menggunakan CSML Studio, lingkungan pengembangan online gratis yang semuanya telah disiapkan untuk mulai membuat bot segera, langsung di browser Anda.
Untuk memulai CSML Studio: https://studio.csml.dev
CSML Studio memberi Anda tempat bermain gratis untuk bereksperimen dengan bahasa serta opsi untuk menerapkan chatbot Anda dalam skala besar hanya dengan satu klik.
CSML tersedia sebagai server web yang dapat dihosting sendiri dan dapat Anda instal dengan mudah menggunakan salah satu opsi di bawah.
Perhatikan bahwa Anda memerlukan database. Pilihan defaultnya adalah MongoDB , namun Amazon DynamoDB , PostgreSQL dan SQLite juga tersedia dengan memilih jenis DB mesin mongodb
, dynamodb
, postgresql
atau sqlite
dengan serangkaian variabel lingkungan yang sedikit berbeda.
Sebelum memulai, pastikan Anda telah mengatur lingkungan dengan opsi berikut:
ENGINE_DB_TYPE=mongodb # must be one of mongodb|dynamodb|postgresql|sqlite
# for mongodb
MONGODB_URI=mongodb://username:password@localhost:27017
MONGODB_DATABASE=csml
# for postgresql
POSTGRESQL_URL=postgres://user:password@hostname:port/database
# for sqlite
SQLITE_URL=csml.db
# for dynamodb (requires S3 for storage of large items)
AWS_ACCESS_KEY_ID= # or use a local IAM role
AWS_SECRET_ACCESS_KEY= # or use a local IAM role
AWS_REGION=
AWS_DYNAMODB_ENDPOINT= # optional, defaults to the dynamodb endpoint for the given region.
AWS_DYNAMODB_TABLE=
AWS_S3_ENDPOINT= # optional, defaults to the S3 endpoint for the given region
AWS_S3_BUCKET=
# CSML Server configuration
ENGINE_SERVER_PORT=5000
ENGINE_SERVER_API_KEYS=someAuthKey4CsmlServer,someOtherAuthKey
# Other optional engine configuration
ENGINE_ENCRYPTION_SECRET=some-secret-string # if not set, data will not be stored encrypted
TTL_DURATION=30 # auto-remove chatbot user data after X days
LOW_DATA_MODE=true # do not store contents of sent/received messages
DISABLE_SSL_VERIFY=false # reach trusted endpoints with known invalid certificates
DEBUG=true # print debug output in console
CSML_LOG_LEVEL=error # print log output in stderr. Possible values are error, warn, info, debug, trace.
MODULES_URL= # default module repository base url
MODULES_AUTH= # default module auth token
Cara termudah untuk meluncurkan Mesin CSML di mesin Anda sendiri adalah dengan menggunakan salah satu biner kami yang sudah dioptimalkan dan telah dibuat sebelumnya (tersedia untuk MongoDB dan Amazon DynamoDB). Biner ini tersedia sebagai executable pada setiap rilis CSML sejak v1.3.0.
Ikuti panduan instalasi (untuk ubuntu, tetapi prosesnya akan serupa pada sistem operasi lain) di postingan blog ini: https://blog.csml.dev/how-to-install-a-self-hosted-csml-engine -di-ubuntu-18-04/
Untuk mengunduh binari Server CSML terbaru, buka rilis terbaru dan pastikan mengunduh versi yang tepat untuk arsitektur Anda.
Pengguna Mac : saat biner ini dieksekusi pertama kali, Mac mungkin akan membuka peringatan tentang aplikasi tidak ditandatangani (info lebih lanjut dari Apple). Karena ini tidak dimaksudkan sebagai aplikasi yang didistribusikan secara luas, kami memutuskan untuk tidak melalui proses notaris untuk saat ini, namun Anda dapat mengabaikan peringatan itu dengan aman! Namun, jika mau, Anda selalu dapat membuat paket ini dari sumber.
Kami menyediakan gambar buruh pelabuhan untuk kemudahan penggunaan yang dihosting sendiri.
docker pull clevy/csml-engine
Untuk memulai Mesin CSML di Docker: https://github.com/CSML-by-Clevy/csml-engine-docker
CSML dibangun di Rust. Anda tidak perlu mengetahui Rust apa pun untuk menjalankannya! Pastikan Anda menjalankan Rust v1.46+ dan Anda telah menginstal openssl di mesin Anda (atau yang setara untuk distribusi linux Anda, seperti libssl), lalu jalankan:
cd csml_server
# for use with MongoDB
cargo build --release --features csml_engine/mongo
# for use with Amazon DynamoDB
cargo build --release --features csml_engine/dynamo
Setelah itu, jalankan build Anda (secara default di bawah ./targets/release/csml_server) dan kunjungi http://localhost:5000 untuk beberapa contoh permintaan.
Repositori ini menyediakan pengikatan Node.js dari perpustakaan karat ini. Untuk menggunakan perpustakaan ini dalam proyek Node.js, Anda perlu membangunnya dari sumber. Ada beberapa persyaratan:
Untuk mengkompilasi Mesin CSML ke dalam modul node asli, jalankan:
git clone https://github.com/CSML-by-Clevy/csml-engine csml
cd csml/bindings/node/native
npm run build -- --release
NB: Anda dapat membuat secara khusus untuk MongoDB, DynamoDB, SQLite atau PostgreSQL dengan menggunakan salah satu skrip khusus (yaitu
npm run build:mongodb
) di package.json.
Metode ini akan menampilkan file asli ini: csml/bindings/node/native/index.node
yang dapat Anda require()
(atau import
) di proyek Anda. Untuk detail selengkapnya tentang cara menggunakan modul ini di proyek Anda sendiri, Anda dapat melihat implementasi kami untuk versi Docker.
Harap dicatat bahwa jika Anda berencana untuk menyebarkan proyek Anda pada arsitektur yang berbeda, Anda perlu mengkompilasi ulang proyek pada arsitektur tersebut. Kami merekomendasikan penggunaan submodul git jika Anda perlu mengintegrasikan Mesin CSML dalam proyek Node.js Anda sendiri.
Dokumentasi HTTP REST API Server CSML tersedia dalam format OpenAPIv3: swagger.yaml. Untuk membaca file ini dengan mudah, Anda dapat membukanya di Swagger Editor.