114 lines
2.3 KiB
Markdown
114 lines
2.3 KiB
Markdown
|
# Data Hound
|
||
|
|
||
|
An Electron-based desktop application that uses AI to help you search and understand your files through natural language queries.
|
||
|
|
||
|
## Features
|
||
|
|
||
|
- Natural language search across your files
|
||
|
- Support for multiple file types (text, PDF, images via OCR)
|
||
|
- Multiple LLM provider support (OpenAI, OpenRouter, Ollama)
|
||
|
- Real-time file monitoring and indexing
|
||
|
- Vector-based semantic search
|
||
|
- Dark mode interface
|
||
|
|
||
|
## Tech Stack
|
||
|
|
||
|
- Electron
|
||
|
- React
|
||
|
- TypeScript
|
||
|
- Material-UI
|
||
|
- LangChain
|
||
|
- ChromaDB
|
||
|
- Tesseract.js (OCR)
|
||
|
|
||
|
## Prerequisites
|
||
|
|
||
|
- Node.js 18+
|
||
|
- npm 8+
|
||
|
- For Ollama support: Ollama running locally
|
||
|
- For OCR: Tesseract installed on your system
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
1. Clone the repository:
|
||
|
```bash
|
||
|
git clone [repository-url]
|
||
|
cd electron-file-search
|
||
|
```
|
||
|
|
||
|
2. Install dependencies:
|
||
|
```bash
|
||
|
npm install
|
||
|
```
|
||
|
|
||
|
3. Start the development server:
|
||
|
```bash
|
||
|
npm run dev
|
||
|
```
|
||
|
|
||
|
## Configuration
|
||
|
|
||
|
### LLM Providers
|
||
|
|
||
|
The application supports three LLM providers:
|
||
|
|
||
|
1. **OpenAI**
|
||
|
- Requires an API key
|
||
|
- Default model: gpt-3.5-turbo
|
||
|
|
||
|
2. **OpenRouter**
|
||
|
- Requires an API key
|
||
|
- Supports various models
|
||
|
- Custom base URL configuration
|
||
|
|
||
|
3. **Ollama**
|
||
|
- Runs locally
|
||
|
- No API key required
|
||
|
- Default URL: http://localhost:11434
|
||
|
- Default model: llama2
|
||
|
|
||
|
Configure your preferred provider through the settings panel in the application.
|
||
|
|
||
|
## Building
|
||
|
|
||
|
To create a production build:
|
||
|
|
||
|
```bash
|
||
|
npm run build
|
||
|
```
|
||
|
|
||
|
To package the application:
|
||
|
|
||
|
```bash
|
||
|
npm run package
|
||
|
```
|
||
|
|
||
|
This will create platform-specific installers in the `release` directory.
|
||
|
|
||
|
## Development
|
||
|
|
||
|
- `npm run dev` - Start the development server
|
||
|
- `npm run lint` - Run ESLint
|
||
|
- `npm run build` - Create a production build
|
||
|
- `npm run package` - Package the application
|
||
|
|
||
|
## Project Structure
|
||
|
|
||
|
```
|
||
|
electron-file-search/
|
||
|
├── electron/ # Electron main process code
|
||
|
│ ├── main.ts # Main entry point
|
||
|
│ ├── preload.ts # Preload script
|
||
|
│ └── services/ # Backend services
|
||
|
├── src/ # React renderer code
|
||
|
│ ├── components/ # React components
|
||
|
│ ├── contexts/ # React contexts
|
||
|
│ ├── hooks/ # Custom hooks
|
||
|
│ └── main.tsx # Renderer entry point
|
||
|
└── scripts/ # Build and development scripts
|
||
|
```
|
||
|
|
||
|
## License
|
||
|
|
||
|
MIT
|