Take a look at Amazon Kendra
Hello Devs,
In this blog going to walk through another amazing AWS service which was launched recently in Amazon AI Conclave, Bangalore 2022.
Amazon Kendra
Let's understand why Amazon Kendra.
Finding accurate answers quickly, with ML-powered intelligent search
In a traditional search like an elastic search whenever you search for one question the algorithm tries to divide the question into keywords and tries to find out all keywords in the available data. Look at the below image. The major issue was having the right answer or can say right link or place to get an answer was a little challenging with traditional search.
Here is Amazon Kendra is helping you to get to the right place to the point where exactly the answer is. Amazon Kendra allows users to search unstructured and structured data using NLP ( Natural language processing ) and advanced search. Giving users an experience exactly like they feel talking human expert. Take the example of the question "Where is the IT desk in the company? " For this in traditional search will get a list of links which have the word "IT", "Desk" "Company" etc. But Kendra will highlight directly to a page where it mentioned it is on "1st Floor"
Let's check out what makes Kendra a powerful search.
What is behind Kendra?
Kendra uses data sources like S3 buckets, Salesforce or Slack or any other custom data sources as a connector. At times you can connect multiple connectors. Create an index from all data sources and it will be an updatable index of documents of a variety of types like structured text and unstructured text. Below is a list of unstructured text format support.
HTML files
Microsoft PowerPoint (PPT) presentations
MS WORD documents
Plain text documents
PDFs
Comma Separated Values (CSV) files
Microsoft Excel (MS EXCEL) files
XML files
JSON files
Markdown Documentation (MD) files
Rich Text Format (RTF) files
Extensible Stylesheet Language Transformation (XSLT) files
Once it creates an index from the data source next step is to add documents directly to it or from a data source. The last step will be to use Kendra API to use for search across data.
One example of Kendra API :
import boto3
import pprint
kendra = boto3.client("kendra")
# Provide the index ID
index_id = <index-id>
# Provide the query text
query = "search string"
response = kendra.query(
QueryText = query,
IndexId = index_id)
Kendra also supports other configurable parameters that will help format the response and how you want the result to look, such as
Querying an index
Tabular search for HTML
Browsing an index
Filtering queries
Filtering on user context
Query responses
Query suggestions
Query spell checker
Tuning responses
Sorting responses
Response types
What are use cases?
Enhance internal search experiences for employees
Improve customer interactions like a chatbot or call centre
Integrate search into SaaS applications like CRM, Salesforce
Prerequisites for starting Kendra :
AWS account if you have one else you need to create a new AWS account
Under the free trial, AWS provide 750 hours free.
Familiar with AWS Console, AWS CLI or Boto3 for Python or other languages SDK
What are the connectors provided by Kendra :
The list is big you can check this link https://aws.amazon.com/kendra/connectors/
Features :
Deploy Amazon search UI in few clicks via Amazon Kendra Experience Builder
Intelligent search
Incremental learning
Tuning and accuracy
Connectors
Domain optimization
Search Analytics Dashboard
Custom Document Enrichment
Query auto-completion
Pricing :
You can start a free tier account for 750 hours for the first 30 days. Connectors usage doesn't come under free usage.
Note: Charges will be applied on a per-index basis. Charges apply even if the provisioned indexes contain no documents and no queries are executed.
more details about pricing each use case-wise can be found here https://aws.amazon.com/kendra/pricing/
I hope this blog helps you to learn. Feel free to reach out to me on my Twitter handle @AvinashDalvi_ or comment on the blog.
Keep learning and keep sharing!
References :
Subscribe to my newsletter
Read articles from Avinash Dalvi directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Avinash Dalvi
Avinash Dalvi
12+ Years of experienced as Full Stack Developer. Also worked as architect for building solutions and product to help for automation. Solution-oriented and hands-on technical utility player. Having experience of more than 4 years of experience in E commerce and finance in each domain. Experience in having driving business automation, marketing using technology. Strong follower of open source technology. Used PHP, Python, AWS and Angular as technology stack to build product