add icons and welcome page and readme
This commit is contained in:
125
README.md
Normal file
125
README.md
Normal file
@@ -0,0 +1,125 @@
|
||||
# Embedd HUB
|
||||
|
||||
Embedd HUB is a local-first Laravel workbench for exploring text embeddings. It lets users generate vectors, search similar stored phrases, and compare phrase proximity with Ollama and PostgreSQL vector storage.
|
||||
|
||||
## Features
|
||||
|
||||
- Generate embeddings for words, phrases, or multiline text.
|
||||
- Store vectors in PostgreSQL with vector indexes when using pgvector.
|
||||
- Search existing embeddings by semantic similarity.
|
||||
- Compare multiple phrases with a pairwise similarity matrix and ranked pairs.
|
||||
- Pick embedding models from the live Ollama `/api/tags` response.
|
||||
- Show clear Ollama online/offline status before running embedding actions.
|
||||
- Track per-user usage on the dashboard.
|
||||
|
||||
## Stack
|
||||
|
||||
- Laravel 13
|
||||
- Livewire 4 single-file components
|
||||
- Flux UI 2
|
||||
- Laravel AI SDK
|
||||
- PostgreSQL with vector storage
|
||||
- Ollama for local embedding generation
|
||||
- Tailwind CSS 4 and Vite
|
||||
- Pest 4
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP 8.4
|
||||
- Composer
|
||||
- Node.js and npm
|
||||
- PostgreSQL 18 or another PostgreSQL version with vector extension support
|
||||
- Ollama running locally or on a reachable host
|
||||
|
||||
## Setup
|
||||
|
||||
Install PHP and JavaScript dependencies:
|
||||
|
||||
```bash
|
||||
composer install
|
||||
npm install
|
||||
```
|
||||
|
||||
Create the environment file and app key:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
php artisan key:generate
|
||||
```
|
||||
|
||||
Configure PostgreSQL in `.env`:
|
||||
|
||||
```dotenv
|
||||
DB_CONNECTION=pgsql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=5432
|
||||
DB_DATABASE=embedd_hub
|
||||
DB_USERNAME=postgres
|
||||
DB_PASSWORD=
|
||||
```
|
||||
|
||||
Configure Ollama:
|
||||
|
||||
```dotenv
|
||||
OLLAMA_URL=http://localhost:11434
|
||||
OLLAMA_EMBEDDINGS_DIMENSIONS=768
|
||||
```
|
||||
|
||||
The dimensions must match the embedding model you plan to use. Set this before running migrations so the vector column is created with the correct size.
|
||||
|
||||
Run migrations and build assets:
|
||||
|
||||
```bash
|
||||
php artisan migrate
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Ollama
|
||||
|
||||
Start Ollama and pull at least one embedding-capable model:
|
||||
|
||||
```bash
|
||||
ollama serve
|
||||
ollama pull nomic-embed-text
|
||||
```
|
||||
|
||||
Embedd HUB does not use a configured default model. The tool pages call the Ollama API and list the models returned from `/api/tags`. If Ollama cannot return that model list, embedding actions are disabled and the UI shows an offline status.
|
||||
|
||||
## Development
|
||||
|
||||
For Laravel Herd, the app is available at:
|
||||
|
||||
```text
|
||||
https://embedd-hub.test
|
||||
```
|
||||
|
||||
Common commands:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
php artisan test --compact
|
||||
vendor/bin/pint --dirty --format agent
|
||||
```
|
||||
|
||||
## Project Map
|
||||
|
||||
- `app/Services/EmbeddingWorkbench.php` - embedding generation, search, comparison, and Ollama model discovery.
|
||||
- `app/Concerns/InteractsWithEmbeddingWorkbench.php` - shared Livewire state for model selection and availability.
|
||||
- `resources/views/pages/embeddings` - the Embed, Search, and Compare pages.
|
||||
- `resources/views/dashboard.blade.php` - usage dashboard.
|
||||
- `database/migrations/*embedding*` - vector storage and usage event tables.
|
||||
- `public/favicon.svg` - source SVG favicon asset. It is intentionally not referenced in templates.
|
||||
|
||||
## Testing
|
||||
|
||||
Run the full suite:
|
||||
|
||||
```bash
|
||||
php artisan test --compact
|
||||
```
|
||||
|
||||
Run only embedding tool tests:
|
||||
|
||||
```bash
|
||||
php artisan test --compact tests/Feature/EmbeddingToolsTest.php
|
||||
```
|
||||
Reference in New Issue
Block a user