Skip to content

Commit

Permalink
Merge branch 'develop' v0.8.9
Browse files Browse the repository at this point in the history
  • Loading branch information
rstrahan committed Nov 1, 2023
2 parents 92543b6 + ec95767 commit 5911442
Show file tree
Hide file tree
Showing 49 changed files with 7,035 additions and 8,431 deletions.
29 changes: 22 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.8.9] - 2023-11-01
### Added
- Allow customer to specify their own Voice Connector as a CloudFormation Template parameter. If the customer provided Voice Connector is provided, LCA will not deploy a new VC. (#102)

### Fixed
- Fix LCA/PCA integration when using Chime SDK Call Analytics (PR #108, #102)
- Call recording player now appears when recording file is available 1-2 minutes after the call when using Chime SDK Call Analytics (#108)
- Prevent START_CALL_PROCESSING if call has already ended. This removes possibility that START CALL PROCESSING picks up re-purposed KVS streams for a different callId (PR #114)
- Reduce agent assist latency when using Connect / Contact Lens by processing Utterance rather than Transcript events (PR #113)
- Improved markdown formatting for demo script agent assist responses
- Addressed stack update issues with Chime SDK Voice Connector, demo Asterisk instance, & Bedrock boto3 layer
- Use latest QnAbot on AWS release (5.4.4) for Agent Assist
- Dependabot security updates

## [0.8.8] - 2023-10-10
### Added
- Agent Assist bot can now generate a draft email from agent to caller, summarizing call and next steps

### Fixed
- Fix #102 - Agent Assist bot widget stopped working - display is blank.
- Fix #103 - Agent Assist bot widget stopped working - display is blank.
- Pull latest Qnabot Plugins submodule to get [Bedrock embeddings function whitespace fix](https://github.com/aws-samples/qnabot-on-aws-plugin-samples/blob/develop/CHANGELOG.md#fixed)


Expand Down Expand Up @@ -321,12 +335,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Initial release

[Unreleased]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.8...develop
[0.8.8]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.6...v0.8.7
[0.8.7]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.7...v0.8.6
[0.8.6]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.6...v0.8.5
[0.8.5]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.5...v0.8.4
[0.8.4]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.4...v0.8.3
[Unreleased]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.9...develop
[0.8.9]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.7...v0.8.9
[0.8.8]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.7...v0.8.8
[0.8.7]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.6...v0.8.7
[0.8.6]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.5...v0.8.6
[0.8.5]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.4...v0.8.5
[0.8.4]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.3...v0.8.4
[0.8.3]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/aws-samples/amazon-transcribe-live-call-analytics/compare/v0.8.0...v0.8.1
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ _Companion AWS blog post: [Live call analytics and agent assist for your contact

## Overview

_Update October 2023 (v0.8.7) - This release provides Amazon Bedrock (generally available) support for both transcript summarization and Agent Assist (QnABot). It supports single prompt and multi-prompt summarization. To learn more, please read [customize transcript summarization](./lca-ai-stack/TranscriptSummarization.md)._

_See [CHANGELOG](./CHANGELOG.md) for latest features and fixes._

Your contact center connects your business to your community, enabling customers to order products, callers to request support, clients to make appointments, and much more. When calls go well, callers retain a positive image of your brand, and are likely to return and recommend you to others. And the converse, of course, is also true.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.8.8
0.8.9
8 changes: 4 additions & 4 deletions lca-agentassist-setup-stack/qna-aa-demo.jsonl
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{"qid":"AADEMO.Transaction.MakePayment","a":"All information captured.. Last 4 digits of account number = {{getSlot 'accountno' '?'}}, Amount = ${{getSlot 'amount' '?'}}, Account = {{getSlot 'accounttype' '?'}}.\nSuggested response: Great, so I’ve processed payment of ${{getSlot 'amount' '?'}} from your {{getSlot 'accounttype' '?'}} account. Is there anything else I can help you with?","enableQidIntent":true,"slots":[{"slotRequired":true,"slotName":"accountno","slotType":"AMAZON.Number","slotPrompt":"Ask caller for last 4 digits of card number"},{"slotRequired":true,"slotName":"amount","slotType":"AMAZON.Number","slotPrompt":"Confirm that card balance is $75.34. How much do you want to pay? There’s a $50 minimum payment.","slotSampleUtterances":"I want to pay {amount} dollars, I'll pay {amount} dollars please, {amount} dollars please, I'll pay {amount} dollars"},{"slotRequired":true,"slotName":"accounttype","slotType":"SlotType.ACCOUNTTYPE","slotPrompt":"Ask caller if they want to pay from their checking or savings account","slotSampleUtterances":"Let's use my {accounttype} account, my {accounttype} please"}],"type":"qna","q":["Hi, I want to pay my credit card bill.","Can I pay my card bill.","Let me pay the card bill","Can i pay my card bill now while I’m on the phone?","Thanks, yes. Can i pay my card bill now?"]}
{"qid":"AADEMO.CashBackEnquiry","a":"{{#ifCond Slots.cardtype '===' 'reward-cards'}} \n I see here that the rewards card has a 2% cashback rate on your everyday spending. \n{{else}}\n I see here that the {{Slots.cardtype}} does not offer cash back. You might want to consider our rewards card. \n{{/ifCond}}\nAnything else I can help with today?","enableQidIntent":true,"slots":[{"slotRequired":true,"slotValueCached":true,"slotName":"cardtype","slotType":"SlotType.CARDTYPE","slotPrompt":"Ask: Is this a rewards card, or a purchase card?","slotSampleUtterances":"It's a {cardtype} card"}],"type":"qna","q":["I was wondering what is the cash back rate for this card?","What is the cash back rate for the {cardtype} card?"]}
{"qid":"AADEMO.LifeInsurancePolicyEnquiry","a":"Open https://en.wikipedia.org/wiki/Life_insurance\nSuggested response: We offer many types of Term life insurance, and Permanent life insurance, including Whole life, Universal life, Endowment policies, Accidental death policies, and more.","type":"qna","q":["Do you offer life insurance policies?","What life insurance policies do you have?","Can you tell me what kinds of life insurance policies you have"]}
{"qid":"AADEMO.Transaction.MakePayment","a":"All information captured.. Last 4 digits of account number = {{getSlot 'accountno' '?'}}, Amount = ${{getSlot 'amount' '?'}}, Account = {{getSlot 'accounttype' '?'}}.\nSuggested response: Great, so I’ve processed payment of ${{getSlot 'amount' '?'}} from your {{getSlot 'accounttype' '?'}} account. Is there anything else I can help you with?","alt":{"markdown":"**All information captured.. Last 4 digits of account number = {{getSlot 'accountno' '?'}}, Amount = ${{getSlot 'amount' '?'}}, Account = {{getSlot 'accounttype' '?'}}.**\n<br>Suggested response: Great, so I’ve processed payment of ${{getSlot 'amount' '?'}} from your {{getSlot 'accounttype' '?'}} account. Is there anything else I can help you with?"},"enableQidIntent":true,"slots":[{"slotRequired":true,"slotName":"accountno","slotType":"AMAZON.Number","slotPrompt":"Ask caller for last 4 digits of card number"},{"slotRequired":true,"slotName":"amount","slotType":"AMAZON.Number","slotPrompt":"Confirm that card balance is $75.34. How much do you want to pay? There’s a $50 minimum payment.","slotSampleUtterances":"I'll pay {amount} dollars please, {amount} dollars please, I'll pay {amount} dollars, I'll pay $ {amount} please, I'll pay $ {amount}, $ {amount}"},{"slotRequired":true,"slotName":"accounttype","slotType":"SlotType.ACCOUNTTYPE","slotPrompt":"Ask caller if they want to pay from their checking or savings account","slotSampleUtterances":"Let's use my {accounttype} account, my {accounttype} please"}],"type":"qna","q":["Hi, I want to pay my credit card bill.","Can I pay my card bill.","Let me pay the card bill","Can i pay my card bill now while I’m on the phone?","Thanks, yes. Can i pay my card bill now?"]}
{"qid":"AADEMO.CashBackEnquiry","a":"{{#ifCond Slots.cardtype '===' 'reward-cards'}} \n I see here that the rewards card has a 2% cashback rate on your everyday spending. \n{{else}}\n I see here that the {{Slots.cardtype}} does not offer cash back. You might want to consider our rewards card. \n{{/ifCond}}\nAnything else I can help with today?","alt":{"markdown":"{{#ifCond Slots.cardtype '===' 'reward-cards'}} \n I see here that the rewards card has a 2% cashback rate on your everyday spending. \n{{else}}\n I see here that the {{Slots.cardtype}} does not offer cash back. You might want to consider our rewards card. \n{{/ifCond}}\nAnything else I can help with today?"},"enableQidIntent":true,"slots":[{"slotRequired":true,"slotValueCached":true,"slotName":"cardtype","slotType":"SlotType.CARDTYPE","slotPrompt":"Ask: Is this a rewards card, or a purchase card?","slotSampleUtterances":"It's a {cardtype} card"}],"type":"qna","q":["I was wondering what is the cash back rate for this card?","What is the cash back rate for the {cardtype} card?"]}
{"qid":"AADEMO.LifeInsurancePolicyEnquiry","a":"Open https://en.wikipedia.org/wiki/Life_insurance\nSuggested response: We offer many types of Term life insurance, and Permanent life insurance, including Whole life, Universal life, Endowment policies, Accidental death policies, and more.","alt":{"markdown":"Open [Life_insurance](https://en.wikipedia.org/wiki/Life_insurance)\n<br>Suggested response: We offer many types of Term life insurance, and Permanent life insurance, including Whole life, Universal life, Endowment policies, Accidental death policies, and more."},"type":"qna","q":["Do you offer life insurance policies?","What life insurance policies do you have?","Can you tell me what kinds of life insurance policies you have"]}
{"qid":"AADEMO.Wrapup","a":"Thanks {{getSessionAttr 'qnabotcontext.slot.firstname' ''}}! We appreciate your business. Check out our website at ACMEBank.com to learn about all our other products, and feel free to call back if you have any additional questions. Have a great day.","type":"qna","q":["Nothing else just now.","You’ve been a big help. That's all I need for now.","That's all I need for now."]}
{"qid":"SlotType.ACCOUNTTYPE","descr":"Capture account type","resolutionStrategyRestrict":true,"slotTypeValues":[{"samplevalue":"checking","synonyms":"checking account"},{"samplevalue":"savings","synonyms":"savings account"}],"type":"slottype","_id":"SlotType.ACCOUNTTYPE"}
{"qid":"SlotType.CARDTYPE","descr":"Capture credit card type","resolutionStrategyRestrict":true,"slotTypeValues":[{"samplevalue":"reward-cards","synonyms":"rewards"},{"samplevalue":"purchase-cards","synonyms":"purchase"}],"type":"slottype","_id":"SlotType.CARDTYPE"}
{"qid":"AADEMO.CardTypeAndName","a":"Suggested response: Perfect! Hi {{getSlot 'firstname' '?'}}! How can i help you with your {{getSlot 'cardtype' '?'}} card?","enableQidIntent":true,"slots":[{"slotRequired":true,"slotValueCached":true,"slotName":"cardtype","slotType":"SlotType.CARDTYPE","slotPrompt":"Ask: Is this a rewards card, or a purchase card?","slotSampleUtterances":"It's a {cardtype} card"},{"slotRequired":true,"slotValueCached":true,"slotName":"firstname","slotType":"AMAZON.FirstName","slotPrompt":"Ask caller to state their first name only, for verification purposes. It should be ‘Bob’ per callerId lookup."}],"type":"qna","q":["I’m calling about my {cardtype} card.","Hi. My name is {firstname}. I’m calling about my card.","Hi. My name is {firstname}. I’m calling about my {cardtype} card.","Hi. My name is {firstname}."]}
{"qid":"CustomNoMatches","a":"{{Settings.EMPTYMESSAGE}}","alt":{"markdown":"{{Settings.EMPTYMESSAGE}}"},"type":"qna","q":["no_hits"]}
{"qid":"AA.SummarizeCall","a":"Call summary lambda hook failed","type":"qna","q":["Summarize current call"],"l":"<LCASummarizeCallFunctionName>","args":["<br><br>Human:<br>{transcript}<br><br>Summarize the above transcript in no more than 5 sentences, using gender neutral pronouns. Were the caller's needs met during the call?<br><br>Assistant: Here is a summary in 5 sentences:"],"r":{"buttons":[{"text":"Summarize Current Call","value":"QID::AA.SummarizeCall"},{"text":"Identify Current Topic","value":"QID::AA.CurrentTopic"},{"text":"Generate Email","value":"QID::AA.GenerateEmail"}],"title": "Buttons"}}
{"qid":"AA.CurrentTopic","a":"Call summary lambda hook failed","type":"qna","q":["Identify current topic"],"l":"<LCASummarizeCallFunctionName>","args":["<br><br>Human:<br>{transcript}<br><br>Summarize the most recent issue or topic discussed in this call.<br><br>Assistant: The most recent topic or issue is:"], "r":{"buttons":[{"text":"Summarize Current Call","value":"QID::AA.SummarizeCall"},{"text":"Identify Current Topic","value":"QID::AA.CurrentTopic"},{"text":"Generate Email","value":"QID::AA.GenerateEmail"}],"title": "Buttons"}}
{"qid":"AA.GenerateEmail","a":"Call summary lambda hook failed","type":"qna","q":["Write followup email"],"l":"<LCASummarizeCallFunctionName>","args":["<br><br>Human:<br>{transcript}<br><br>Write a follow-up email from the agent to the caller. The email should include a greeting, a summary of the reasons why the caller called, a summary of actions taken during the call, a summary of any outstanding issues, and a summary of action items and next steps, if any. Write the email in the first person.<br><br>Assistant:"]}
{"qid":"AA.GenerateEmail","a":"Call summary lambda hook failed","type":"qna","q":["Write followup email"],"l":"<LCASummarizeCallFunctionName>","args":["<br><br>Human:<br>{transcript}<br><br>Write a follow-up email from the agent to the caller. The email should include a greeting, a summary of the reasons why the caller called, a summary of actions taken during the call, a summary of any outstanding issues, and a summary of action items and next steps, if any. Write the email in the first person.<br><br>Assistant:"],"r":{"buttons":[{"text":"Summarize Current Call","value":"QID::AA.SummarizeCall"},{"text":"Identify Current Topic","value":"QID::AA.CurrentTopic"},{"text":"Generate Email","value":"QID::AA.GenerateEmail"}],"title": "Buttons"}}
{"qid":"AA.StartMessage","a":"*LCA Agent Assistant is ready. Ask knowledge base questions or request a summary of the current call.*","alt":{"markdown": "*LCA Agent Assistant is ready. Ask knowledge base questions or request a summary of the current call.*"},"r":{"buttons":[{"text":"Summarize Current Call","value":"QID::AA.SummarizeCall"},{"text":"Identify Current Topic","value":"QID::AA.CurrentTopic"},{"text":"Generate Email","value":"QID::AA.GenerateEmail"}],"title": "Buttons"},"type":"qna","q":["Start Agent Assist"]}
Loading

0 comments on commit 5911442

Please sign in to comment.