1.0.3 • Published 4 years ago
@thefat32/aws-amplify-lex-provider-v2 v1.0.3
AWS Amplify Lex V2 Provider
Dependencies
Peer Dependencies
- Your project must provide @aws-amplify/core@^4.0.0
    yarn add @aws-amplify/core@^4.0.0Config
Bot config
Must provide bot configuration with:
- botId: stringLex V2 bot's id
- botAliasId: stringLex V2 bot's alias id
- localeId: stringLex V2 bot's locale id
- region: stringLex V2 bot's region
- providerName: 'AWSLex2Provider'Must always be- AWSLex2Provider
Add the provider to Amplify
import { Interactions } from '@aws-amplify/interactions';
Interactions.addPluggable(new AWSLex2Provider());Config Example
// index.tsx
import { Amplify } from '@aws-amplify/core';
import { Interactions } from '@aws-amplify/interactions';
import AWSLex2Provider from '@thefat32/aws-amplify-lex-provider-v2';
import awsmobile from 'aws-exports'
Interactions.addPluggable(new AWSLex2Provider());
Amplify.Logger.LOG_LEVEL = 'DEBUG';
Amplify.configure({
  ...awsmobile,
  bots: {
    ['myBotName']: {
      botId: 'myBotId',
      botAliasId: 'myBotAliasId',
      localeId: 'myBotLocaleId',
      region: 'us-east-1',
      providerName: 'AWSLex2Provider',
    },
  },
});Usage
Now you can use Interactions.send() with your Lex V2 bot
Interactions.send() will return either RecognizeTextCommandOutput or RecognizeUtteranceCommandOutput from @aws-sdk/client-lex-runtime-v2
Example
await Interactions.send('myBot', 'User input text') // will return RecognizeTextCommandOutput
await Interactions.send('myBot',{ content: 'User input text', options: { messageType: 'text' } }); // will return RecognizeUtteranceCommandOutput
const voiceData: Blob | ReadableStream = getUserVoiceInput(); // voice data must be either Blob or ReadableStream
await Interactions.send(voiceData ,{ content: text, options: { messageType: 'voice' } }); // will return RecognizeUtteranceCommandOutputReact
For React component example see examples folder