batchQuery method

Future<List<QueryResultDto>> batchQuery(
  1. BatchQueryRequestDto batchQueryRequestDto
)

Implementation

Future<List<QueryResultDto>> batchQuery(BatchQueryRequestDto batchQueryRequestDto) async {
  Completer<TokenUsage> completer = Completer<TokenUsage>();
  LLMSettings llmSettings = LLMSettings(llmConfig: batchQueryRequestDto.llmConfig.toModel(), listenToken: (TokenUsage tokenUsage) => completer.complete(tokenUsage));
  List<List<QuerySegmentResult>> segmentResultListList = await _vdb.query(batchQueryRequestDto.docsId, batchQueryRequestDto.queryTextList, llmSettings, nResults: batchQueryRequestDto.nResults);
  TokenUsage tokenUsage = await completer.future;
  List<QueryResultDto> queryResultDtoList = [];
  for(int i=0; i< segmentResultListList.length; i++) {
    List<QuerySegmentResult> segmentResultList = segmentResultListList[i];
    List<SegmentResultDto> segmentResultDtoList = segmentResultList.map((segmentResult)=> SegmentResultDto.fromModel(segmentResult)).toList();
    QueryResultDto queryResultDto = QueryResultDto(docsId: batchQueryRequestDto.docsId, segmentResultList: segmentResultDtoList, tokenUsage: TokenUsageDto.fromModel(tokenUsage));
    queryResultDtoList.add(queryResultDto);
  }
  return queryResultDtoList;
}