completeForUseCase method

Future<CompletionResponse> completeForUseCase(
  1. String prompt,
  2. CompletionUseCase useCase
)

Complete with best practices for different use cases

Implementation

Future<CompletionResponse> completeForUseCase(
  String prompt,
  CompletionUseCase useCase,
) async {
  CompletionRequest request;

  switch (useCase) {
    case CompletionUseCase.creative:
      request = CompletionRequest(
        prompt: prompt,
        temperature: 0.9,
        topP: 1.0,
        maxTokens: 1000,
      );
      break;
    case CompletionUseCase.factual:
      request = CompletionRequest(
        prompt: prompt,
        temperature: 0.1,
        topP: 0.1,
        maxTokens: 500,
      );
      break;
    case CompletionUseCase.conversational:
      request = CompletionRequest(
        prompt: prompt,
        temperature: 0.7,
        topP: 0.9,
        maxTokens: 800,
      );
      break;
    case CompletionUseCase.code:
      request = CompletionRequest(
        prompt: prompt,
        temperature: 0.2,
        topP: 0.1,
        maxTokens: 1500,
        stop: ['\n\n', '```'],
      );
      break;
    case CompletionUseCase.summarization:
      request = CompletionRequest(
        prompt: prompt,
        temperature: 0.3,
        topP: 0.8,
        maxTokens: 300,
      );
      break;
  }

  return await complete(request);
}