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.1.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.

File details

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

File metadata

File hashes

Hashes for llama_index_retrievers_kendra-0.2.1.tar.gz
Algorithm Hash digest
SHA256 02dbd28c26c5e088bfdfb412ddd6d2dab9e23f35f118c13cd3b565715ed621de
MD5 9b5780ab4b7a028bf7b0dc38a413298a
BLAKE2b-256 c8d4d901d3cbd008d628f265810f6244275a73776639eb4e1e8deb7d3ea3408b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for llama_index_retrievers_kendra-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c910fd9810d00533b1929524729ed0918bf3ded090fbae713085919c96ba293
MD5 d40705b028f041c2edf36956e24f3c12
BLAKE2b-256 fdb41f6566f24ea6d20a2c435dac6302f8bfdc434cc2397fd3939c8f3fd17b46

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