2026-05-10 17:57:49 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 13:21:24 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:08:07 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 17:57:49 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 11:06:03 +03:30
2026-05-10 13:22:57 +03:30
2026-05-10 11:06:03 +03:30

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:

composer install
npm install

Create the environment file and app key:

cp .env.example .env
php artisan key:generate

Configure PostgreSQL in .env:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=embedd_hub
DB_USERNAME=postgres
DB_PASSWORD=

Configure Ollama:

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:

php artisan migrate
npm run build

Ollama

Start Ollama and pull at least one embedding-capable model:

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:

https://embedd-hub.test

Common commands:

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:

php artisan test --compact

Run only embedding tool tests:

php artisan test --compact tests/Feature/EmbeddingToolsTest.php
Description
local-first Laravel workbench for exploring text embeddings.
Readme 285 KiB
Languages
PHP 52.6%
Blade 46.4%
CSS 0.7%
JavaScript 0.3%