1. Go to this page and download the library: Download dgtlss/semantica library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dgtlss / semantica example snippets
// With SEMANTICA_AUTO_EMBED=true
$post = Post::create([
'title' => 'Laravel Tips',
'content' => 'Here are some useful Laravel tips...',
]);
// Embedding is automatically generated
// With SEMANTICA_AUTO_EMBED=false (default)
$post = Post::create([
'title' => 'Laravel Tips',
'content' => 'Here are some useful Laravel tips...',
]);
// No embedding generated - use manual embedding or artisan commands
use Dgtlss\Semantica\Services\EmbeddingService;
$embeddingService = app(EmbeddingService::class);
$embeddingService->embed($post);
use Dgtlss\Semantica\Facades\Semantica;
$results = Semantica::search('PHP framework tutorials', App\Models\Post::class, 10, 0.8);
// Or get models directly
$posts = Semantica::searchModels('PHP framework tutorials', App\Models\Post::class);
use Dgtlss\Semantica\Traits\HasEmbeddings;
class Post extends Model
{
use HasEmbeddings;
// Customize embedding fields (optional)
public function getEmbeddingFields(): array
{
return ['title', 'excerpt', 'body'];
}
}
use Dgtlss\Semantica\Facades\Semantica;
// Search for similar content
$results = Semantica::search('query text', App\Models\Post::class, 10, 0.8);
// Get models directly
$posts = Semantica::searchModels('query text', App\Models\Post::class);
// Embed a model manually
Semantica::embed($model);
use Dgtlss\Semantica\Services\EmbeddingService;
use Dgtlss\Semantica\Services\SearchService;
$embeddingService = app(EmbeddingService::class);
$searchService = app(SearchService::class);
// Generate embedding for text
$embedding = $embeddingService->generateEmbedding('text');
// Embed a model
$embeddingService->embed($model);
// Search
$results = $searchService->search('query', App\Models\Post::class);
$models = $searchService->searchModels('query', App\Models\Post::class);
namespace Dgtlss\Semantica\Services\Providers;
use Dgtlss\Semantica\Services\Providers\EmbeddingProviderInterface;
class CustomProvider implements EmbeddingProviderInterface
{
public function __construct(array $config) { /* ... */ }
public function generateEmbedding(string $text): array { /* ... */ }
public function getModel(): string { /* ... */ }
public function getDimensions(): int { /* ... */ }
}