lex-helper


Namelex-helper JSON
Version 0.0.3 PyPI version JSON
download
home_pageNone
SummaryA helper library for building Amazon Lex chatbots
upload_time2025-09-18 20:39:58
maintainerNone
docs_urlNone
authorAmazon Web Services
requires_python>=3.12
licenseApache-2.0
keywords amazon-lex aws chatbot conversational-ai lambda nlp serverless voice-assistant
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h2 align="center">Lex Helper Library</h2>

<p align="center">
<a href="https://github.com/aws/lex-helper/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/aws/lex-helper/actions/workflows/ci.yml/badge.svg"></a>
<a href="https://pypi.org/project/lex-helper/"><img alt="PyPI version" src="https://badge.fury.io/py/lex-helper.svg"></a>
<a href="https://pypi.org/project/lex-helper/"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/lex-helper.svg"></a>
<a href="https://pepy.tech/project/lex-helper"><img alt="Downloads" src="https://pepy.tech/badge/lex-helper"></a>
<a href="LICENSE"><img alt="License: Apache 2.0" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a>
<a href="https://github.com/astral-sh/ruff"><img alt="Code style: ruff" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json"></a>
<a href="https://github.com/aws/lex-helper"><img alt="GitHub stars" src="https://img.shields.io/github/stars/aws/lex-helper.svg?style=social&label=Star"></a>
</p>

<p align="center">
<strong>A modern, type-safe Python library for building Amazon Lex chatbots with ease</strong>
</p>

The Lex Helper library is an extensive collection of functions and classes that make it easier to work with Lex. It's designed to make building Lex fulfillment lambdas easier, more efficient, understandable, and consistent. Gone are the days of accidentally mistyping a slot name, using a dictionary within a dictionary within a dictionary, or not being able to find where the code for a specific intent is.

## Table of Contents

