Helper functions for the ConfidentialMind stack, primarily for Streamlit apps
Project description
ConfidentialMind App Helpers
Overview
The ConfidentialMind App package is a Python library designed to simplify the development of secure generative AI applications on the ConfidentialMind stack. It provides utility functions and components for building Streamlit-based front-end applications that interact with Large Language Models (LLMs) and other services within the ConfidentialMind ecosystem.
Features
- Streamlit application initialization and configuration
- Tool selector for managing multiple tools within a single application
- Chat UI component for interacting with LLMs
- Streaming handler for real-time LLM responses
- User authentication and token management
- LLM API interaction helpers
Installation
To install the package, add the following to your requirements.txt file:
pip install confidentialmind-app-helpers
Usage
Initializing a Streamlit App
from confidentialmind_app_helpers.streamlit_utils.app import init_streamlit_app
def main():
APP_NAME = "My ConfidentialMind App"
init_streamlit_app(APP_NAME)
# Your app code here
if __name__ == "__main__":
main()
Creating a Tool Selector
from confidentialmind_app_helpers.streamlit_utils.app import tool_selector
from confidentialmind_core.config_manager import BaseToolConfig
def parse_tools_config(tools):
# Your tool parsing logic here
pass
tools = [BaseToolConfig(...), BaseToolConfig(...)]
tool_selector(tools, parse_tools_config, APP_NAME)
Implementing a Chat UI
from confidentialmind_app_helpers.streamlit_utils.components import chat_ui
LLM_CONFIG_ID = "your_llm_config_id"
chat_ui(LLM_CONFIG_ID, system_prompt="You are a helpful assistant.")
Handling LLM API Requests
from confidentialmind_app_helpers.llm_api_helpers import LLMAPIHandler, ChatMessage
from confidentialmind_app_helpers.streamlit_utils.components import StreamHandler
llm_api_handler = LLMAPIHandler(LLM_CONFIG_ID)
stream_handler = StreamHandler(st.empty())
messages = [ChatMessage(role="user", content="Hello, AI!")]
response = llm_api_handler.handle_query(messages, stream_handler.on_llm_new_token, temperature=0.7, stream=True)
Components
app.py: Contains functions for initializing Streamlit apps and managing tool selection.components.py: Provides UI components like the chat interface.llm_api_helpers.py: Handles interactions with LLM APIs.streaming.py: Manages streaming responses from LLMs.user.py: Handles user authentication and token management.
Configuration
The package works in conjunction with the ConfidentialMind server package to manage configurations and connectors. Make sure to set up your ConfigManager and define necessary connectors as described in the main ConfidentialMind SDK documentation.
Local Development
To run your Streamlit application locally using this package:
export CONFIDENTIAL_MIND_LOCAL_CONFIG="True"
export CONFIDENTIAL_MIND_LOCAL_DEV="True"
streamlit run your_app.py
Note
This package is designed to work within the ConfidentialMind ecosystem. Make sure you have the necessary permissions and access to the ConfidentialMind stack before using this package.
For more detailed information on the ConfidentialMind SDK and its capabilities, please refer to the main SDK documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file confidentialmind_app_helpers-0.1.2-py3-none-any.whl.
File metadata
- Download URL: confidentialmind_app_helpers-0.1.2-py3-none-any.whl
- Upload date:
- Size: 343.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84fec6736e60917379dbc684517cc27781e3bfed9afea9d9e2259d6774c57744
|
|
| MD5 |
f04760381df22a2a98bec062a913a36b
|
|
| BLAKE2b-256 |
e546a997dc8c7d2365e1d8d889f096ec063d3d57bcdfbcd4507f7e756abc2d62
|