Streamlit multimodal chat input component with text, image, and voice support
Project description
Streamlit Multimodal Chat Input
A multimodal chat input component for Streamlit that supports text input, image upload, and voice input.
Features
- 📝 Text Input: Same usability as st.chat_input
- 🖼️ Image File Upload: Supports jpg, png, gif, webp
- 🎤 Voice Input: Web Speech API / OpenAI Whisper API support
- 🎨 Streamlit Standard Theme: Fully compatible design
- 🔄 Drag & Drop: File drag and drop support
- ⌨️ Ctrl+V: Paste images from clipboard
- ⚙️ Customizable: Rich configuration options
Installation
pip install st-chat-input-multimodal
Basic Usage
import streamlit as st
from st_chat_input_multimodal import multimodal_chat_input
# Basic usage
result = multimodal_chat_input()
if result:
# Display text
if result['text']:
st.write(f"Text: {result['text']}")
# Display uploaded files
if result['files']:
for file in result['files']:
import base64
base64_data = file['data'].split(',')[1]
image_bytes = base64.b64decode(base64_data)
st.image(image_bytes, caption=file['name'])
# Display voice input metadata
if result.get('audio_metadata'):
st.write(f"Voice input used: {result['audio_metadata']['used_voice_input']}")
Advanced Usage
Voice Input Features
# Enable voice input
result = multimodal_chat_input(
enable_voice_input=True,
voice_recognition_method="web_speech", # or "openai_whisper"
voice_language="ja-JP",
max_recording_time=60
)
# Using OpenAI Whisper API
result = multimodal_chat_input(
enable_voice_input=True,
voice_recognition_method="openai_whisper",
openai_api_key="sk-your-api-key",
voice_language="ja-JP"
)
Custom Configuration
result = multimodal_chat_input(
placeholder="Please enter your message...",
max_chars=500,
accepted_file_types=["jpg", "png", "gif", "webp"],
max_file_size_mb=10,
disabled=False,
key="custom_chat_input"
)
License
MIT License
Author
tsuzukia21
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
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 st-chat-input-multimodal-1.0.2.tar.gz.
File metadata
- Download URL: st-chat-input-multimodal-1.0.2.tar.gz
- Upload date:
- Size: 130.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04ec29b63a1ca17b10b65ee143ac8d42b56718346a7dbffc674e4fc5ee968131
|
|
| MD5 |
f34144c48ff6a6a5936717617bfc4d6f
|
|
| BLAKE2b-256 |
608f1c99570b6d18b570fafed10be14110d261658c6aa29343494f250544834c
|
File details
Details for the file st_chat_input_multimodal-1.0.2-py3-none-any.whl.
File metadata
- Download URL: st_chat_input_multimodal-1.0.2-py3-none-any.whl
- Upload date:
- Size: 356.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c089dd0569da35fa9574b8a019c5152755c3b634b6c72b4474f4a4c7a682c7d
|
|
| MD5 |
a798fc23d13c35cb71038cc911539f03
|
|
| BLAKE2b-256 |
ec58fdd4eb60b2ffc1bfa6513edf4a2dc46e747df5f12a1f0047b276261e45d4
|