Principales fonctionnalités • Exemple • Mise en route • Informations supplémentaires
Essayez CSML en ligne
CSML (Conversational Standard Meta Language) est à la fois un langage de programmation spécifique à un domaine et un moteur de chatbot, conçu pour faciliter le développement de chatbots complexes.
Avec une syntaxe très expressive et composée uniquement de texte, les flux CSML sont faciles à comprendre, ce qui facilite le déploiement et la maintenance d'agents conversationnels. CSML gère les emplacements mémoire à court et à long terme, l'injection de métadonnées et la connexion à n'importe quelle API tierce ou l'injection de code arbitraire dans n'importe quel langage de programmation grâce à ses puissantes API d'exécution.
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
La documentation complète est disponible sur https://docs.csml.dev/langage.
Le moyen le plus simple de démarrer avec CSML est d'utiliser CSML Studio, un environnement de développement en ligne gratuit avec tout déjà configuré pour commencer à créer des robots immédiatement, directement dans votre navigateur.
Pour démarrer avec CSML Studio : https://studio.csml.dev
CSML Studio vous offre un terrain de jeu gratuit pour expérimenter le langage ainsi que des options pour déployer vos chatbots à grande échelle en un seul clic.
CSML est disponible en tant que serveur Web auto-hébergable que vous pouvez facilement installer avec l'une des options ci-dessous.
Notez que vous aurez besoin d'une base de données. Le choix par défaut est MongoDB , mais Amazon DynamoDB , PostgreSQL et SQLite sont également disponibles en choisissant le type de base de données mongodb
, dynamodb
, postgresql
ou sqlite
avec un ensemble de variables d'environnement légèrement différent.
Avant de commencer, assurez-vous que l'environnement est défini avec les options suivantes :
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
Le moyen le plus simple de lancer un moteur CSML sur votre propre machine consiste à utiliser l'un de nos binaires prédéfinis et optimisés (disponibles pour MongoDB et Amazon DynamoDB). Ces binaires sont disponibles sous forme d'exécutables sur chacune des versions de CSML depuis la v1.3.0.
Suivez le guide d'installation (pour Ubuntu, mais le processus sera similaire sur d'autres systèmes d'exploitation) sur ce billet de blog : https://blog.csml.dev/how-to-install-a-self-hosted-csml-engine -sur-ubuntu-18-04/
Pour télécharger les derniers binaires du serveur CSML, accédez à la dernière version et assurez-vous de télécharger la version adaptée à votre architecture.
Utilisateurs Mac : lors de la première exécution de ce binaire, Mac ouvrira probablement un avertissement indiquant que l'application n'est pas signée (plus d'informations auprès d'Apple). Comme il ne s'agit pas d'une application largement distribuée, nous avons décidé de ne pas passer par le processus de notarisation pour l'instant, mais vous pouvez ignorer cet avertissement en toute sécurité ! Cependant, si vous préférez, vous pouvez toujours créer ce package à partir des sources.
Nous fournissons une image Docker pour une utilisation auto-hébergée facile.
docker pull clevy/csml-engine
Pour démarrer avec CSML Engine sur Docker : https://github.com/CSML-by-Clevy/csml-engine-docker
CSML est construit dans Rust. Cependant, vous n'avez pas besoin de connaître Rust pour l'exécuter ! Assurez-vous que vous exécutez Rust v1.46+ et que openssl est installé sur votre machine (ou un équivalent pour votre distribution Linux, comme libssl), puis exécutez :
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
Après cela, exécutez votre build (par défaut sous ./targets/release/csml_server) et visitez http://localhost:5000 pour quelques exemples de requêtes.
Ce référentiel fournit les liaisons Node.js de cette bibliothèque Rust. Pour utiliser cette bibliothèque dans un projet Node.js, vous devrez la construire à partir des sources. Il y a quelques exigences :
Pour compiler CSML Engine dans un module de nœud natif, exécutez :
git clone https://github.com/CSML-by-Clevy/csml-engine csml
cd csml/bindings/node/native
npm run build -- --release
NB : vous pouvez créer spécifiquement pour MongoDB, DynamoDB, SQLite ou PostgreSQL en utilisant l'un des scripts spécialisés (c'est-à-dire
npm run build:mongodb
) dans le package.json.
Cette méthode produira ce fichier natif : csml/bindings/node/native/index.node
que vous pourrez simplement require()
(ou import
) dans votre projet. Pour plus de détails sur la façon d'utiliser ce module dans vos propres projets, vous pouvez consulter notre implémentation pour la version Docker.
Veuillez noter que si vous envisagez de déployer votre projet sur une architecture différente, vous devrez recompiler le projet sur cette architecture. Nous vous recommandons d'utiliser les sous-modules git si vous devez intégrer le moteur CSML dans vos propres projets Node.js.
La documentation de l'API HTTP REST du serveur CSML est disponible au format OpenAPIv3 : swagger.yaml. Pour lire facilement ce fichier, vous pouvez l'ouvrir dans Swagger Editor.