Hauptmerkmale • Beispiel • Erste Schritte • Zusätzliche Informationen
Probieren Sie CSML online aus
CSML (Conversational Standard Meta Language) ist sowohl eine domänenspezifische Programmiersprache als auch eine Chatbot-Engine, die die Entwicklung komplexer Chatbots erleichtern soll.
Mit einer sehr ausdrucksstarken und reinen Textsyntax sind CSML-Abläufe leicht zu verstehen und erleichtern die Bereitstellung und Wartung von Konversationsagenten. CSML verwaltet dank seiner leistungsstarken Laufzeit-APIs Kurz- und Langzeitspeicherplätze, die Injektion von Metadaten und die Verbindung zu APIs von Drittanbietern oder die Injektion von beliebigem Code in beliebigen Programmiersprachen.
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
Die vollständige Dokumentation ist unter https://docs.csml.dev/sprache verfügbar.
Der einfachste Weg, mit CSML zu beginnen, ist die Verwendung von CSML Studio, einer kostenlosen Online-Entwicklungsumgebung, in der alles bereits eingerichtet ist, um sofort mit der Erstellung von Bots direkt in Ihrem Browser zu beginnen.
Um mit CSML Studio zu beginnen: https://studio.csml.dev
CSML Studio bietet Ihnen eine kostenlose Spielwiese zum Experimentieren mit der Sprache sowie Optionen zum maßstabsgetreuen Einsatz Ihrer Chatbots mit nur einem Klick.
CSML ist als selbsthostbarer Webserver verfügbar, den Sie einfach mit einer der folgenden Optionen installieren können.
Beachten Sie, dass Sie eine Datenbank benötigen. Die Standardauswahl ist MongoDB , aber Amazon DynamoDB , PostgreSQL und SQLite sind auch verfügbar, indem Sie den Engine-DB-Typ mongodb
, dynamodb
, postgresql
oder sqlite
mit einem etwas anderen Satz von Umgebungsvariablen auswählen.
Bevor Sie beginnen, stellen Sie sicher, dass die Umgebung mit den folgenden Optionen eingerichtet ist:
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
Der einfachste Weg, eine CSML-Engine auf Ihrem eigenen Computer zu starten, ist die Verwendung einer unserer vorgefertigten, optimierten Binärdateien (verfügbar für MongoDB und Amazon DynamoDB). Diese Binärdateien sind seit Version 1.3.0 in jeder CSML-Version als ausführbare Datei verfügbar.
Befolgen Sie die Installationsanleitung (für Ubuntu, der Vorgang ist jedoch auf anderen Betriebssystemen ähnlich) in diesem Blogbeitrag: https://blog.csml.dev/how-to-install-a-self-hosted-csml-engine -on-ubuntu-18-04/
Um die neuesten CSML Server-Binärdateien herunterzuladen, wechseln Sie zur neuesten Version und stellen Sie sicher, dass Sie die richtige Version für Ihre Architektur herunterladen.
Mac-Benutzer : Bei der ersten Ausführung dieser Binärdatei wird der Mac wahrscheinlich eine Warnung darüber öffnen, dass die Anwendung nicht signiert ist (weitere Informationen von Apple). Da es sich hierbei nicht um eine weitverbreitete Anwendung handelt, haben wir uns entschieden, den notariellen Prozess vorerst nicht zu durchlaufen, aber Sie können diese Warnung getrost ignorieren! Wenn Sie möchten, können Sie dieses Paket jedoch jederzeit aus dem Quellcode erstellen.
Wir stellen ein Docker-Image für die einfache selbstgehostete Nutzung bereit.
docker pull clevy/csml-engine
Um mit CSML Engine auf Docker zu beginnen: https://github.com/CSML-by-Clevy/csml-engine-docker
CSML ist in Rust erstellt. Sie müssen jedoch kein Rust kennen, um es auszuführen! Stellen Sie sicher, dass Sie Rust v1.46+ ausführen und dass auf Ihrem Computer OpenSSL (oder ein Äquivalent für Ihre Linux-Distribution, z. B. Libssl) installiert ist. Führen Sie dann Folgendes aus:
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
Führen Sie anschließend Ihren Build aus (standardmäßig unter ./targets/release/csml_server) und besuchen Sie http://localhost:5000 für einige Anforderungsbeispiele.
Dieses Repository stellt Node.js-Bindungen dieser Rust-Bibliothek bereit. Um diese Bibliothek in einem Node.js-Projekt verwenden zu können, müssen Sie sie aus dem Quellcode erstellen. Es gibt ein paar Anforderungen:
Führen Sie Folgendes aus, um CSML Engine in ein natives Knotenmodul zu kompilieren:
git clone https://github.com/CSML-by-Clevy/csml-engine csml
cd csml/bindings/node/native
npm run build -- --release
Hinweis: Sie können speziell für MongoDB, DynamoDB, SQLite oder PostgreSQL erstellen, indem Sie eines der speziellen Skripte (z. B.
npm run build:mongodb
) in package.json verwenden.
Diese Methode gibt diese native Datei aus: csml/bindings/node/native/index.node
, die Sie einfach require()
(oder import
) in Ihrem Projekt verwenden können. Weitere Informationen zur Verwendung dieses Moduls in Ihren eigenen Projekten finden Sie in unserer Implementierung für die Docker-Version.
Bitte beachten Sie, dass Sie das Projekt auf dieser Architektur neu kompilieren müssen, wenn Sie planen, Ihr Projekt auf einer anderen Architektur bereitzustellen. Wir empfehlen die Verwendung von Git-Submodulen, wenn Sie CSML Engine in Ihre eigenen Node.js-Projekte integrieren müssen.
Die HTTP-REST-API-Dokumentation von CSML Server ist im OpenAPIv3-Format verfügbar: swagger.yaml. Um diese Datei einfacher lesen zu können, können Sie sie im Swagger Editor öffnen.