Ключевые особенности • Пример • Начало работы • Дополнительная информация
Попробуйте CSML онлайн
CSML (стандартный разговорный метаязык) — это одновременно предметно-ориентированный язык программирования и механизм чат-ботов, предназначенный для упрощения разработки сложных чат-ботов.
Благодаря очень выразительному синтаксису, состоящему только из текста, потоки 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: https://studio.csml.dev.
CSML Studio предоставляет вам бесплатную площадку для экспериментов с языком, а также возможность развертывания чат-ботов в любом масштабе одним щелчком мыши.
CSML доступен в виде самостоятельно размещаемого веб-сервера, который вы можете легко установить с помощью одного из приведенных ниже вариантов.
Обратите внимание, что вам понадобится база данных. По умолчанию выбран MongoDB , но Amazon DynamoDB , PostgreSQL и SQLite также доступны при выборе типа базы данных движка mongodb
, 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 Engine на своем компьютере — использовать один из наших предварительно созданных оптимизированных двоичных файлов (доступен как для MongoDB, так и для Amazon DynamoDB). Эти двоичные файлы доступны в виде исполняемых файлов в каждой версии CSML, начиная с версии 1.3.0.
Следуйте руководству по установке (для Ubuntu, но процесс будет аналогичен для других операционных систем) в этом сообщении блога: https://blog.csml.dev/how-to-install-a-self-hosted-csml-engine. -on-ubuntu-18-04/
Чтобы загрузить последние двоичные файлы CSML Server, перейдите к последней версии и обязательно загрузите версию, подходящую для вашей архитектуры.
Пользователи Mac : при первом запуске этого двоичного файла Mac, вероятно, откроет предупреждение о том, что приложение не подписано (подробнее от Apple). Поскольку это приложение не предназначено для широкого распространения, мы решили пока не проходить процедуру нотариального заверения, но вы можете смело игнорировать это предупреждение! Однако, если вы предпочитаете, вы всегда можете собрать этот пакет из исходного кода.
Мы предоставляем образ докера для удобного самостоятельного использования.
docker pull clevy/csml-engine
Чтобы начать работу с CSML Engine в Docker: https://github.com/CSML-by-Clevy/csml-engine-docker.
CSML построен на Rust. Однако вам не нужно знать Rust, чтобы запустить его! Убедитесь, что вы используете Rust v1.46+ и что на вашем компьютере установлен openssl (или его эквивалент для вашего дистрибутива Linux, например libssl), затем запустите:
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, чтобы просмотреть примеры запросов.
Этот репозиторий предоставляет привязки Node.js для этой библиотеки ржавчины. Чтобы использовать эту библиотеку в проекте Node.js, вам необходимо собрать ее из исходного кода. Есть несколько требований:
Чтобы скомпилировать CSML Engine в собственный модуль узла, запустите:
git clone https://github.com/CSML-by-Clevy/csml-engine csml
cd csml/bindings/node/native
npm run build -- --release
Примечание: вы можете выполнить сборку специально для MongoDB, DynamoDB, SQLite или PostgreSQL, используя один из специализированных скриптов (например,
npm run build:mongodb
) в package.json.
Этот метод выведет этот собственный файл: csml/bindings/node/native/index.node
, который вы можете просто require()
(или import
) в свой проект. Для получения более подробной информации о том, как использовать этот модуль в ваших собственных проектах, вы можете посмотреть нашу реализацию для версии Docker.
Обратите внимание: если вы планируете развернуть проект на другой архитектуре, вам потребуется перекомпилировать проект на этой архитектуре. Мы рекомендуем использовать подмодули git, если вам нужно интегрировать CSML Engine в ваши собственные проекты Node.js.
Документация по HTTP REST API CSML Server доступна в формате OpenAPIv3: swagger.yaml. Чтобы легко прочитать этот файл, вы можете открыть его в редакторе Swagger.