query method
Implementation
Future<QueryResultDto> query(QueryRequestDto queryRequestDto) async {
Completer<TokenUsage> completer = Completer<TokenUsage>();
LLMSettings llmSettings = LLMSettings(llmConfig: queryRequestDto.llmConfig.toModel(), listenToken: (TokenUsage tokenUsage) => completer.complete(tokenUsage));
List<List<QuerySegmentResult>> segmentResultListList = await _vdb.query(queryRequestDto.docsId, [queryRequestDto.queryText], llmSettings, nResults: queryRequestDto.nResults);
TokenUsage tokenUsage = await completer.future;
List<QuerySegmentResult> segmentResultList = segmentResultListList[0];
List<SegmentResultDto> segmentResultDtoList = segmentResultList.map((segmentResult)=> SegmentResultDto.fromModel(segmentResult)).toList();
QueryResultDto queryResultDto = QueryResultDto(docsId: queryRequestDto.docsId, segmentResultList: segmentResultDtoList, tokenUsage: TokenUsageDto.fromModel(tokenUsage));
return queryResultDto;
}