Skip to main content

llama-index retrievers kendra integration

Project description

LlamaIndex Retrievers Integration: Amazon Kendra

Overview

Amazon Kendra is an intelligent search service powered by machine learning. Kendra reimagines enterprise search for your websites and applications by allowing users to search your unstructured and structured data using natural language.

Kendra supports a wide variety of data sources including:

  • Documents (PDF, Word, PowerPoint, HTML)
  • FAQs
  • Knowledge bases
  • Databases
  • Websites
  • Custom data sources through connectors

Installation

pip install llama-index-retrievers-kendra

Usage

Here's a basic example of how to use the Kendra retriever:

from llama_index.retrievers.kendra import AmazonKendraRetriever

retriever = AmazonKendraRetriever(
    index_id="<kendra-index-id>",
    query_config={
        "PageSize": 4,
        "AttributeFilter": {
            "EqualsTo": {
                "Key": "department",
                "Value": {"StringValue": "engineering"},
            }
        },
    },
)

query = "What is our company's remote work policy?"
retrieved_results = retriever.retrieve(query)

# Print the first retrieved result
print(retrieved_results[0].get_content())

Advanced Configuration

The retriever supports Kendra's rich querying capabilities through the query_config parameter:

retriever = AmazonKendraRetriever(
    index_id="<kendra-index-id>",
    query_config={
        "PageSize": 10,  # Number of results to return
        "AttributeFilter": {
            # Filter results based on document attributes
            "AndAllFilters": [
                {
                    "EqualsTo": {
                        "Key": "department",
                        "Value": {"StringValue": "engineering"},
                    }
                },
                {
                    "GreaterThan": {
                        "Key": "last_updated",
                        "Value": {"StringValue": "2023-01-01"},
                    }
                },
            ]
        },
        "QueryResultTypeFilter": "DOCUMENT",  # Only return document results
    },
)

Confidence Scores

The retriever maps Kendra's confidence levels to float scores as follows:

  • VERY_HIGH: 1.0
  • HIGH: 0.8
  • MEDIUM: 0.6
  • LOW: 0.4
  • NOT_AVAILABLE: 0.0

These scores can be accessed through the score attribute of the retrieved nodes:

results = retriever.retrieve("query")
for result in results:
    print(f"Text: {result.get_content()}")
    print(f"Confidence Score: {result.score}")

Authentication

The retriever supports various AWS authentication methods:

retriever = AmazonKendraRetriever(
    index_id="<kendra-index-id>",
    profile_name="my-aws-profile",  # Use AWS profile
    region_name="us-west-2",  # Specify AWS region
    # Or use explicit credentials
    aws_access_key_id="YOUR_ACCESS_KEY",
    aws_secret_access_key="YOUR_SECRET_KEY",
    aws_session_token="YOUR_SESSION_TOKEN",  # Optional
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llama_index_retrievers_kendra-0.2.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llama_index_retrievers_kendra-0.2.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file llama_index_retrievers_kendra-0.2.0.tar.gz.

File metadata

File hashes

Hashes for llama_index_retrievers_kendra-0.2.0.tar.gz
Algorithm Hash digest
SHA256 882414d070170a08d6ed6ac8414e4b67411ecbf333d3bc2b417a517ea96abce3
MD5 8a86401c28257d2537c8195206142e64
BLAKE2b-256 c28d956665b90481f1c2137d73c8acd7e9e8a3f903886b948929ab1aae508731

See more details on using hashes here.

File details

Details for the file llama_index_retrievers_kendra-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for llama_index_retrievers_kendra-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e9ffc2c91df54d8c325cf529ae0c9a93f1e98f2a41b92fa537dc283f3bff79a
MD5 64752597d13ac6445ff76c8ea5b236d8
BLAKE2b-256 49db05139493571f98589f9565abdc478f7f0c4e59c82f8b177b8c97c5d3ec70

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page