createRequest method
HttpRequestModel?
createRequest(
- AIRequestModel? aiRequestModel
)
override
Implementation
@override
HttpRequestModel? createRequest(AIRequestModel? aiRequestModel) {
if (aiRequestModel == null) {
return null;
}
List<NameValueModel> params = [];
String endpoint = "${aiRequestModel.url}/${aiRequestModel.model}:";
if (aiRequestModel.stream ?? false) {
endpoint += 'streamGenerateContent';
params.add(const NameValueModel(name: "alt", value: "sse"));
} else {
endpoint += 'generateContent';
}
return HttpRequestModel(
method: HTTPVerb.post,
url: endpoint,
authModel: aiRequestModel.apiKey == null
? null
: AuthModel(
type: APIAuthType.apiKey,
apikey: AuthApiKeyModel(
key: aiRequestModel.apiKey!,
location: 'query',
name: 'key',
),
),
body: kJsonEncoder.convert({
"contents": [
{
"role": "user",
"parts": [
{"text": aiRequestModel.userPrompt},
],
},
],
"systemInstruction": {
"role": "system",
"parts": [
{"text": aiRequestModel.systemPrompt},
],
},
"generationConfig": aiRequestModel.getModelConfigMap(),
}),
);
}