From ac26687f5aee019b6cd3441bb015a93ffba4d1e5 Mon Sep 17 00:00:00 2001 From: Nate Wiebe Date: Wed, 27 Aug 2025 14:35:16 -0400 Subject: [PATCH 1/2] [Platform][Voyage] Embedding update --- .../src/Bridge/Voyage/ModelClient.php | 3 +++ src/platform/src/Bridge/Voyage/Voyage.php | 21 +++++++++++++++++-- .../Bridge/Voyage/ResultConverterTest.php | 4 ++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/platform/src/Bridge/Voyage/ModelClient.php b/src/platform/src/Bridge/Voyage/ModelClient.php index 3da2a5f66..2d80d476c 100644 --- a/src/platform/src/Bridge/Voyage/ModelClient.php +++ b/src/platform/src/Bridge/Voyage/ModelClient.php @@ -39,6 +39,9 @@ public function request(Model $model, object|string|array $payload, array $optio 'json' => [ 'model' => $model->getName(), 'input' => $payload, + 'input_type' => $options['input_type'] ?? null, + 'truncation' => $options['truncation'] ?? true, + 'output_dimension' => $options['dimensions'] ?? null, ], ])); } diff --git a/src/platform/src/Bridge/Voyage/Voyage.php b/src/platform/src/Bridge/Voyage/Voyage.php index 955748499..2e165892a 100644 --- a/src/platform/src/Bridge/Voyage/Voyage.php +++ b/src/platform/src/Bridge/Voyage/Voyage.php @@ -19,17 +19,34 @@ */ class Voyage extends Model { + /** Supported dimensions: 2048, 1024, 512, or 256 */ + public const V3_5 = 'voyage-3.5'; + /** Supported dimensions: 2048, 1024, 512, or 256 */ + public const V3_5_LITE = 'voyage-3.5-lite'; + /** Fixed 1024 dimensions */ public const V3 = 'voyage-3'; + /** Fixed 512 dimensions */ public const V3_LITE = 'voyage-3-lite'; + /** Supported dimensions: 2048, 1024, 512, or 256 */ + public const V3_LARGE = 'voyage-3-large'; + /** Fixed 1024 dimensions */ public const FINANCE_2 = 'voyage-finance-2'; + /** Fixed 1024 dimensions */ public const MULTILINGUAL_2 = 'voyage-multilingual-2'; + /** Fixed 1024 dimensions */ public const LAW_2 = 'voyage-law-2'; + /** Supported dimensions: 2048, 1024, 512, or 256 */ + public const CODE_3 = 'voyage-code-3'; + /** Fixed 1536 dimensions */ public const CODE_2 = 'voyage-code-2'; + public const INPUT_TYPE_DOCUMENT = 'document'; + public const INPUT_TYPE_QUERY = 'query'; + /** - * @param array $options + * @param array{dimensions?: int, input_type?: self::INPUT_TYPE_*, truncation?: bool} $options */ - public function __construct(string $name = self::V3, array $options = []) + public function __construct(string $name = self::V3_5_LITE, array $options = []) { parent::__construct($name, [Capability::INPUT_MULTIPLE], $options); } diff --git a/src/platform/tests/Bridge/Voyage/ResultConverterTest.php b/src/platform/tests/Bridge/Voyage/ResultConverterTest.php index 807aba097..f135620eb 100644 --- a/src/platform/tests/Bridge/Voyage/ResultConverterTest.php +++ b/src/platform/tests/Bridge/Voyage/ResultConverterTest.php @@ -103,11 +103,15 @@ public function testItSupportsVoyageModel(string $modelName) public static function voyageModelsProvider(): iterable { + yield 'V3_5' => [Voyage::V3_5]; + yield 'V3_5_LITE' => [Voyage::V3_5_LITE]; yield 'V3' => [Voyage::V3]; yield 'V3_LITE' => [Voyage::V3_LITE]; + yield 'V3_LARGE' => [Voyage::V3_LARGE]; yield 'FINANCE_2' => [Voyage::FINANCE_2]; yield 'MULTILINGUAL_2' => [Voyage::MULTILINGUAL_2]; yield 'LAW_2' => [Voyage::LAW_2]; + yield 'CODE_3' => [Voyage::CODE_3]; yield 'CODE_2' => [Voyage::CODE_2]; } } From ac2754472540e50e670d40eba88a3ba488a663d3 Mon Sep 17 00:00:00 2001 From: Oskar Stark Date: Tue, 2 Sep 2025 07:37:12 +0200 Subject: [PATCH 2/2] keep default and remove info about dimensions of the model --- src/platform/src/Bridge/Voyage/Voyage.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/platform/src/Bridge/Voyage/Voyage.php b/src/platform/src/Bridge/Voyage/Voyage.php index 2e165892a..5a803a4a7 100644 --- a/src/platform/src/Bridge/Voyage/Voyage.php +++ b/src/platform/src/Bridge/Voyage/Voyage.php @@ -19,25 +19,15 @@ */ class Voyage extends Model { - /** Supported dimensions: 2048, 1024, 512, or 256 */ public const V3_5 = 'voyage-3.5'; - /** Supported dimensions: 2048, 1024, 512, or 256 */ public const V3_5_LITE = 'voyage-3.5-lite'; - /** Fixed 1024 dimensions */ public const V3 = 'voyage-3'; - /** Fixed 512 dimensions */ public const V3_LITE = 'voyage-3-lite'; - /** Supported dimensions: 2048, 1024, 512, or 256 */ public const V3_LARGE = 'voyage-3-large'; - /** Fixed 1024 dimensions */ public const FINANCE_2 = 'voyage-finance-2'; - /** Fixed 1024 dimensions */ public const MULTILINGUAL_2 = 'voyage-multilingual-2'; - /** Fixed 1024 dimensions */ public const LAW_2 = 'voyage-law-2'; - /** Supported dimensions: 2048, 1024, 512, or 256 */ public const CODE_3 = 'voyage-code-3'; - /** Fixed 1536 dimensions */ public const CODE_2 = 'voyage-code-2'; public const INPUT_TYPE_DOCUMENT = 'document'; @@ -46,7 +36,7 @@ class Voyage extends Model /** * @param array{dimensions?: int, input_type?: self::INPUT_TYPE_*, truncation?: bool} $options */ - public function __construct(string $name = self::V3_5_LITE, array $options = []) + public function __construct(string $name = self::V3_5, array $options = []) { parent::__construct($name, [Capability::INPUT_MULTIPLE], $options); }