call method
Calls the Pollinations API to generate text based on the provided prompt.
@param prompt The prompt to use for text generation. If null, the last message in the list is used. @param display Whether to display the response character by character. Default is false. @param encode Whether to encode the response. Default is false. @return A Future that resolves to a TextAi object with the generated text.
Implementation
Future<TextAi> call({
String? prompt,
bool display = false,
bool encode = false,
}) async {
if (prompt == null) {
if (messages.isNotEmpty) {
this.prompt = messages.last.content;
}
} else {
this.prompt = prompt;
}
//this.messages = messages.map((message) {return message; }).toList();
this.request = Request(
model: model,
prompt: this.prompt ?? "",
system: system,
contextual: contextual,
messages: messages,
images: images,
seed: seed,
private: private,
reasoningEffort: reasoningEffort,
jsonMode: jsonMode,
referrer: referrer,
);
this.response = await request!.call(encode: encode);
this.time = DateTime.now();
messages.add(Message(role: Role.user, content: this.prompt ?? ""));
messages.add(Message(role: Role.assistant, content: response));
// Implement display logic if needed (requires console output in Flutter)
if (display) {
// Use a function to simulate the character-by-character display
await _displayResponse(response);
}
return this;
}