主な機能 • 例 • はじめに • 追加情報
CSML をオンラインで試してみる
CSML (Conversational Standard Meta Language) は、ドメイン固有のプログラミング言語であると同時にチャットボット エンジンでもあり、複雑なチャットボットを簡単に開発できるように設計されています。
非常に表現力豊かなテキストのみの構文を備えた CSML フローは理解しやすく、会話型エージェントの導入と維持が容易になります。 CSML は、強力なランタイム API のおかげで、短期および長期のメモリ スロット、メタデータの挿入、サードパーティ API への接続、またはプログラミング言語での任意のコードの挿入を処理します。
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
完全なドキュメントは https://docs.csml.dev/ language で入手できます。
CSML を始める最も簡単な方法は、CSML Studio を使用することです。CSML Studio は、すべてがすでにセットアップされている無料のオンライン開発環境で、ブラウザーで直接ボットの作成をすぐに開始できます。
CSML Studio を開始するには: https://studio.csml.dev
CSML Studio は、言語を試すための無料のプレイグラウンドと、ワンクリックでチャットボットを大規模に展開するオプションを提供します。
CSML は、以下のオプションのいずれかを使用して簡単にインストールできる自己ホスト型 Web サーバーとして利用できます。
データベースが必要になることに注意してください。デフォルトの選択はMongoDBですが、わずかに異なる環境変数セットでmongodb
、 dynamodb
、 postgresql
またはsqlite
エンジン DB タイプを選択することで、 Amazon DynamoDB 、 PostgreSQL 、およびSQLiteも使用できます。
開始する前に、環境が次のオプションで設定されていることを確認してください。
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
自分のマシンで CSML エンジンを起動する最も簡単な方法は、事前に構築され、最適化されたバイナリ (MongoDB と Amazon DynamoDB の両方で利用可能) の 1 つを使用することです。これらのバイナリは、v1.3.0 以降の CSML の各リリースで実行可能ファイルとして利用できます。
このブログ投稿にあるインストール ガイド (ubuntu の場合ですが、プロセスは他のオペレーティング システムでも同様です) に従ってください: https://blog.csml.dev/how-to-install-a-self-hosted-csml-engine -on-ubuntu-18-04/
最新の CSML サーバー バイナリをダウンロードするには、最新リリースに移動し、アーキテクチャに適したバージョンをダウンロードしてください。
Mac ユーザー: このバイナリを最初に実行すると、Mac はおそらくアプリケーションが署名されていないことに関する警告を表示します (詳細は Apple からの情報)。これは広く配布されるアプリケーションを意図したものではないため、現時点では公証プロセスを経ないことにしましたが、この警告は無視しても問題ありません。ただし、必要に応じて、いつでもこのパッケージをソースからビルドできます。
セルフホストで簡単に使用できるように、Docker イメージを提供します。
docker pull clevy/csml-engine
Docker で CSML エンジンを開始するには: https://github.com/CSML-by-Clevy/csml-engine-docker
CSML は Rust で構築されています。ただし、実行するために Rust の知識は必要ありません。 Rust v1.46+ を実行していること、および openssl (または libssl などの Linux ディストリビューションの同等のもの) がマシンにインストールされていることを確認してから、次のコマンドを実行します。
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
その後、ビルドを実行し (デフォルトでは ./targets/release/csml_server の下にあります)、http://localhost:5000 にアクセスしてリクエストの例を確認します。
このリポジトリは、この Rust ライブラリの Node.js バインディングを提供します。このライブラリを Node.js プロジェクトで使用するには、ソースからビルドする必要があります。いくつかの要件があります。
CSML エンジンをネイティブ ノード モジュールにコンパイルするには、次を実行します。
git clone https://github.com/CSML-by-Clevy/csml-engine csml
cd csml/bindings/node/native
npm run build -- --release
注意: package.json 内の特殊なスクリプト (つまり、
npm run build:mongodb
) の 1 つを使用して、MongoDB、DynamoDB、SQLite、または PostgreSQL 専用にビルドできます。
このメソッドは、このネイティブ ファイルcsml/bindings/node/native/index.node
を出力します。これは、プロジェクト内で単純にrequire()
(またはimport
) できます。独自のプロジェクトでこのモジュールを使用する方法の詳細については、Docker バージョンの実装をご覧ください。
プロジェクトを別のアーキテクチャにデプロイする予定がある場合は、そのアーキテクチャでプロジェクトを再コンパイルする必要があることに注意してください。 CSML エンジンを独自の Node.js プロジェクトに統合する必要がある場合は、git サブモジュールを使用することをお勧めします。
CSML サーバーの HTTP REST API ドキュメントは、OpenAPIv3 形式 (swagger.yaml) で入手できます。このファイルを簡単に読み取るには、Swagger Editor で開くことができます。