yandex-dialogs-sdk
Note: this is an open-source project. It is not affiliated with Yandex LLC.
Tiny zen library to create skills for Yandex.Alice
yandex-dialogs-sdk — Telegram chat, if you need help
Install SDK
npm i yandex-dialogs-sdk --save
To enable debug mode run
DEBUG=yandex-dialogs-sdk node YOUR_APP.js
Videotutorials
- Роман Парадеев — Доклад с конференции «В гостях у Алисы»
- Фил Романов — Пишем игру Guess Number за 10 минут
🔨 Built with SDK
- yandex-dialogs-whatis Smart reminder by @popstas
- Алиса в стране диез Awesome music game by @AntonRzevskiy
- Adventure Engine Adventure quest game by @Teoreez
- uraljs-alice-bot Навык Алисы UralJS
- homebot-alisa
- Send PR to be here!
Getting Started
const Alice Reply Markup = const alice = ; const M = Markup;alice;alice;alice;alice;alice;const server = alice;
Hot middlewares from maintainer
- yandex-dialogs-sdk-lowdb - store your users sessions in file
- yandex-dialogs-sdk-chatbase - send events to Google Chatbase by @popstas
Handle non-trivial scenarios
const Alice Scene Stage = const stage = ;const alice = ;const SCENE_AT_BAR = 'SCENE_AT_BAR';const atBar = SCENE_AT_BAR; atBar;atBar;atBar;atBar; stage;alice;alice;
A lot of examples in folder ./examples
API
Alice
const Alice =
alice.command
- Set handler for commandalice.any
- Set handler if no command has been matched
alicealicealice// pass function which returns boolean. True means perfect match.alice alice // create event listener// triggers when request processing is finishedalice
Images Api
To use this API you have to provide your auth data. More info
const alice = oAuthToken: OAUTH_TOKEN skillId: SKILL_ID;
alice.imagesApi.uploadImageByUrl
- Upload image by URLalice.imagesApi.uploadImageFile
- Upload image by File Buffer (Not implemented yet).alice.imagesApi.getImages
- Get all uploaded imagesalice.imagesApi.getImagesQuota
- Get images quotaalice.imagesApi.deleteImage
- Delete image
const image = await aliceimagesApi;const images = await aliceimagesApi;// @example { total: 104857600, used: 25715766 }const quota = await aliceimagesApi;// @example { result: 'ok' } | { message: 'Image not found' }await aliceimagesApi
Context
[ctx.data]
- object with request[ctx.message]
— shortcut forctx.data.request.command
[ctx.originalUtterance]
- shortcut forctx.data.request.original_utterance
[ctx.sessionId]
— shortcut forctx.data.session.session_id
[ctx.messageId]
— shortcut forctx.data.session.message_id
[ctx.userId]
— shortcut forctx.data.session.user_id
[ctx.payload]
— shortcut forctx.data.request.payload
[ctx.nlu]
- shortcut forctx.data.request.nlu
(see more)[ctx.response]
- available only in listeners. appears just before sending a response[ctx.enter()]
- enters session[ctx.leave()]
- goes to main dialogctx.session.set
- set session value. Session is attached touser_id
ctx.session.get
- get session value.
// enter/leave sceneconst Scene = ;ctx;ctx; ctxsession;const price = ctxsession; // 200
Stage
const Stage = const stage =
stage.addScene
- adds scene to stagestage.removeScene
- removes scene from stagestage.getMiddleware
- returns stage middleware
Middlewares
const createMessagesCounterMiddleware = { let count = 0 return async { // You can do anything with context here count += 1; return }}alice
Reply
const Reply = IMAGE_ID = '213044/d13b0d86a41daf9de232'EXTRA_PARAMS = // Extra params are optional tts: 'Hi the+re' buttons: 'one' Markup end_session: true
Reply.text
// Second argument is optionalalice
Reply.bigImageCard
- One big image
Reply
Reply.itemsListCard
- Gallery
Reply;Reply;
Events
// create event listener// triggers when request processing is finishedalice
Markup
const Markup =
Markup.button
const M = MarkupMM
CONTRIBUTING
git clone
npm install && npm run test && npm run dev
Typescript will be compiled into ./dist
Contributors
Thanks all these awesome people for this product.
Stanislav Popov 📖 |
Nikita Rogozhin 📖 |
Roman Paradeev 📖 |
Vanya Klimenko 📖 |
Dmitry Guketlev 📖 |
Alexander Karpov 📖 |
---|
Phil Romanov © MIT 2018