generate method
Future<ModelMessage>
generate(
- List<
LLMMessage> messages, { - List<
Tool> ? tools, - ToolChoice? toolChoice,
- required ModelConfig modelConfig,
- bool? jsonOutput,
- CancelToken? cancelToken,
override
Implementation
@override
Future<ModelMessage> generate(
List<LLMMessage> messages, {
List<Tool>? tools,
ToolChoice? toolChoice,
required ModelConfig modelConfig,
bool? jsonOutput,
CancelToken? cancelToken,
}) async {
await rateLimitGate.acquire(estimatedTokens: modelConfig.maxTokens ?? 0);
final response = await inner.generate(
messages,
tools: tools,
toolChoice: toolChoice,
modelConfig: modelConfig,
jsonOutput: jsonOutput,
cancelToken: cancelToken,
);
final hash = hasher.compute(
messages: messages,
tools: tools,
modelConfig: modelConfig,
jsonOutput: jsonOutput,
trialSalt: trialSalt,
);
try {
await store.put(hash, response);
} catch (e, st) {
_logger.warning('failed to record response for $hash', e, st);
}
return response;
}