LLM-based Survey System with TTS and STT
This project provides a fully working web-based survey system utilizing multiple Large Language Models (LLM), Text-to-Speech (TTS), and Speech-to-Text (STT) technologies, as specified in the Technical Requirements. It is designed to allow administrators to configure models (both via private APIs and downloadable open-source models) easily using a Streamlit admin interface, while end users can participate in surveys through a friendly user interface.
Features
- LLM (Language Models):
- OpenAI, Claude, Mistral, Yandex LLM, Gigachat, Llama (via Hugging Face)
- TTS (Text-to-Speech):
- Edge TTS, Google Cloud TTS, Amazon Polly, ElevenLabs, API integrations
- STT (Speech-to-Text):
- Whisper, Vosk, Google Cloud Speech-to-Text, Amazon Transcribe, API integrations
- SQL Database (SQLite by default)
- Streamlit Interfaces:
pages/admin_interface.py— for administrationpages/user_interface.py— for end users
- Flexible question generation and editing
- LLM-based scoring and feedback
- Voice and text answers
- Statistics and comparison of LLM vs human scores
- Interactive charts (Plotly)
- Parallel user sessions supported
Requirements
- Python 3.8+
- All dependencies are listed in requirements.txt
- Some models require API keys
Installation
- Clone the repository (or generate from the creation script).
- Navigate to the project root directory.
- Install the required packages:
pip install -r requirements.txt
- (Optional) Install the package locally:
pip install .
- (Optional) You may need to download large open-source models (e.g., Llama, Vosk) before first run.
Usage
Admin Interface
streamlit run app.py
The main page will open; select "Admin Interface".
- Admin login is required (
ADMIN_PASSWORDenvironment variable, default isadmin).
User Interface
On the main page, select "User Interface".
- The user enters their first and last name, selects a test, and takes the survey.
Project Structure
- src/
- llm/ — LLM integrations (OpenAI, Claude, Mistral, Yandex, Llama, etc.)
- tts/ — TTS integrations (Edge, Google, Amazon, ElevenLabs, etc.)
- stt/ — STT integrations (Whisper, Vosk, Google, Amazon, etc.)
- utils/ — Utilities (question manager, statistics, audio, etc.)
- database/ — Database models and handler
- main.py — Library entry point
- pages/
- admin_interface.py — Streamlit admin interface
- user_interface.py — Streamlit user interface
- tests/ — Unit tests
- requirements.txt — Python dependencies
- setup.py — Installation script
- README.md — Project documentation
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Metadata
Release files for ai-interviewer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ai_interviewer-0.1.0.tar.gz | 14.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ai_interviewer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.8 kB
Release files / ai_interviewer-0.1.0.tar.gz
| Download URL | ai_interviewer-0.1.0.tar.gz |
|---|---|
| Size | 14.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b9b64f26dea07948abc3ebbc5a0bd130ef7b3fc6b89036619799ce0c212217a
|
|
BLAKE2b-256 checksum How to use checksums |
a19ed4070e6847982d83b75e0f337e651e9dae667126c12684e9a448dfbe0c62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.13.5 Darwin/24.5.0
|
Release files / ai_interviewer-0.1.0-py3-none-any.whl
| Download URL | ai_interviewer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 23.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
896012719463e67de471bc0cfa667340cecbcdfce312f42f19868f9ef844f348
|
|
BLAKE2b-256 checksum How to use checksums |
efbfa527cdc292e7c94df081387afe21bfd6e2ff50ac98dabdef58713d010dbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.13.5 Darwin/24.5.0
|
Security for ai-interviewer 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.