الميزات الرئيسية • مثال • البدء • معلومات إضافية
جرب CSML عبر الإنترنت
تعد CSML (لغة التعريف القياسية للمحادثة) لغة برمجة خاصة بالمجال ومحركًا لروبوتات الدردشة، وهي مصممة لتسهيل تطوير روبوتات الدردشة المعقدة.
من خلال بناء جملة معبر للغاية ومكون من نص فقط، من السهل فهم تدفقات CSML، مما يجعل من السهل نشر وكلاء المحادثة والحفاظ عليهم. يتعامل CSML مع فتحات الذاكرة القصيرة والطويلة المدى، وحقن البيانات التعريفية، والاتصال بأي واجهة برمجة تطبيقات تابعة لجهة خارجية أو إدخال تعليمات برمجية عشوائية في أي لغة برمجة بفضل واجهات برمجة التطبيقات القوية الخاصة بوقت التشغيل.
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 على جهازك الخاص هي استخدام أحد الثنائيات المحسنة المعدة مسبقًا (المتوفرة لكل من MongoDB وAmazon DynamoDB). تتوفر هذه الثنائيات كملفات تنفيذية في كل إصدار من إصدارات CSML منذ الإصدار 1.3.0.
اتبع دليل التثبيت (لنظام التشغيل ubuntu، لكن العملية ستكون مماثلة في أنظمة التشغيل الأخرى) الموجود في منشور المدونة هذا: https://blog.csml.dev/how-to-install-a-self-hosted-csml-engine -على أوبونتو-18-04/
لتنزيل أحدث ثنائيات خادم CSML، انتقل إلى الإصدار الأحدث وتأكد من تنزيل الإصدار الصحيح للبنية الخاصة بك.
مستخدمو Mac : عند التنفيذ الأول لهذا الثنائي، من المحتمل أن يفتح Mac تحذيرًا بشأن عدم توقيع التطبيق (مزيد من المعلومات من Apple). وبما أن هذا ليس المقصود منه أن يكون تطبيقًا موزعًا على نطاق واسع، فقد قررنا عدم إجراء عملية التوثيق في الوقت الحالي، ولكن يمكنك تجاهل هذا التحذير بأمان! ومع ذلك، إذا كنت تفضل ذلك، يمكنك دائمًا إنشاء هذه الحزمة من المصدر.
نحن نقدم صورة عامل إرساء لسهولة الاستضافة الذاتية.
docker pull clevy/csml-engine
للبدء باستخدام محرك CSML على Docker: https://github.com/CSML-by-Clevy/csml-engine-docker
تم إنشاء CSML في 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 في وحدة عقدة أصلية، قم بتشغيل:
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 في مشاريع Node.js الخاصة بك.
تتوفر وثائق HTTP REST API الخاصة بخادم CSML بتنسيق OpenAPIv3: swagger.yaml. لقراءة هذا الملف بسهولة، يمكنك فتحه في Swagger Editor.