query method
Future<List<List<QuerySegmentResult> > >
query(
- String collectionName,
- List<
String> queryTexts, - LLMSettings llmSettings, {
- int nResults = 2,
override
Implementation
@override
Future<List<List<QuerySegmentResult>>> query(String collectionName, List<String> queryTexts, LLMSettings llmSettings, { int nResults = 2 }) async {
EmbeddingFunction embeddingFunction = OpenAIEmbeddingFunction(llmConfig: llmSettings.llmConfig, listen: llmSettings.listenToken);
List<List<QuerySegmentResult>> segmentResultListList = [];
try {
Collection collection = await client.getCollection(name: collectionName, embeddingFunction: embeddingFunction);
QueryResponse queryResponse = await collection.query(queryTexts: queryTexts, nResults: nResults );
for(int i=0; i< queryTexts.length; i++) {
List<QuerySegmentResult> segmentResultList = [];
for(int j=0; j< queryResponse.ids[i].length; j++) {
QuerySegmentResult segmentResult = QuerySegmentResult(
id: queryResponse.ids[i][j],
text: queryResponse.documents![i][j]!,
metadata: queryResponse.metadatas?[i][j]==null?{}:_convertToFlatMetadata(queryResponse.metadatas![i][j]!),
distance: queryResponse.distances![i][j]
);
segmentResultList.add(segmentResult);
}
segmentResultListList.add(segmentResultList);
}
} on ChromaApiClientException catch(e) {
VectorDatabaseException vdbException = VectorDatabaseException(
code: e.code??500,
message: e.message + ": " + (e.body is String ? (e.body as String) : e.body.toString())
);
throw vdbException;
}
return segmentResultListList;
}