PHP code example of citomni / vectorembedding

1. Go to this page and download the library: Download citomni/vectorembedding 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/ */

    

citomni / vectorembedding example snippets



declare(strict_types=1);

return [
	\CitOmni\VectorEmbedding\Boot\Registry::class,
];

$this->app->vectorEmbedder->embed(array $request): array

[
	'profile' => 'openai-text-embedding-3-small',
	'items' => [
		[
			'type' => 'text',
			'text' => 'Lejelovens regler om depositum',
		],
	],
	'options' => [
		'dimensions' => null,
		'task_type' => null,
	],
	'provider_options' => [],
	'debug' => [
		'

[
	'type' => 'text',
	'text' => 'Lejelovens regler om depositum',
]

[
	'profile' => 'openai-text-embedding-3-small',
	'provider' => 'openai',
	'model' => 'text-embedding-3-small',
	'vectors' => [
		[
			'index' => 0,
			'vector' => [0.123, -0.456, 0.789],
			'meta' => [
				'input_type' => 'text',
			],
		],
	],
	'usage' => [
		'input_tokens' => 10,
		'total_tokens' => 10,
	],
	'raw' => null,
	'meta' => [
		'cached' => false,
		'cache_key' => null,
		'duration_ms' => 123,
	],
]


declare(strict_types=1);

return [
	'vectorembedding' => [
		'default_profile' => 'openai-text-embedding-3-small',

		'debug' => [
			'mbedding-3-small' => [
				'adapter' => \CitOmni\VectorEmbedding\Adapter\OpenAiEmbeddingAdapter::class,
				'provider' => 'openai',
				'model' => 'text-embedding-3-small',
				'base_url' => 'https://api.openai.com/v1',
				'api_key' => '',
				'timeout' => 60,
				'connect_timeout' => 10,
			],

			'gemini-embedding-001' => [
				'adapter' => \CitOmni\VectorEmbedding\Adapter\GeminiEmbeddingAdapter::class,
				'provider' => 'google',
				'model' => 'gemini-embedding-001',
				'base_url' => 'https://generativelanguage.googleapis.com/v1beta',
				'api_key' => '',
				'timeout' => 60,
				'connect_timeout' => 10,
			],
		],
	],
];

interface EmbeddingAdapterInterface {
	public function buildUrl(): string;
	public function buildRequest(array $request): array;
	public function buildHeaders(array $request): array;
	public function parseResponse(array $transportResult, array $request): array;
}

$this->app->curl->execute(array $request): array


declare(strict_types=1);

$response = $this->app->vectorEmbedder->embed([
	'profile' => 'openai-text-embedding-3-small',
	'items' => [
		[
			'type' => 'text',
			'text' => 'Lejelovens regler om depositum',
		],
	],
	'options' => [
		'dimensions' => 256,
	],
]);

$vector = $response['vectors'][0]['vector'] ?? [];
bash
php bin/citomni vectorembedding:embed "Lejelovens regler om depositum"
bash
php bin/citomni vectorembedding:embed "Lejelovens regler om depositum" --profile="openai-text-embedding-3-small"
bash
php bin/citomni vectorembedding:embed "Test" --dimensions=256
php bin/citomni vectorembedding:embed "Depositum ved leje" --task-type="RETRIEVAL_QUERY"
bash
php bin/citomni vectorembedding:embed "Lejelovens regler om depositum" --json