createRequest method

  1. @override
HttpRequestModel? createRequest(
  1. AIRequestModel? aiRequestModel
)
override

Implementation

@override
HttpRequestModel? createRequest(AIRequestModel? aiRequestModel) {
  if (aiRequestModel == null) {
    return null;
  }
  if (aiRequestModel.url.isEmpty) {
    throw Exception('MODEL ENDPOINT IS EMPTY');
  }
  return HttpRequestModel(
    method: HTTPVerb.post,
    url: aiRequestModel.url,
    authModel: aiRequestModel.apiKey == null
        ? null
        : AuthModel(
            type: APIAuthType.apiKey,
            apikey: AuthApiKeyModel(
              key: aiRequestModel.apiKey!,
              name: 'api-key',
            ),
          ),
    body: kJsonEncoder.convert({
      "model": aiRequestModel.model,
      "messages": [
        {"role": "system", "content": aiRequestModel.systemPrompt},
        if (aiRequestModel.userPrompt.isNotEmpty) ...{
          {"role": "user", "content": aiRequestModel.userPrompt},
        } else ...{
          {"role": "user", "content": "Generate"},
        },
      ],
      ...aiRequestModel.getModelConfigMap(),
      if (aiRequestModel.stream ?? false) ...{'stream': true},
    }),
  );
}