invoke method

  1. @override
Future<ChatResult> invoke(
  1. PromptValue input, {
  2. FakeEchoChatModelOptions? options,
})
override

Invokes the Runnable on the given input.

  • input - the input to invoke the Runnable on.
  • options - the options to use when invoking the Runnable.

Implementation

@override
Future<ChatResult> invoke(
  final PromptValue input, {
  final FakeEchoChatModelOptions? options,
}) async {
  final throwError =
      options?.throwRandomError ?? defaultOptions.throwRandomError;
  if (throwError) {
    throw Exception('Random error');
  }

  final text = input.toChatMessages().last.contentAsString;
  final message = AIChatMessage(content: text);
  return ChatResult(
    id: '1',
    output: message,
    finishReason: FinishReason.unspecified,
    metadata: {
      'model': options?.model ?? defaultOptions.model,
      ...?options?.metadata ?? defaultOptions.metadata,
    },
    usage: const LanguageModelUsage(),
  );
}