An intelligent personal assistant built with LangChain that can help you with various daily tasks.
- 🤖 Intelligent conversational assistant
- 🔗 Integration with multiple APIs and services
- 📊 Data analysis and report generation
- 🗄️ Personal information management
- 🔍 Document search and processing
- 📝 Content generation
- 🎫 JIRA ticket import and management
- 📄 Confluence page integration
- 🧠 Vector-based knowledge base
- Clone the repository:
git clone git@github.com:franjuan/vatuta.git
cd vatuta- Install Poetry (if not already installed):
curl -sSL https://install.python-poetry.org | python3 -- Install Just (if not already installed):
# On macOS with Homebrew
brew install just
# On Linux
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin
# On Windows with Chocolatey
choco install just- Install direnv (optional but recommended for automatic environment loading):
# On macOS with Homebrew
brew install direnv
# On Linux
curl -sfL https://direnv.net/install.sh | bash
# On Windows with Chocolatey
choco install direnv- Install dependencies:
poetry install- Configure environment variables:
cp env.example .env
# Edit the .env file with your API keys- Allow direnv to load the environment (if using direnv):
direnv allowNote: If you get layout_poetry: command not found, you have two options:
- Option A: Use the basic direnv setup (recommended)
- Option B: Install direnv Poetry plugin:
pip install direnv-poetry
- Install pre-commit hooks (optional but recommended):
just pre-commit-installjust run
# or
just assistant query="My query" k="20"Setup development environment:
just setupRun tests:
just testFormat code:
just formatLint code:
just lintRun all checks:
just checkAudit dependencies:
just auditThe project supports automatic environment loading with direnv:
- Automatic .env loading: Environment variables are loaded automatically when you enter the project directory
- Poetry integration: Virtual environment is activated automatically
- No manual activation: No need to run
poetry shellorsource .envmanually - Cross-directory support: Works seamlessly across different project directories
With direnv enabled:
- Environment variables from
.envare loaded automatically - Poetry virtual environment is activated automatically
- Simply
cdinto the project directory and everything is ready
The project uses pre-commit hooks to ensure code quality and consistency:
- Automatic formatting: Code is automatically formatted with Black
- Linting: Code is checked with ruff and mypy
- Import sorting: Imports are automatically organized with isort
- Basic checks: Trailing whitespace, file endings, and merge conflicts are detected
Install pre-commit hooks:
just pre-commit-installRun pre-commit hooks manually:
just pre-commitFor more commands, run:
just --list- Configure your credentials in
.env(seeenv.example) - Configure sources in
config/vatuta.yaml(seeconfig/vatuta.yaml.example) - Install dependencies:
just install - Query the assistant:
just assistant query="your question" k="20"
vatuta/
├── src/ # Main source code
│ ├── sources/ # Data source integrations (Slack, Jira, Confluence)
│ ├── models/ # Data models and schemas
│ ├── rag/ # RAG (Retrieval-Augmented Generation) components
│ ├── client/ # Client interfaces
│ ├── metrics/ # Metrics and monitoring
│ └── utils/ # Utility functions
├── pocs/ # Proof-of-concept scripts and experiments
├── config/ # Configuration files (vatuta.yaml)
├── data/ # User data and cached source data
├── logs/ # Log files
├── tests/ # Unit tests
└── docs/ # Documentation
└── sources/ # Source-specific documentation
Vatuta supports multiple data source integrations including:
- JIRA: Import tickets and issues
- Confluence: Import pages and documentation
- Slack: Import channels and conversations
- GitLab: Import issues and merge requests (PoC)
All sources support:
- Vector-based semantic search
- Incremental updates with checkpointing
- Configurable filtering and date ranges
- Unified query interface
For detailed setup instructions and usage examples, see docs/integrations.md.
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for more details.
