---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/llm/gemini_generate_content/helpers/variables/defaultExtractGeminiGeneration.md
description: 'Default implementation; alias of [`extractGeminiGeneration`](https://adk.nht.io/api/@nhtio/adk/batteries/llm/gemini_generate_content/helpers/functions/extractGeminiGeneration).'
---

# Variable: defaultExtractGeminiGeneration

```ts
const defaultExtractGeminiGeneration: (
  response:
    | {
        candidates?: {
          content?: GeminiContent;
          finishReason?: string;
        }[];
      }
    | undefined,
) => {
  finishReason: string | undefined;
  functionCalls: {
    args: Record<string, unknown>;
    name: string;
    thoughtSignature?: string;
  }[];
  reasoning: string;
  text: string;
} = extractGeminiGeneration;
```

Defined in: [src/batteries/llm/gemini\_generate\_content/helpers.ts:429](https://github.com/NHTIO/ADK/blob/master/src/src/batteries/llm/gemini_generate_content/helpers.ts#L429)

Default implementation; alias of [extractGeminiGeneration](../functions/extractGeminiGeneration.md).

Extract text, reasoning, and function calls from a response.

## Parameters

| Parameter  | Type                                                                                                                                               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `response` | | { `candidates?`: { `content?`: [`GeminiContent`](../../types/interfaces/GeminiContent.md); `finishReason?`: `string`; }\[]; } | `undefined` |

## Returns

```ts
{
  finishReason: string | undefined;
  functionCalls: {
     args: Record<string, unknown>;
     name: string;
     thoughtSignature?: string;
  }[];
  reasoning: string;
  text: string;
}
```

| Name            | Type                                                                                                                                                                                 | Defined in                                                                                                                                                         |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `finishReason`  | `string` | `undefined`                                                                                                                                                              | [src/batteries/llm/gemini\_generate\_content/helpers.ts:401](https://github.com/NHTIO/ADK/blob/master/src/src/batteries/llm/gemini_generate_content/helpers.ts#L401) |
| `functionCalls` | { `args`: [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)<`string`, `unknown`>; `name`: `string`; `thoughtSignature?`: `string`; }\[] | [src/batteries/llm/gemini\_generate\_content/helpers.ts:400](https://github.com/NHTIO/ADK/blob/master/src/src/batteries/llm/gemini_generate_content/helpers.ts#L400) |
| `reasoning`     | `string`                                                                                                                                                                             | [src/batteries/llm/gemini\_generate\_content/helpers.ts:399](https://github.com/NHTIO/ADK/blob/master/src/src/batteries/llm/gemini_generate_content/helpers.ts#L399) |
| `text`          | `string`                                                                                                                                                                             | [src/batteries/llm/gemini\_generate\_content/helpers.ts:398](https://github.com/NHTIO/ADK/blob/master/src/src/batteries/llm/gemini_generate_content/helpers.ts#L398) |

## Remarks

`thought: true` parts are reasoning and must NOT be concatenated into user-visible text — doing
so leaks the model's scratchpad into the answer.
