Metadata-Version: 2.4
Name: obsidian-assist
Version: 0.2.0
Summary: Modular AI assistant with Obsidian memory integration and local Whisper transcription.
License: MIT
Keywords: obsidian,assistant,ai,telegram,whisper,notes,memory
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer>=0.9.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: cryptography>=41.0.0
Requires-Dist: numpy>=1.26.0
Requires-Dist: sentence-transformers>=2.2.2
Requires-Dist: openai>=1.0.0
Requires-Dist: python-telegram-bot>=20.0
Requires-Dist: watchdog>=3.0.0
Requires-Dist: faster-whisper>=1.0.0
Provides-Extra: local
Requires-Dist: sentence-transformers>=2.2.2; extra == "local"
Requires-Dist: faster-whisper>=1.0.0; extra == "local"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Dynamic: license-file

# Obsidian AI Assistant

[![Tests](https://github.com/yourusername/obsidian-ai-assistant/actions/workflows/test.yml/badge.svg)](https://github.com/yourusername/obsidian-ai-assistant/actions/workflows/test.yml)
[![Lint](https://github.com/yourusername/obsidian-ai-assistant/actions/workflows/lint.yml/badge.svg)](https://github.com/yourusername/obsidian-ai-assistant/actions/workflows/lint.yml)
[![PyPI](https://img.shields.io/pypi/v/obsidian-assist)](https://pypi.org/project/obsidian-assist/)
[![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Модульный AI-помощник для работы с Obsidian-заметками: локальная транскрибация голоса, векторный поиск, Telegram-бот и CLI.

## ✨ Возможности

- 🎙️ **Локальная транскрибация** голосовых сообщений через faster-whisper (без OpenAI API)
- 💬 **Telegram бот** с историей диалогов и контекстом
- 🔍 **Векторный поиск** по заметкам с фильтрами по блокам и темам
- 📝 **Автоматическое сохранение** заметок в Obsidian vault
- 🔐 **Шифрование** локального индекса
- 🐳 **Docker** поддержка для простого деплоя

## 📦 Установка

```bash
pip install obsidian-assist
```

Или из исходников:

```bash
git clone https://github.com/yourusername/obsidian-ai-assistant.git
cd obsidian-ai-assistant
pip install -e ".[local]"
```

## 🚀 Быстрый старт

1. Скопируйте конфигурацию:

```bash
cp .env.example .env
```

2. Отредактируйте `.env` — укажите `VAULT_PATH` и `TELEGRAM_TOKEN`.

3. Инициализируйте vault:

```bash
obsidian-assist init --vault-path "./my_vault"
```

4. Синхронизируйте и ищите:

```bash
obsidian-assist sync
obsidian-assist search "Python"
```

5. Запустите Telegram бота:

```bash
obsidian-assist telegram
```

## 🤖 Telegram бот

Отправляйте текст или голосовые сообщения:

- **Текст** → автоматически сохраняется в vault с метаданными
- **Голос** → расшифровывается и сохраняется
- **Команды**:
  - `/start`, `/help` — справка
  - `/status` — статус системы
  - `/search <запрос>` — поиск по заметкам
  - `/chat <вопрос>` — диалог с контекстом
  - `/clear` — очистить историю диалога
  - `/new` — создать новую заметку

Метаданные в тексте:
```
Block: Работа
Theme: Идеи
Title: План на неделю
```

## 🐳 Docker

```bash
# Сборка и запуск
docker-compose up --build

# Только бот
docker-compose up telegram-bot
```

## 🏗️ Архитектура

| Модуль | Назначение |
|--------|-----------|
| `obsidian.py` | Работа с vault и markdown-файлами |
| `memory.py` | Векторный индекс и поиск |
| `models.py` | Адаптеры LLM и эмбеддингов |
| `transcriber.py` | Локальная транскрибация audio |
| `telegram_bot.py` | Telegram-бот |
| `cli.py` | Командный интерфейс |
| `crypto.py` | Шифрование данных |
| `assistant.py` | Ядро ассистента |

## 🧪 Разработка

```bash
# Установка dev-зависимостей
pip install -e ".[dev]"

# Pre-commit hooks
pre-commit install

# Тесты
pytest obsidian_assistant/tests/ -v

# Линтеры
ruff check .
mypy obsidian_assistant/
```

## 📄 Документация

- [CONTRIBUTING.md](CONTRIBUTING.md) — как внести вклад
- [CHANGELOG.md](CHANGELOG.md) — история изменений
- [docs/](docs/) — расширенная документация

## 📜 Лицензия

MIT License — см. [LICENSE](LICENSE)
