completion method
Future<CactusCompletionResult>
completion(
- List<
ChatMessage> messages, { - int maxTokens = 256,
- double? temperature,
- int? topK,
- double? topP,
- List<
String> ? stopSequences, - CactusTokenCallback? onToken,
Implementation
Future<CactusCompletionResult> completion(
List<ChatMessage> messages, {
int maxTokens = 256,
double? temperature,
int? topK,
double? topP,
List<String>? stopSequences,
CactusTokenCallback? onToken,
}) async {
if (_context == null) throw CactusException('CactusLM not initialized');
final processed = _historyManager.processNewMessages(messages);
if (processed.requiresReset) {
_context!.rewind();
_historyManager.reset();
}
final result = await _context!.completion(
CactusCompletionParams(
messages: processed.newMessages,
maxPredictedTokens: maxTokens,
temperature: temperature,
topK: topK,
topP: topP,
stopSequences: stopSequences,
onNewToken: onToken,
),
);
_historyManager.update(processed.newMessages, ChatMessage(role: 'assistant', content: result.text));
return result;
}