- [Why Use Lex Helper?](#why-use-lex-helper)
- [Installation](#installation)
- [Quick Start](#quick-start)
  - [1. Create Session Attributes](#1-create-session-attributes)
  - [2. Create Main Handler](#2-create-main-handler)
  - [3. Create Intent Handlers](#3-create-intent-handlers)
- [Core Features](#core-features)
  - [Dialog Utilities](#dialog-utilities)
  - [Message Management](#message-management)
  - [Smart Disambiguation](#smart-disambiguation)
  - [Bedrock Integration](#bedrock-integration)
- [Bedrock Usage Examples](#bedrock-usage-examples)
  - [Basic InvokeModel API](#basic-invokemodel-api)
  - [Converse API with System Prompt](#converse-api-with-system-prompt)
- [Smart Disambiguation](#smart-disambiguation-1)
  - [Basic Setup](#basic-setup)
  - [AI-Powered Disambiguation](#ai-powered-disambiguation)
  - [Example Interaction](#example-interaction)
- [Examples](#examples)
- [Documentation](#documentation)
- [Development Setup](#development-setup)
  - [Prerequisites](#prerequisites)
  - [Quick Setup](#quick-setup)
  - [Development Commands](#development-commands)

## Why Use Lex Helper?

- **Simplified Intent Management**: Each intent's logic lives in its own file under an `intents/` directory, making it easy to locate, maintain, and scale your bot's capabilities without navigating complex nested handlers. The library will dynamically load the intent handler based on the intent name.

![Intent Handling](docs/intent-handling.png)

- **Type-Safe Session Attributes**: Define your session attributes as a Pydantic model, eliminating runtime errors from typos or incorrect data types. Get full IDE autocomplete support and catch errors before they reach production.

![Intellisense](docs/intellisense.png)

- **Automatic Request/Response Handling**: Stop wrestling with deeply nested dictionaries. The library handles all the Lex request/response formatting, letting you focus on your bot's business logic.

- **Channel-Aware Formatting**: Built-in support for different channels (SMS, Lex console, etc.) ensures your responses are properly formatted regardless of how users interact with your bot.

- **Error Handling Made Easy**: Comprehensive exception handling and error reporting help you quickly identify and fix issues in your fulfillment logic.

- **Reduced Boilerplate**: Common Lex operations like transitioning between intents, handling dialog states, and managing session attributes are simplified into clean, intuitive methods.

- **Smart Disambiguation**: Automatically handle ambiguous user input with intelligent clarification prompts. Optional AI-powered responses using Amazon Bedrock create natural, contextual disambiguation messages that improve user experience.

- **Developer Experience**: Get the benefits of modern Python features like type hints, making your code more maintainable and easier to understand. Full IDE support means better autocomplete and fewer runtime errors.

## Installation

```bash
pip install lex-helper
```

For Lambda deployment, see [Lambda Layer Deployment Guide](docs/LAMBDA_LAYER_DEPLOYMENT.md).

## Development Setup

This project uses modern Python tooling for development:

### Prerequisites
- Python >= 3.12
- [uv](https://docs.astral.sh/uv/) for dependency management

### Quick Setup
```bash
# Install uv (if not already installed)
pip install uv

# Clone the repository and install dependencies
git clone <repository-url>
cd lex-helper
uv sync --dev

# Install pre-commit hooks for code quality
uv run pre-commit install
```

### Development Commands
```bash
# Run tests
uv run pytest

# Run tests with coverage
uv run pytest --cov=lex_helper

# Code linting and formatting
uv run ruff check .          # Check for issues
uv run ruff check --fix .    # Fix issues automatically
uv run ruff format .         # Format code

# Type checking
pyright

# Run all quality checks (includes documentation QA)
uv run pre-commit run --all-files

# Documentation quality assurance
make docs-qa                 # Comprehensive documentation checks
make docs-serve             # Local documentation server
```

For detailed migration information from older tooling, see the [Migration Guide](docs/MIGRATION_GUIDE.md).

## Quick Start

### 1. Create Session Attributes

```python
from pydantic import ConfigDict, Field
from lex_helper import SessionAttributes

class CustomSessionAttributes(SessionAttributes):
    model_config = ConfigDict(extra="allow")
    user_name: str = Field(default="", description="User's name")
    visit_count: int = Field(default=0, description="Number of visits")
```

### 2. Create Main Handler

```python
from typing import Any
from lex_helper import Config, LexHelper
from .session_attributes import CustomSessionAttributes

def lambda_handler(event: dict[str, Any], context: Any) -> dict[str, Any]:
    config = Config(
        session_attributes=CustomSessionAttributes(),
        package_name="your_project.intents"
    )
    lex_helper = LexHelper(config=config)
    return lex_helper.handler(event, context)
```

### 3. Create Intent Handlers

Structure your intents in an `intents/` directory:

```
your_project/
├── intents/
│   ├── __init__.py
│   ├── welcome_intent.py
│   └── booking_intent.py
├── session_attributes.py
└── handler.py
```

## Core Features

### Dialog Utilities
- **get_intent**, **get_slot**, **set_slot**: Manage intent and slot data
- **elicit_intent**, **elicit_slot**, **delegate**: Control dialog flow
- **close**: Complete dialog interactions
- **transition_to_intent**: Navigate between intents
- **any_unknown_slot_choices**, **handle_any_unknown_slot_choice**: Handle invalid inputs
- **get_active_contexts**, **remove_context**: Manage conversation context
- **load_messages**: Parse message data

### Message Management
- **MessageManager**: Centralized message management with locale support
- **get_message**, **set_locale**: Load and retrieve localized messages from YAML files
- Supports `messages_{localeId}.yaml` files (e.g., `messages_en_US.yaml`, `messages_es_ES.yaml`)
- Automatic fallback to `messages.yaml` for missing locales

### Smart Disambiguation
- **Intelligent Intent Resolution**: Automatically detects ambiguous user input and presents clarifying options
- **AI-Powered Responses**: Optional Bedrock integration for contextual, natural language disambiguation messages
- **Configurable Thresholds**: Fine-tune when disambiguation triggers based on confidence scores and similarity
- **Multi-Selection Support**: Users can choose via text, numbers, letters, or button clicks
- **Graceful Fallbacks**: Seamless fallback to static messages if AI services are unavailable

### Bedrock Integration
- **invoke_bedrock**: Direct integration with Amazon Bedrock models
- Supports multiple model families (Claude, Titan, Jurassic, Cohere, Llama)
- Automatic fallback between on-demand and inference profile modes
- **Converse API**: Unified interface for model interactions with system prompt support
- **InvokeModel API**: Traditional model invocation (default behavior)

## Documentation

**Recommended Reading Order:**
1. **[Best Practices Guide](docs/BEST_PRACTICES.md)**: Start here for detailed usage patterns, advanced examples, and code organization
2. **[Testing Guide](docs/TESTING_GUIDE.md)**: Then learn comprehensive testing strategies for your Lex bots
3. **[Lambda Layer Deployment](docs/LAMBDA_LAYER_DEPLOYMENT.md)**: Finally, deploy as Lambda layers for better performance

**Development Documentation:**
- **[Development Guide](docs/DEVELOPMENT.md)**: Complete development workflow, testing, and contribution guidelines

## Bedrock Usage Examples

### Basic InvokeModel API
```python
from lex_helper import invoke_bedrock

response = invoke_bedrock(
    prompt="What are the airports in Los Angeles?",
    model_id="anthropic.claude-3-sonnet-20240229-v1:0",
    max_tokens=200,
    temperature=0.1
)
print(response['text'])
```

### Converse API with System Prompt
```python
response = invoke_bedrock(
    prompt="What are the airports in Los Angeles?",
    model_id="anthropic.claude-3-5-sonnet-20240620-v1:0",
    max_tokens=200,
    temperature=0.1,
    use_converse=True,
    system_prompt="You are a travel expert. Provide accurate airport information."
)
print(response['text'])
```

## Smart Disambiguation

Handle ambiguous user input intelligently with automatic clarification prompts:

### Basic Setup
```python
from lex_helper import Config, LexHelper
from lex_helper.core.disambiguation.types import DisambiguationConfig

# Enable disambiguation with default settings
config = Config(
    session_attributes=CustomSessionAttributes(),
    enable_disambiguation=True,
    disambiguation_config=DisambiguationConfig(
        confidence_threshold=0.5,  # Trigger when confidence < 50%
        max_candidates=2,          # Show up to 2 options
    )
)
```

### AI-Powered Disambiguation
```python
from lex_helper.core.disambiguation.types import BedrockDisambiguationConfig

# Enable Bedrock for intelligent, contextual responses
bedrock_config = BedrockDisambiguationConfig(
    enabled=True,
    model_id="anthropic.claude-3-haiku-20240307-v1:0",
    system_prompt="You are a helpful assistant that creates clear, "
                 "friendly disambiguation messages for users."
)

disambiguation_config = DisambiguationConfig(
    confidence_threshold=0.5,
    bedrock_config=bedrock_config,  # AI-powered responses
)
```

### Example Interaction
```
User: "I need help with my booking"

Static Response:
"I can help you with several things. What would you like to do?"
Buttons: ["Book Flight", "Change Flight", "Cancel Flight"]

AI-Powered Response:
"I'd be happy to help with your booking! Are you looking to make
changes to an existing reservation or book a new flight?"
Buttons: ["Modify existing booking", "Book new flight"]
```

For detailed configuration options, see [Smart Disambiguation Documentation](docs/smart-disambiguation.md).

## Examples

- **Basic Example**: See `examples/basic_handler/` for a simple implementation
- **Comprehensive Example**: For production-ready patterns, see the documentation for:
  - Advanced intent organization and management
  - Complex session attribute handling
  - Multi-turn conversation flows
  - Error handling and fallback strategies
  - Best practices for bot architecture
  - Production deployment patterns

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "lex-helper",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "amazon-lex, aws, chatbot, conversational-ai, lambda, nlp, serverless, voice-assistant",
    "author": "Amazon Web Services",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/85/cd/22dadde067e19d00a2206d58f484a798ba3475c7557bdd78d8649913b1ed/lex_helper-0.0.3.tar.gz",
    "platform": null,
    "description": "<h2 align=\"center\">Lex Helper Library</h2>\n\n<p align=\"center\">\n<a href=\"https://github.com/aws/lex-helper/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/aws/lex-helper/actions/workflows/ci.yml/badge.svg\"></a>\n<a href=\"https://pypi.org/project/lex-helper/\"><img alt=\"PyPI version\" src=\"https://badge.fury.io/py/lex-helper.svg\"></a>\n<a href=\"https://pypi.org/project/lex-helper/\"><img alt=\"Python versions\" src=\"https://img.shields.io/pypi/pyversions/lex-helper.svg\"></a>\n<a href=\"https://pepy.tech/project/lex-helper\"><img alt=\"Downloads\" src=\"https://pepy.tech/badge/lex-helper\"></a>\n<a href=\"LICENSE\"><img alt=\"License: Apache 2.0\" src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\"></a>\n<a href=\"https://github.com/astral-sh/ruff\"><img alt=\"Code style: ruff\" src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\"></a>\n<a href=\"https://github.com/aws/lex-helper\"><img alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/aws/lex-helper.svg?style=social&label=Star\"></a>\n</p>\n\n<p align=\"center\">\n<strong>A modern, type-safe Python library for building Amazon Lex chatbots with ease</strong>\n</p>\n\nThe Lex Helper library is an extensive collection of functions and classes that make it easier to work with Lex. It's designed to make building Lex fulfillment lambdas easier, more efficient, understandable, and consistent. Gone are the days of accidentally mistyping a slot name, using a dictionary within a dictionary within a dictionary, or not being able to find where the code for a specific intent is.\n\n## Table of Contents\n\n- [Why Use Lex Helper?](#why-use-lex-helper)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n  - [1. Create Session Attributes](#1-create-session-attributes)\n  - [2. Create Main Handler](#2-create-main-handler)\n  - [3. Create Intent Handlers](#3-create-intent-handlers)\n- [Core Features](#core-features)\n  - [Dialog Utilities](#dialog-utilities)\n  - [Message Management](#message-management)\n  - [Smart Disambiguation](#smart-disambiguation)\n  - [Bedrock Integration](#bedrock-integration)\n- [Bedrock Usage Examples](#bedrock-usage-examples)\n  - [Basic InvokeModel API](#basic-invokemodel-api)\n  - [Converse API with System Prompt](#converse-api-with-system-prompt)\n- [Smart Disambiguation](#smart-disambiguation-1)\n  - [Basic Setup](#basic-setup)\n  - [AI-Powered Disambiguation](#ai-powered-disambiguation)\n  - [Example Interaction](#example-interaction)\n- [Examples](#examples)\n- [Documentation](#documentation)\n- [Development Setup](#development-setup)\n  - [Prerequisites](#prerequisites)\n  - [Quick Setup](#quick-setup)\n  - [Development Commands](#development-commands)\n\n## Why Use Lex Helper?\n\n- **Simplified Intent Management**: Each intent's logic lives in its own file under an `intents/` directory, making it easy to locate, maintain, and scale your bot's capabilities without navigating complex nested handlers. The library will dynamically load the intent handler based on the intent name.\n\n![Intent Handling](docs/intent-handling.png)\n\n- **Type-Safe Session Attributes**: Define your session attributes as a Pydantic model, eliminating runtime errors from typos or incorrect data types. Get full IDE autocomplete support and catch errors before they reach production.\n\n![Intellisense](docs/intellisense.png)\n\n- **Automatic Request/Response Handling**: Stop wrestling with deeply nested dictionaries. The library handles all the Lex request/response formatting, letting you focus on your bot's business logic.\n\n- **Channel-Aware Formatting**: Built-in support for different channels (SMS, Lex console, etc.) ensures your responses are properly formatted regardless of how users interact with your bot.\n\n- **Error Handling Made Easy**: Comprehensive exception handling and error reporting help you quickly identify and fix issues in your fulfillment logic.\n\n- **Reduced Boilerplate**: Common Lex operations like transitioning between intents, handling dialog states, and managing session attributes are simplified into clean, intuitive methods.\n\n- **Smart Disambiguation**: Automatically handle ambiguous user input with intelligent clarification prompts. Optional AI-powered responses using Amazon Bedrock create natural, contextual disambiguation messages that improve user experience.\n\n- **Developer Experience**: Get the benefits of modern Python features like type hints, making your code more maintainable and easier to understand. Full IDE support means better autocomplete and fewer runtime errors.\n\n## Installation\n\n```bash\npip install lex-helper\n```\n\nFor Lambda deployment, see [Lambda Layer Deployment Guide](docs/LAMBDA_LAYER_DEPLOYMENT.md).\n\n## Development Setup\n\nThis project uses modern Python tooling for development:\n\n### Prerequisites\n- Python >= 3.12\n- [uv](https://docs.astral.sh/uv/) for dependency management\n\n### Quick Setup\n```bash\n# Install uv (if not already installed)\npip install uv\n\n# Clone the repository and install dependencies\ngit clone <repository-url>\ncd lex-helper\nuv sync --dev\n\n# Install pre-commit hooks for code quality\nuv run pre-commit install\n```\n\n### Development Commands\n```bash\n# Run tests\nuv run pytest\n\n# Run tests with coverage\nuv run pytest --cov=lex_helper\n\n# Code linting and formatting\nuv run ruff check .          # Check for issues\nuv run ruff check --fix .    # Fix issues automatically\nuv run ruff format .         # Format code\n\n# Type checking\npyright\n\n# Run all quality checks (includes documentation QA)\nuv run pre-commit run --all-files\n\n# Documentation quality assurance\nmake docs-qa                 # Comprehensive documentation checks\nmake docs-serve             # Local documentation server\n```\n\nFor detailed migration information from older tooling, see the [Migration Guide](docs/MIGRATION_GUIDE.md).\n\n## Quick Start\n\n### 1. Create Session Attributes\n\n```python\nfrom pydantic import ConfigDict, Field\nfrom lex_helper import SessionAttributes\n\nclass CustomSessionAttributes(SessionAttributes):\n    model_config = ConfigDict(extra=\"allow\")\n    user_name: str = Field(default=\"\", description=\"User's name\")\n    visit_count: int = Field(default=0, description=\"Number of visits\")\n```\n\n### 2. Create Main Handler\n\n```python\nfrom typing import Any\nfrom lex_helper import Config, LexHelper\nfrom .session_attributes import CustomSessionAttributes\n\ndef lambda_handler(event: dict[str, Any], context: Any) -> dict[str, Any]:\n    config = Config(\n        session_attributes=CustomSessionAttributes(),\n        package_name=\"your_project.intents\"\n    )\n    lex_helper = LexHelper(config=config)\n    return lex_helper.handler(event, context)\n```\n\n### 3. Create Intent Handlers\n\nStructure your intents in an `intents/` directory:\n\n```\nyour_project/\n\u251c\u2500\u2500 intents/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 welcome_intent.py\n\u2502   \u2514\u2500\u2500 booking_intent.py\n\u251c\u2500\u2500 session_attributes.py\n\u2514\u2500\u2500 handler.py\n```\n\n## Core Features\n\n### Dialog Utilities\n- **get_intent**, **get_slot**, **set_slot**: Manage intent and slot data\n- **elicit_intent**, **elicit_slot**, **delegate**: Control dialog flow\n- **close**: Complete dialog interactions\n- **transition_to_intent**: Navigate between intents\n- **any_unknown_slot_choices**, **handle_any_unknown_slot_choice**: Handle invalid inputs\n- **get_active_contexts**, **remove_context**: Manage conversation context\n- **load_messages**: Parse message data\n\n### Message Management\n- **MessageManager**: Centralized message management with locale support\n- **get_message**, **set_locale**: Load and retrieve localized messages from YAML files\n- Supports `messages_{localeId}.yaml` files (e.g., `messages_en_US.yaml`, `messages_es_ES.yaml`)\n- Automatic fallback to `messages.yaml` for missing locales\n\n### Smart Disambiguation\n- **Intelligent Intent Resolution**: Automatically detects ambiguous user input and presents clarifying options\n- **AI-Powered Responses**: Optional Bedrock integration for contextual, natural language disambiguation messages\n- **Configurable Thresholds**: Fine-tune when disambiguation triggers based on confidence scores and similarity\n- **Multi-Selection Support**: Users can choose via text, numbers, letters, or button clicks\n- **Graceful Fallbacks**: Seamless fallback to static messages if AI services are unavailable\n\n### Bedrock Integration\n- **invoke_bedrock**: Direct integration with Amazon Bedrock models\n- Supports multiple model families (Claude, Titan, Jurassic, Cohere, Llama)\n- Automatic fallback between on-demand and inference profile modes\n- **Converse API**: Unified interface for model interactions with system prompt support\n- **InvokeModel API**: Traditional model invocation (default behavior)\n\n## Documentation\n\n**Recommended Reading Order:**\n1. **[Best Practices Guide](docs/BEST_PRACTICES.md)**: Start here for detailed usage patterns, advanced examples, and code organization\n2. **[Testing Guide](docs/TESTING_GUIDE.md)**: Then learn comprehensive testing strategies for your Lex bots\n3. **[Lambda Layer Deployment](docs/LAMBDA_LAYER_DEPLOYMENT.md)**: Finally, deploy as Lambda layers for better performance\n\n**Development Documentation:**\n- **[Development Guide](docs/DEVELOPMENT.md)**: Complete development workflow, testing, and contribution guidelines\n\n## Bedrock Usage Examples\n\n### Basic InvokeModel API\n```python\nfrom lex_helper import invoke_bedrock\n\nresponse = invoke_bedrock(\n    prompt=\"What are the airports in Los Angeles?\",\n    model_id=\"anthropic.claude-3-sonnet-20240229-v1:0\",\n    max_tokens=200,\n    temperature=0.1\n)\nprint(response['text'])\n```\n\n### Converse API with System Prompt\n```python\nresponse = invoke_bedrock(\n    prompt=\"What are the airports in Los Angeles?\",\n    model_id=\"anthropic.claude-3-5-sonnet-20240620-v1:0\",\n    max_tokens=200,\n    temperature=0.1,\n    use_converse=True,\n    system_prompt=\"You are a travel expert. Provide accurate airport information.\"\n)\nprint(response['text'])\n```\n\n## Smart Disambiguation\n\nHandle ambiguous user input intelligently with automatic clarification prompts:\n\n### Basic Setup\n```python\nfrom lex_helper import Config, LexHelper\nfrom lex_helper.core.disambiguation.types import DisambiguationConfig\n\n# Enable disambiguation with default settings\nconfig = Config(\n    session_attributes=CustomSessionAttributes(),\n    enable_disambiguation=True,\n    disambiguation_config=DisambiguationConfig(\n        confidence_threshold=0.5,  # Trigger when confidence < 50%\n        max_candidates=2,          # Show up to 2 options\n    )\n)\n```\n\n### AI-Powered Disambiguation\n```python\nfrom lex_helper.core.disambiguation.types import BedrockDisambiguationConfig\n\n# Enable Bedrock for intelligent, contextual responses\nbedrock_config = BedrockDisambiguationConfig(\n    enabled=True,\n    model_id=\"anthropic.claude-3-haiku-20240307-v1:0\",\n    system_prompt=\"You are a helpful assistant that creates clear, \"\n                 \"friendly disambiguation messages for users.\"\n)\n\ndisambiguation_config = DisambiguationConfig(\n    confidence_threshold=0.5,\n    bedrock_config=bedrock_config,  # AI-powered responses\n)\n```\n\n### Example Interaction\n```\nUser: \"I need help with my booking\"\n\nStatic Response:\n\"I can help you with several things. What would you like to do?\"\nButtons: [\"Book Flight\", \"Change Flight\", \"Cancel Flight\"]\n\nAI-Powered Response:\n\"I'd be happy to help with your booking! Are you looking to make\nchanges to an existing reservation or book a new flight?\"\nButtons: [\"Modify existing booking\", \"Book new flight\"]\n```\n\nFor detailed configuration options, see [Smart Disambiguation Documentation](docs/smart-disambiguation.md).\n\n## Examples\n\n- **Basic Example**: See `examples/basic_handler/` for a simple implementation\n- **Comprehensive Example**: For production-ready patterns, see the documentation for:\n  - Advanced intent organization and management\n  - Complex session attribute handling\n  - Multi-turn conversation flows\n  - Error handling and fallback strategies\n  - Best practices for bot architecture\n  - Production deployment patterns\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A helper library for building Amazon Lex chatbots",
    "version": "0.0.3",
    "project_urls": {
        "Bug Reports": "https://github.com/aws/lex-helper/issues",
        "Changelog": "https://github.com/aws/lex-helper/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/aws/lex-helper#readme",
        "Homepage": "https://github.com/aws/lex-helper",
        "Issues": "https://github.com/aws/lex-helper/issues",
        "Repository": "https://github.com/aws/lex-helper",
        "Source Code": "https://github.com/aws/lex-helper"
    },
    "split_keywords": [
        "amazon-lex",
        " aws",
        " chatbot",
        " conversational-ai",
        " lambda",
        " nlp",
        " serverless",
        " voice-assistant"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4f765f779467271291670aef467d51d51af010309f7615b1eec9b6dcb2dfe581",
                "md5": "ec0f227860826aa0b7f64262b2179ce0",
                "sha256": "3c75d36a5bc5ef98d6069df06ba36545ce6a2bc086be227e9a4b4de5ec484901"
            },
            "downloads": -1,
            "filename": "lex_helper-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ec0f227860826aa0b7f64262b2179ce0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 72596,
            "upload_time": "2025-09-18T20:39:56",
            "upload_time_iso_8601": "2025-09-18T20:39:56.744815Z",
            "url": "https://files.pythonhosted.org/packages/4f/76/5f779467271291670aef467d51d51af010309f7615b1eec9b6dcb2dfe581/lex_helper-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "85cd22dadde067e19d00a2206d58f484a798ba3475c7557bdd78d8649913b1ed",
                "md5": "29569b06ae98bde97fcefbe43d7bf03b",
                "sha256": "1e998395542267511056caeca6d24eaf34e72fb90d1adc0bd1f1e3f2ea903c44"
            },
            "downloads": -1,
            "filename": "lex_helper-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "29569b06ae98bde97fcefbe43d7bf03b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 66235,
            "upload_time": "2025-09-18T20:39:58",
            "upload_time_iso_8601": "2025-09-18T20:39:58.042660Z",
            "url": "https://files.pythonhosted.org/packages/85/cd/22dadde067e19d00a2206d58f484a798ba3475c7557bdd78d8649913b1ed/lex_helper-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-18 20:39:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aws",
    "github_project": "lex-helper",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "lex-helper"
}
        
Elapsed time: 3.91302s