Skip to content

Commit

Permalink
Fix vector search tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Strift committed Feb 11, 2025
1 parent 064b279 commit 74db777
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 16 deletions.
38 changes: 27 additions & 11 deletions test/search_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import 'utils/client.dart';
import 'utils/wait_for.dart';

void main() {
final openAiKeyValue = openAiKey;

group('Search', () {
setUpClient();
late String uid;
Expand Down Expand Up @@ -545,44 +547,58 @@ void main() {
setUpClient();
late String uid;
late MeiliSearchIndex index;
late IndexSettings settings;

setUpAll(() {
settings = IndexSettings(embedders: {
'default': OpenAiEmbedder(
model: 'text-embedding-3-small',
apiKey: openAiKeyValue,
documentTemplate: "a book titled '{{ doc.title }}'",
),
});
});

setUp(() async {
uid = randomUid();
index = await createIndexWithData(uid: uid, data: vectorBooks);
// Configure embedder before running vector search
await index.updateSettings(settings).waitFor(client: client);
});

test('vector search', () async {
final vector = [0, 1, 2];
// Create a vector with 1536 dimensions (filled with zeros for test purposes)
final vector = List.filled(1536, 0.0);
final res = await index
.search(
null,
SearchQuery(
vector: vector,
hybrid: HybridSearch(
embedder: 'default',
semanticRatio: 1.0,
),
),
)
.asSearchResult()
.mapToContainer();

expect(res.vector, vector);
expect(
res.hits,
everyElement(
isA<MeiliDocumentContainer<Map<String, dynamic>>>()
.having(
(p0) => p0.vectors,
'vectors',
isNotNull,
)
.having(
(p0) => p0.semanticScore,
'semanticScore',
(p0) => p0.parsed,
'parsed',
isNotNull,
),
),
);
});
});
}, skip: openAiKeyValue == null || openAiKeyValue.isEmpty
? "Requires OPEN_AI_API_KEY environment variable"
: null);

final openAiKeyValue = openAiKey;
group('Embedders', () {
group(
'Unit test',
Expand Down
30 changes: 25 additions & 5 deletions test/utils/books_data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,23 +60,43 @@ final vectorBooks = [
{
"id": 0,
"title": "Across The Universe",
"_vectors": [0, 0.8, -0.2],
"_vectors": {
"default": {
"embeddings": [0, 0.8, -0.2],
"regenerate": false,
}
}
},
{
"id": 1,
"title": "All Things Must Pass",
"_vectors": [1, -0.2, 0],
"_vectors": {
"default": {
"embeddings": [1, -0.2, 0],
"regenerate": false,
}
}
},
{
"id": 2,
"title": "And Your Bird Can Sing",
"_vectors": [-0.2, 4, 6],
"_vectors": {
"default": {
"embeddings": [-0.2, 4, 6],
"regenerate": false,
}
}
},
{
"id": 3,
"title": "The Matrix",
"_vectors": [5, -0.5, 0.3],
},
"_vectors": {
"default": {
"embeddings": [5, -0.5, 0.3],
"regenerate": false,
}
},
}
];

enum CSVHeaderTypes {
Expand Down

0 comments on commit 74db777

Please sign in to comment.