query method

Future<QueryResultDto> query(
  1. QueryRequestDto queryRequestDto
)

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;
}