mirror of
https://github.com/aljazceru/vibeline.git
synced 2026-01-19 22:44:32 +01:00
132 lines
3.3 KiB
Markdown
132 lines
3.3 KiB
Markdown
# VibeLine
|
|
|
|
VibeLine is a powerful voice memo processing system that uses AI to extract meaningful content from your voice recordings. It uses a flexible plugin system to generate various types of content like summaries, blog posts, app ideas, and action items.
|
|
|
|
## Features
|
|
|
|
- 🎙️ Automatic voice memo transcription
|
|
- 🔌 Flexible plugin system for content extraction
|
|
- 🤖 AI-powered content generation using Ollama
|
|
- 📝 Built-in plugins for:
|
|
- Summaries
|
|
- Blog posts
|
|
- App ideas
|
|
- Action items/TODOs
|
|
- 🎯 Smart plugin matching based on transcript content
|
|
- 📁 Organized output directory structure
|
|
|
|
## Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone https://github.com/yourusername/vibeline.git
|
|
cd vibeline
|
|
```
|
|
|
|
2. Create and activate a virtual environment:
|
|
```bash
|
|
python -m venv vibenv
|
|
source vibenv/bin/activate # On Windows: vibenv\Scripts\activate
|
|
```
|
|
|
|
3. Install dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
4. Copy the example environment file and edit it with your settings:
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
5. Make sure you have [Ollama](https://ollama.ai) installed and running.
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
|
|
1. Place your voice memo (`.m4a` file) in the `VoiceMemos` directory
|
|
2. Process the voice memo:
|
|
```bash
|
|
./process.sh VoiceMemos/your_memo.m4a
|
|
```
|
|
|
|
This will:
|
|
1. Transcribe the audio
|
|
2. Extract content based on active plugins
|
|
3. Save outputs in organized directories
|
|
|
|
### Directory Structure
|
|
|
|
```
|
|
VoiceMemos/
|
|
├── transcripts/ # Voice memo transcripts
|
|
├── summaries/ # Generated summaries
|
|
├── blog_posts/ # Generated blog posts
|
|
├── app_ideas/ # Generated app ideas
|
|
└── action_items/ # Generated action items
|
|
```
|
|
|
|
## Plugin System
|
|
|
|
VibeLine uses a flexible YAML-based plugin system for content extraction. Each plugin is defined in a YAML file with the following structure:
|
|
|
|
```yaml
|
|
name: plugin_name
|
|
description: What the plugin does
|
|
model: llama2 # Optional, falls back to ENV default
|
|
type: or # Comparison type: 'and' or 'or'
|
|
run: matching # When to run: 'always' or 'matching'
|
|
output_extension: .txt # Optional, defaults to .txt
|
|
prompt: |
|
|
Your prompt template here.
|
|
Use {transcript} for the transcript content.
|
|
Use {summary} for the summary content.
|
|
```
|
|
|
|
### Plugin Types
|
|
|
|
- **Run Types**:
|
|
- `always`: Plugin runs for every transcript
|
|
- `matching`: Plugin runs only when keywords match
|
|
|
|
- **Comparison Types**:
|
|
- `or`: Runs if any keyword matches
|
|
- `and`: Runs only if all keywords match
|
|
|
|
### Creating a New Plugin
|
|
|
|
1. Create a new YAML file in the `plugins` directory
|
|
2. Define the plugin configuration
|
|
3. Add your prompt template
|
|
4. The plugin will be automatically loaded on the next run
|
|
|
|
### Example Plugin
|
|
|
|
```yaml
|
|
name: blog_post
|
|
description: Generate draft blog posts from transcripts
|
|
model: llama2
|
|
type: or
|
|
run: matching
|
|
output_extension: .md
|
|
prompt: |
|
|
Based on the following transcript, create a blog post...
|
|
|
|
Transcript:
|
|
{transcript}
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
- `OLLAMA_EXTRACT_MODEL`: Default model for content extraction
|
|
- `OLLAMA_SUMMARIZE_MODEL`: Default model for summarization
|
|
- `VOICE_MEMOS_DIR`: Directory for voice memos (default: "VoiceMemos")
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |