주요 기능 • 예시 • 시작하기 • 추가 정보
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/언어에서 확인할 수 있습니다.
CSML을 시작하는 가장 간단한 방법은 브라우저에서 직접 봇 생성을 시작할 수 있도록 모든 것이 이미 설정되어 있는 무료 온라인 개발 환경인 CSML Studio를 사용하는 것입니다.
CSML Studio를 시작하려면: https://studio.csml.dev
CSML Studio는 언어를 실험할 수 있는 무료 놀이터와 원클릭으로 대규모로 챗봇을 배포할 수 있는 옵션을 제공합니다.
CSML은 아래 옵션 중 하나를 사용하여 쉽게 설치할 수 있는 자체 호스팅 웹 서버로 제공됩니다.
데이터베이스가 필요하다는 점에 유의하세요. 기본 선택은 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 모두에서 사용 가능) 중 하나를 사용하는 것입니다. 이러한 바이너리는 v1.3.0 이후 각 CSML 릴리스에서 실행 파일로 사용할 수 있습니다.
이 블로그 게시물(https://blog.csml.dev/how-to-install-a-self-hosted-csml-engine)에 있는 설치 가이드(Ubuntu의 경우, 프로세스는 다른 운영 체제에서도 유사함)를 따르세요. -on-ubuntu-18-04/
최신 CSML 서버 바이너리를 다운로드하려면 최신 릴리스로 이동하여 아키텍처에 적합한 버전을 다운로드하십시오.
Mac 사용자 : 이 바이너리를 처음 실행하면 Mac에서 응용 프로그램이 서명되지 않았다는 경고 메시지가 표시될 것입니다(자세한 정보는 Apple에서 제공). 이것은 널리 배포되는 응용 프로그램이 아니기 때문에 지금은 공증 절차를 거치지 않기로 결정했지만 해당 경고는 무시해도 됩니다! 그러나 원하는 경우 언제든지 소스에서 이 패키지를 빌드할 수 있습니다.
우리는 간편한 자체 호스팅 사용을 위해 도커 이미지를 제공합니다.
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
) 중 하나를 사용하여 MongoDB, DynamoDB, SQLite 또는 PostgreSQL용으로 특별히 빌드할 수 있습니다.
이 메소드는 프로젝트에서 간단히 require()
(또는 import
)할 수 있는 csml/bindings/node/native/index.node
네이티브 파일을 출력합니다. 자신의 프로젝트에서 이 모듈을 사용하는 방법에 대한 자세한 내용은 Docker 버전 구현을 참조하세요.
프로젝트를 다른 아키텍처에 배포하려는 경우 해당 아키텍처에서 프로젝트를 다시 컴파일해야 합니다. 자신의 Node.js 프로젝트에 CSML 엔진을 통합해야 하는 경우 git 하위 모듈을 사용하는 것이 좋습니다.
CSML 서버의 HTTP REST API 문서는 OpenAPIv3 형식(swagger.yaml)으로 제공됩니다. 이 파일을 쉽게 읽으려면 Swagger Editor에서 열 수 있습니다.