rocktalk


Namerocktalk JSON
Version 0.4.0 PyPI version JSON
download
home_pageNone
SummaryA locally running ChatBot WebApp with Streamlit, LangChain, and Amazon Bedrock
upload_time2025-02-26 09:00:39
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseApache-2.0
keywords streamlit chatbot langchain amazon-bedrock bedrock ai-chat llm chat-interface aws conversational-ai gen-ai
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # RockTalk: A ChatBot WebApp with Streamlit, LangChain, and Amazon Bedrock

[![Python 3.11+](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
[![PyPI](https://img.shields.io/pypi/v/rocktalk)](https://pypi.org/project/rocktalk/)
[![Total Downloads](https://static.pepy.tech/badge/rocktalk)](https://pepy.tech/project/rocktalk)
[![Monthly Downloads](https://img.shields.io/pypi/dm/rocktalk)](https://pypi.org/project/rocktalk/)

## Table of Contents

- [RockTalk: A ChatBot WebApp with Streamlit, LangChain, and Amazon Bedrock](#rocktalk-a-chatbot-webapp-with-streamlit-langchain-and-amazon-bedrock)
  - [Table of Contents](#table-of-contents)
  - [Project Overview](#project-overview)
  - [Key Features](#key-features)
  - [Getting Started](#getting-started)
    - [Requirements](#requirements)
    - [Quick Start (Recommended)](#quick-start-recommended)
  - [Usage](#usage)
    - [Starting a New Chat](#starting-a-new-chat)
    - [Managing Sessions](#managing-sessions)
    - [Working with Templates](#working-with-templates)
    - [Search Features](#search-features)
    - [Keyboard Shortcuts](#keyboard-shortcuts)
  - [Troubleshooting](#troubleshooting)
  - [Advanced Setup](#advanced-setup)
    - [File Locations](#file-locations)
    - [Environment Variables](#environment-variables)
  - [Development Details](#development-details)
    - [Technology Stack](#technology-stack)
    - [Storage](#storage)
    - [Chat Templates](#chat-templates)
    - [Implementation Status](#implementation-status)
    - [Features](#features)
    - [Development Setup](#development-setup)
  - [Contributing](#contributing)
  - [License](#license)

## Project Overview

This project implements RockTalk, a ChatGPT-like chatbot webapp using Streamlit for the frontend, LangChain for the logic, and Amazon Bedrock as the backend. The webapp provides a user-friendly interface for interacting with various Language Models (LLMs) with advanced features for customization and data input.

## Key Features

- 💬 Real-time chat with streaming responses and interactive controls
- 🔍 Powerful search across chat history and session metadata
- 📝 Customizable templates for different use cases
- 🖼️ Support for text and image inputs
- 📚 Complete session management with import/export
- ⏳ Temporary sessions for quick, unsaved interactions
- ⚙️ Fine-grained control over LLM parameters

## Getting Started

### Requirements

- Python >=3.11 (only 3.11 tested, but >3.11 expected to work as well)
- AWS Account with Bedrock model access
- Supported models: Claude, Titan, etc.

### Quick Start (Recommended)

1. Install RockTalk using pip:

   ```sh
   pip install rocktalk
   ```

2. Configure AWS credentials:
   - RockTalk uses AWS SDK for Python (Boto3). Configure credentials via:
     - AWS CLI configuration
     - Environment variables
     - For more details, see: <https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html>

3. Configure Bedrock Foundation Model access:
   - Enable [Model Access](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) in AWS console
   - Default model: `anthropic.claude-3-5-sonnet-20241022-v2:0`
   - Override default by setting `ROCKTALK_DEFAULT_MODEL` environment variable

4. Start RockTalk:

   ```sh
   rocktalk
   ```

5. Access the webapp at <http://localhost:8501>

## Usage

### Starting a New Chat

- **New Chat**: Click "New +" in the sidebar to start a new chat session. This session will be saved automatically.
- **New Temporary Chat**: Click <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/history_toggle_off_light.svg">
      <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/history_toggle_off_dark.svg">
      <img alt='history_toggle_off' src="https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/history_toggle_off_dark.svg" width="12">
    </picture> (temporary session) in the sidebar to start a temporary chat session that will not be saved unless you choose to save it. These are ideal for spontaneous conversations where you might not need to keep a record.
  - **Saving a Temporary Session**:
    - If you wish to save a temporary session, click "Save Temporary Session" in the sidebar.
    - Provide a session title and confirm. You can use LLM to auto-generate a title.
    - The session will then be saved to your session history and managed like any other session.
- **New Chat with Template**: Click <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/playlist_add_light.svg">
      <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/playlist_add_dark.svg">
      <img alt='playlist_add' src="https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/playlist_add_dark.svg" width="12">
    </picture> (quick template selector) to use a specific template when creating a new chat or temporary chat.
- Start typing in the chat input box.
- Use ⌘/⊞ + ⌫ to stop streaming responses.

### Managing Sessions

- **Switch sessions**: Click any session in the sidebar.
- **Rename**: Click the pencil icon next to session title.
- **Delete**: Click the trash icon next to session.
- **Duplicate**: Use the duplicate button in session settings.
- **Export**: Download session as JSON from session settings.
- **Import**: Upload previously exported session files.
- **Saving Temporary Sessions**: Temporary sessions can be saved at any time by clicking "Save Temporary Session" in the sidebar.

### Working with Templates

- **Create template**: Save current session settings as template.
- **Apply template**: Select template when creating new chat.
- **Modify templates**: Edit existing templates in template manager.
- **Share templates**: Export/Import template configurations.

### Search Features

- Full-text search across all chats.
- Filter by date range.
- Search by session title.
- Search within current session.
- Advanced search with multiple criteria.

### Keyboard Shortcuts

- ⌘/⊞ + ⌫ : Stop streaming response.
- Enter : Send message.
- ⌘/⊞ + Enter : Add new line.

## Troubleshooting

- AWS credentials setup.
- Common error messages.
- Performance tips.
- **Logging:**
  - Set `ROCKTALK_LOG_LEVEL=DEBUG` for detailed logging.
  - Logs are stored in `~/.rocktalk/logs/rocktalk.log`.
  - View logs in the application settings panel.

## Advanced Setup

### File Locations

RockTalk stores its data in the following locations:

- Main configuration directory: `~/.rocktalk/`
- Database file: `~/.rocktalk/chat_database.db`
- Log files: `~/.rocktalk/logs/`
- Environment file (optional): `~/.rocktalk/.env`

### Environment Variables

RockTalk can be configured using the following environment variables:

- `ROCKTALK_DIR`: Main configuration directory (default: `~/.rocktalk/`)
- `ROCKTALK_DEFAULT_MODEL`: Override default Bedrock model
- `ROCKTALK_LOG_LEVEL`: Set logging level (default: "INFO")
  - Available levels: "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"
  - DEBUG: Detailed information for debugging
  - INFO: General operational information
  - WARNING: Warning messages for potential issues
  - ERROR: Error messages for serious problems
  - CRITICAL: Critical errors that may prevent operation

## Development Details

### Technology Stack

- Frontend: Streamlit
- Backend: Amazon Bedrock
- Logic/Integration: LangChain
- Storage: SQLite

### Storage

The storage interface is designed to be extensible for future additional storage options. The storage engine interface:

- Stores all chat sessions, messages, and templates.
- Supports full-text search and complex queries.

By default:

- Chat database is stored in `chat_database.db` in the project root directory `~/.rocktalk`. This file is auto-generated with preset templates and necessary tables to meet the interface requirements. The database file can be deleted at any time and it will be regenerated.
- The database contents can be modified manually using any SQLite editing tool (e.g., SQLite3 Editor extension in VS Code). This can be useful for debugging application issues or just to see how your data is stored.
- **Security Note**: While default database file permissions restrict access to just the current user (read/write only), the database file itself is not encrypted. Exercise caution with sensitive information as the contents remain readable if the file is accessed.

### Chat Templates

RockTalk implements a flexible template system that allows users to save and reuse chat configurations. Templates include:

- **Configuration Persistence**: Save complete LLM configurations including model parameters, system prompts, and other settings.
- **Template Management**:
  - Create templates from successful chat sessions.
  - Save frequently used configurations.
  - Import/Export templates for sharing.
  - Duplicate and modify existing templates.
- **Easy Application**:
  - Apply templates to new sessions.
  - Quick-start conversations with predefined settings.
  - Consistent experience across multiple chats.
- **Template Metadata**:
  - Custom names and descriptions.
  - Unique template IDs for tracking.
  - Configuration versioning.
- **Use Cases**:
  - Specialized chat personas.
  - Task-specific configurations.
  - Team-wide standardized settings.
  - Experimental configurations.

### Implementation Status

1. ✅ Set up the development environment
2. ✅ Create the basic Streamlit interface for RockTalk
3. ✅ Integrate LangChain with Bedrock backend
4. ✅ Implement core chat functionality
5. ✅ Add session management features
6. ✅ Develop LLM settings customization
7. 🚧 Integrate support for various input types
8. ✅ Implement advanced features (editing, multiple sessions)
9. 🚧 Optimize performance and user experience
10. 🚧 Test and debug
11. ⏳ Deploy RockTalk webapp

### Features

✅ = Implemented | 🚧 = In Progress | ⏳ = Planned

1. Contextual chat with session history ✅
   - Full chat history persistence.
   - Stream responses with stop/edit capability.
   - Copy message functionality.
   - "Trim History" option to remove all session messages after selected message.

2. Advanced search capabilities:
     - Keyword search across all sessions and messages.
     - Filter by titles and/or content.
     - Date range filtering.
     - Configurable search logic (match ALL terms or ANY term).
     - Batch operations on search results:
       - Select all/clear selections.
       - Export multiple sessions.
       - Bulk visibility toggle (show/hide from session list).
       - Batch delete with confirmation.
     - Rich search results:
       - Message previews with search term context.
       - Quick access to session settings and chat.
       - Session metadata (last active, visibility status).
     - Search result actions:
       - Load session.
       - Export session.
       - Access session settings.
     - Support for wildcard searches using *.

3. Comprehensive Session Management ✅
   - Session Organization:
     - Active session pinned at top of sidebar.
     - Chronologically grouped session history (Today, Yesterday, This Week, etc.).
     - Session visibility control (hide from list while maintaining searchability).
     - **Temporary Sessions**:
       - Ability to create sessions that are not saved by default.
       - Option to save temporary sessions if needed.
   - Session Creation and Navigation:
     - Quick new chat creation.
     - Create from template option.
     - Seamless session switching.
     - Automatic session persistence.
   - Session Customization:
     - Auto-generated descriptive titles.
     - AI-powered title regeneration.
     - Manual title editing.
     - Template-based configuration.
     - Individual session settings.
     - Visibility control.
   - Session Management:
     - Copy sessions to new session with options:
       - Copy messages and/or settings.
       - Custom naming.
     - Import/Export capabilities:
       - Single session export.
       - Bulk session export.
       - JSON format for portability.
     - Session cleanup:
       - Individual session deletion.
       - Automatic cleanup of related messages.

4. Chat Templates ✅
   - Create templates from existing sessions.
   - Save and load predefined configurations.
   - Custom template naming and descriptions.
   - Share configurations across sessions.
   - Manage template library.
   - Import/Export templates.

5. Edit previous chat messages within a session ✅
   - Edit any user message in history.
   - Automatic regeneration of subsequent response (destroys original chat history after the user message).
   - Stop and modify streaming responses.

6. Customizable LLM settings ✅
   - Adjust model parameters (temperature, top_p, etc.).
   - Model selection.
   - System prompt customization.
   - Save configurations as templates.

7. Support for multiple input types
   - Text input ✅
   - Image input ✅
   - PDF documents ⏳
   - Folder structures ⏳
   - ZIP files ⏳
   - Web links / Internet access ⏳
   - Additional connectors (e.g., databases, APIs) ⏳

### Development Setup

If you want to contribute to RockTalk development:

1. Clone the repository:

   ```sh
   git clone https://github.com/tahouse/rocktalk.git
   cd rocktalk
   ```

2. Create a Python environment (optional):

   ```sh
   conda create -n rock 'python=3.11'
   conda activate rock
   ```

3. Install development dependencies:

   ```sh
   pip install -e ".[dev]"
   ```

4. Install pre-commit hooks:

   ```sh
   pre-commit install
   ```

5. Run the development version:

   ```sh
   streamlit run rocktalk/app.py
   ```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to:

- Follow the existing code style.
- Update tests as appropriate.
- Update documentation as needed.
- Add yourself to CONTRIBUTORS.md (if you'd like).

By contributing to this project, you agree that your contributions will be licensed under the Apache License 2.0.

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rocktalk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "streamlit, chatbot, langchain, amazon-bedrock, bedrock, ai-chat, llm, chat-interface, aws, conversational-ai, gen-ai",
    "author": null,
    "author_email": "Tyler House <26489166+tahouse@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/68/2c/e136083da39a551a478f30621bad0668f917007fa1d64b9dd2cbb7a64ce5/rocktalk-0.4.0.tar.gz",
    "platform": null,
    "description": "# RockTalk: A ChatBot WebApp with Streamlit, LangChain, and Amazon Bedrock\n\n[![Python 3.11+](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/rocktalk)](https://pypi.org/project/rocktalk/)\n[![Total Downloads](https://static.pepy.tech/badge/rocktalk)](https://pepy.tech/project/rocktalk)\n[![Monthly Downloads](https://img.shields.io/pypi/dm/rocktalk)](https://pypi.org/project/rocktalk/)\n\n## Table of Contents\n\n- [RockTalk: A ChatBot WebApp with Streamlit, LangChain, and Amazon Bedrock](#rocktalk-a-chatbot-webapp-with-streamlit-langchain-and-amazon-bedrock)\n  - [Table of Contents](#table-of-contents)\n  - [Project Overview](#project-overview)\n  - [Key Features](#key-features)\n  - [Getting Started](#getting-started)\n    - [Requirements](#requirements)\n    - [Quick Start (Recommended)](#quick-start-recommended)\n  - [Usage](#usage)\n    - [Starting a New Chat](#starting-a-new-chat)\n    - [Managing Sessions](#managing-sessions)\n    - [Working with Templates](#working-with-templates)\n    - [Search Features](#search-features)\n    - [Keyboard Shortcuts](#keyboard-shortcuts)\n  - [Troubleshooting](#troubleshooting)\n  - [Advanced Setup](#advanced-setup)\n    - [File Locations](#file-locations)\n    - [Environment Variables](#environment-variables)\n  - [Development Details](#development-details)\n    - [Technology Stack](#technology-stack)\n    - [Storage](#storage)\n    - [Chat Templates](#chat-templates)\n    - [Implementation Status](#implementation-status)\n    - [Features](#features)\n    - [Development Setup](#development-setup)\n  - [Contributing](#contributing)\n  - [License](#license)\n\n## Project Overview\n\nThis project implements RockTalk, a ChatGPT-like chatbot webapp using Streamlit for the frontend, LangChain for the logic, and Amazon Bedrock as the backend. The webapp provides a user-friendly interface for interacting with various Language Models (LLMs) with advanced features for customization and data input.\n\n## Key Features\n\n- \ud83d\udcac Real-time chat with streaming responses and interactive controls\n- \ud83d\udd0d Powerful search across chat history and session metadata\n- \ud83d\udcdd Customizable templates for different use cases\n- \ud83d\uddbc\ufe0f Support for text and image inputs\n- \ud83d\udcda Complete session management with import/export\n- \u23f3 Temporary sessions for quick, unsaved interactions\n- \u2699\ufe0f Fine-grained control over LLM parameters\n\n## Getting Started\n\n### Requirements\n\n- Python >=3.11 (only 3.11 tested, but >3.11 expected to work as well)\n- AWS Account with Bedrock model access\n- Supported models: Claude, Titan, etc.\n\n### Quick Start (Recommended)\n\n1. Install RockTalk using pip:\n\n   ```sh\n   pip install rocktalk\n   ```\n\n2. Configure AWS credentials:\n   - RockTalk uses AWS SDK for Python (Boto3). Configure credentials via:\n     - AWS CLI configuration\n     - Environment variables\n     - For more details, see: <https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html>\n\n3. Configure Bedrock Foundation Model access:\n   - Enable [Model Access](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) in AWS console\n   - Default model: `anthropic.claude-3-5-sonnet-20241022-v2:0`\n   - Override default by setting `ROCKTALK_DEFAULT_MODEL` environment variable\n\n4. Start RockTalk:\n\n   ```sh\n   rocktalk\n   ```\n\n5. Access the webapp at <http://localhost:8501>\n\n## Usage\n\n### Starting a New Chat\n\n- **New Chat**: Click \"New +\" in the sidebar to start a new chat session. This session will be saved automatically.\n- **New Temporary Chat**: Click <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/history_toggle_off_light.svg\">\n      <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/history_toggle_off_dark.svg\">\n      <img alt='history_toggle_off' src=\"https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/history_toggle_off_dark.svg\" width=\"12\">\n    </picture> (temporary session) in the sidebar to start a temporary chat session that will not be saved unless you choose to save it. These are ideal for spontaneous conversations where you might not need to keep a record.\n  - **Saving a Temporary Session**:\n    - If you wish to save a temporary session, click \"Save Temporary Session\" in the sidebar.\n    - Provide a session title and confirm. You can use LLM to auto-generate a title.\n    - The session will then be saved to your session history and managed like any other session.\n- **New Chat with Template**: Click <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/playlist_add_light.svg\">\n      <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/playlist_add_dark.svg\">\n      <img alt='playlist_add' src=\"https://raw.githubusercontent.com/tahouse/rocktalk/main/docs/assets/playlist_add_dark.svg\" width=\"12\">\n    </picture> (quick template selector) to use a specific template when creating a new chat or temporary chat.\n- Start typing in the chat input box.\n- Use \u2318/\u229e + \u232b to stop streaming responses.\n\n### Managing Sessions\n\n- **Switch sessions**: Click any session in the sidebar.\n- **Rename**: Click the pencil icon next to session title.\n- **Delete**: Click the trash icon next to session.\n- **Duplicate**: Use the duplicate button in session settings.\n- **Export**: Download session as JSON from session settings.\n- **Import**: Upload previously exported session files.\n- **Saving Temporary Sessions**: Temporary sessions can be saved at any time by clicking \"Save Temporary Session\" in the sidebar.\n\n### Working with Templates\n\n- **Create template**: Save current session settings as template.\n- **Apply template**: Select template when creating new chat.\n- **Modify templates**: Edit existing templates in template manager.\n- **Share templates**: Export/Import template configurations.\n\n### Search Features\n\n- Full-text search across all chats.\n- Filter by date range.\n- Search by session title.\n- Search within current session.\n- Advanced search with multiple criteria.\n\n### Keyboard Shortcuts\n\n- \u2318/\u229e + \u232b : Stop streaming response.\n- Enter : Send message.\n- \u2318/\u229e + Enter : Add new line.\n\n## Troubleshooting\n\n- AWS credentials setup.\n- Common error messages.\n- Performance tips.\n- **Logging:**\n  - Set `ROCKTALK_LOG_LEVEL=DEBUG` for detailed logging.\n  - Logs are stored in `~/.rocktalk/logs/rocktalk.log`.\n  - View logs in the application settings panel.\n\n## Advanced Setup\n\n### File Locations\n\nRockTalk stores its data in the following locations:\n\n- Main configuration directory: `~/.rocktalk/`\n- Database file: `~/.rocktalk/chat_database.db`\n- Log files: `~/.rocktalk/logs/`\n- Environment file (optional): `~/.rocktalk/.env`\n\n### Environment Variables\n\nRockTalk can be configured using the following environment variables:\n\n- `ROCKTALK_DIR`: Main configuration directory (default: `~/.rocktalk/`)\n- `ROCKTALK_DEFAULT_MODEL`: Override default Bedrock model\n- `ROCKTALK_LOG_LEVEL`: Set logging level (default: \"INFO\")\n  - Available levels: \"DEBUG\", \"INFO\", \"WARNING\", \"ERROR\", \"CRITICAL\"\n  - DEBUG: Detailed information for debugging\n  - INFO: General operational information\n  - WARNING: Warning messages for potential issues\n  - ERROR: Error messages for serious problems\n  - CRITICAL: Critical errors that may prevent operation\n\n## Development Details\n\n### Technology Stack\n\n- Frontend: Streamlit\n- Backend: Amazon Bedrock\n- Logic/Integration: LangChain\n- Storage: SQLite\n\n### Storage\n\nThe storage interface is designed to be extensible for future additional storage options. The storage engine interface:\n\n- Stores all chat sessions, messages, and templates.\n- Supports full-text search and complex queries.\n\nBy default:\n\n- Chat database is stored in `chat_database.db` in the project root directory `~/.rocktalk`. This file is auto-generated with preset templates and necessary tables to meet the interface requirements. The database file can be deleted at any time and it will be regenerated.\n- The database contents can be modified manually using any SQLite editing tool (e.g., SQLite3 Editor extension in VS Code). This can be useful for debugging application issues or just to see how your data is stored.\n- **Security Note**: While default database file permissions restrict access to just the current user (read/write only), the database file itself is not encrypted. Exercise caution with sensitive information as the contents remain readable if the file is accessed.\n\n### Chat Templates\n\nRockTalk implements a flexible template system that allows users to save and reuse chat configurations. Templates include:\n\n- **Configuration Persistence**: Save complete LLM configurations including model parameters, system prompts, and other settings.\n- **Template Management**:\n  - Create templates from successful chat sessions.\n  - Save frequently used configurations.\n  - Import/Export templates for sharing.\n  - Duplicate and modify existing templates.\n- **Easy Application**:\n  - Apply templates to new sessions.\n  - Quick-start conversations with predefined settings.\n  - Consistent experience across multiple chats.\n- **Template Metadata**:\n  - Custom names and descriptions.\n  - Unique template IDs for tracking.\n  - Configuration versioning.\n- **Use Cases**:\n  - Specialized chat personas.\n  - Task-specific configurations.\n  - Team-wide standardized settings.\n  - Experimental configurations.\n\n### Implementation Status\n\n1. \u2705 Set up the development environment\n2. \u2705 Create the basic Streamlit interface for RockTalk\n3. \u2705 Integrate LangChain with Bedrock backend\n4. \u2705 Implement core chat functionality\n5. \u2705 Add session management features\n6. \u2705 Develop LLM settings customization\n7. \ud83d\udea7 Integrate support for various input types\n8. \u2705 Implement advanced features (editing, multiple sessions)\n9. \ud83d\udea7 Optimize performance and user experience\n10. \ud83d\udea7 Test and debug\n11. \u23f3 Deploy RockTalk webapp\n\n### Features\n\n\u2705 = Implemented | \ud83d\udea7 = In Progress | \u23f3 = Planned\n\n1. Contextual chat with session history \u2705\n   - Full chat history persistence.\n   - Stream responses with stop/edit capability.\n   - Copy message functionality.\n   - \"Trim History\" option to remove all session messages after selected message.\n\n2. Advanced search capabilities:\n     - Keyword search across all sessions and messages.\n     - Filter by titles and/or content.\n     - Date range filtering.\n     - Configurable search logic (match ALL terms or ANY term).\n     - Batch operations on search results:\n       - Select all/clear selections.\n       - Export multiple sessions.\n       - Bulk visibility toggle (show/hide from session list).\n       - Batch delete with confirmation.\n     - Rich search results:\n       - Message previews with search term context.\n       - Quick access to session settings and chat.\n       - Session metadata (last active, visibility status).\n     - Search result actions:\n       - Load session.\n       - Export session.\n       - Access session settings.\n     - Support for wildcard searches using *.\n\n3. Comprehensive Session Management \u2705\n   - Session Organization:\n     - Active session pinned at top of sidebar.\n     - Chronologically grouped session history (Today, Yesterday, This Week, etc.).\n     - Session visibility control (hide from list while maintaining searchability).\n     - **Temporary Sessions**:\n       - Ability to create sessions that are not saved by default.\n       - Option to save temporary sessions if needed.\n   - Session Creation and Navigation:\n     - Quick new chat creation.\n     - Create from template option.\n     - Seamless session switching.\n     - Automatic session persistence.\n   - Session Customization:\n     - Auto-generated descriptive titles.\n     - AI-powered title regeneration.\n     - Manual title editing.\n     - Template-based configuration.\n     - Individual session settings.\n     - Visibility control.\n   - Session Management:\n     - Copy sessions to new session with options:\n       - Copy messages and/or settings.\n       - Custom naming.\n     - Import/Export capabilities:\n       - Single session export.\n       - Bulk session export.\n       - JSON format for portability.\n     - Session cleanup:\n       - Individual session deletion.\n       - Automatic cleanup of related messages.\n\n4. Chat Templates \u2705\n   - Create templates from existing sessions.\n   - Save and load predefined configurations.\n   - Custom template naming and descriptions.\n   - Share configurations across sessions.\n   - Manage template library.\n   - Import/Export templates.\n\n5. Edit previous chat messages within a session \u2705\n   - Edit any user message in history.\n   - Automatic regeneration of subsequent response (destroys original chat history after the user message).\n   - Stop and modify streaming responses.\n\n6. Customizable LLM settings \u2705\n   - Adjust model parameters (temperature, top_p, etc.).\n   - Model selection.\n   - System prompt customization.\n   - Save configurations as templates.\n\n7. Support for multiple input types\n   - Text input \u2705\n   - Image input \u2705\n   - PDF documents \u23f3\n   - Folder structures \u23f3\n   - ZIP files \u23f3\n   - Web links / Internet access \u23f3\n   - Additional connectors (e.g., databases, APIs) \u23f3\n\n### Development Setup\n\nIf you want to contribute to RockTalk development:\n\n1. Clone the repository:\n\n   ```sh\n   git clone https://github.com/tahouse/rocktalk.git\n   cd rocktalk\n   ```\n\n2. Create a Python environment (optional):\n\n   ```sh\n   conda create -n rock 'python=3.11'\n   conda activate rock\n   ```\n\n3. Install development dependencies:\n\n   ```sh\n   pip install -e \".[dev]\"\n   ```\n\n4. Install pre-commit hooks:\n\n   ```sh\n   pre-commit install\n   ```\n\n5. Run the development version:\n\n   ```sh\n   streamlit run rocktalk/app.py\n   ```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to:\n\n- Follow the existing code style.\n- Update tests as appropriate.\n- Update documentation as needed.\n- Add yourself to CONTRIBUTORS.md (if you'd like).\n\nBy contributing to this project, you agree that your contributions will be licensed under the Apache License 2.0.\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A locally running ChatBot WebApp with Streamlit, LangChain, and Amazon Bedrock",
    "version": "0.4.0",
    "project_urls": {
        "Documentation": "https://github.com/tahouse/rocktalk/blob/main/README.md",
        "Homepage": "https://github.com/tahouse/rocktalk",
        "Issue Tracker": "https://github.com/tahouse/rocktalk/issues",
        "Repository": "https://github.com/tahouse/rocktalk"
    },
    "split_keywords": [
        "streamlit",
        " chatbot",
        " langchain",
        " amazon-bedrock",
        " bedrock",
        " ai-chat",
        " llm",
        " chat-interface",
        " aws",
        " conversational-ai",
        " gen-ai"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5f50ddeebb8c06152f2be5b8c6a480d84c26772035d7de912a752cbe4cb24759",
                "md5": "a977c9a53a5bf5aec67dc7d881f013cf",
                "sha256": "3b413553bfadde2a0e2a0dfdbae34429b59fc618c33dad44fa4fcdb465b5dc43"
            },
            "downloads": -1,
            "filename": "rocktalk-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a977c9a53a5bf5aec67dc7d881f013cf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 76306,
            "upload_time": "2025-02-26T09:00:37",
            "upload_time_iso_8601": "2025-02-26T09:00:37.270300Z",
            "url": "https://files.pythonhosted.org/packages/5f/50/ddeebb8c06152f2be5b8c6a480d84c26772035d7de912a752cbe4cb24759/rocktalk-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "682ce136083da39a551a478f30621bad0668f917007fa1d64b9dd2cbb7a64ce5",
                "md5": "6826da89ee90765951a0fb308d37e764",
                "sha256": "ea800f490ef7b3fcc09bda3ef722d34ba9e02f64c08d45b01d55261c75d5ec1d"
            },
            "downloads": -1,
            "filename": "rocktalk-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6826da89ee90765951a0fb308d37e764",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 74060,
            "upload_time": "2025-02-26T09:00:39",
            "upload_time_iso_8601": "2025-02-26T09:00:39.023204Z",
            "url": "https://files.pythonhosted.org/packages/68/2c/e136083da39a551a478f30621bad0668f917007fa1d64b9dd2cbb7a64ce5/rocktalk-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-26 09:00:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tahouse",
    "github_project": "rocktalk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rocktalk"
}
        
Elapsed time: 1.44291s