@@ -7,6 +7,8 @@ import 'utils/client.dart';
7
7
import 'utils/wait_for.dart' ;
8
8
9
9
void main () {
10
+ final openAiKeyValue = openAiKey;
11
+
10
12
group ('Search' , () {
11
13
setUpClient ();
12
14
late String uid;
@@ -545,44 +547,58 @@ void main() {
545
547
setUpClient ();
546
548
late String uid;
547
549
late MeiliSearchIndex index;
550
+ late IndexSettings settings;
551
+
552
+ setUpAll (() {
553
+ settings = IndexSettings (embedders: {
554
+ 'default' : OpenAiEmbedder (
555
+ model: 'text-embedding-3-small' ,
556
+ apiKey: openAiKeyValue,
557
+ documentTemplate: "a book titled '{{ doc.title }}'" ,
558
+ ),
559
+ });
560
+ });
561
+
548
562
setUp (() async {
549
563
uid = randomUid ();
550
564
index = await createIndexWithData (uid: uid, data: vectorBooks);
565
+ // Configure embedder before running vector search
566
+ await index.updateSettings (settings).waitFor (client: client);
551
567
});
552
568
553
569
test ('vector search' , () async {
554
- final vector = [0 , 1 , 2 ];
570
+ // Create a vector with 1536 dimensions (filled with zeros for test purposes)
571
+ final vector = List .filled (1536 , 0.0 );
555
572
final res = await index
556
573
.search (
557
574
null ,
558
575
SearchQuery (
559
576
vector: vector,
577
+ hybrid: HybridSearch (
578
+ embedder: 'default' ,
579
+ semanticRatio: 1.0 ,
580
+ ),
560
581
),
561
582
)
562
583
.asSearchResult ()
563
584
.mapToContainer ();
564
585
565
- expect (res.vector, vector);
566
586
expect (
567
587
res.hits,
568
588
everyElement (
569
589
isA <MeiliDocumentContainer <Map <String , dynamic >>>()
570
590
.having (
571
- (p0) => p0.vectors,
572
- 'vectors' ,
573
- isNotNull,
574
- )
575
- .having (
576
- (p0) => p0.semanticScore,
577
- 'semanticScore' ,
591
+ (p0) => p0.parsed,
592
+ 'parsed' ,
578
593
isNotNull,
579
594
),
580
595
),
581
596
);
582
597
});
583
- });
598
+ }, skip: openAiKeyValue == null || openAiKeyValue.isEmpty
599
+ ? "Requires OPEN_AI_API_KEY environment variable"
600
+ : null );
584
601
585
- final openAiKeyValue = openAiKey;
586
602
group ('Embedders' , () {
587
603
group (
588
604
'Unit test' ,
0 commit comments