GeminiConfig: z.objectOutputType<
    z.objectUtil.extendShape<
        {
            maxOutputTokens: z.ZodOptional<z.ZodNumber>;
            stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            temperature: z.ZodOptional<z.ZodNumber>;
            topK: z.ZodOptional<z.ZodNumber>;
            topP: z.ZodOptional<z.ZodNumber>;
            version: z.ZodOptional<z.ZodString>;
        },
        {
            functionCallingConfig: z.ZodOptional<
                z.ZodObject<
                    {
                        allowedFunctionNames: z.ZodOptional<
                            z.ZodArray<z.ZodString, "many">,
                        >;
                        mode: z.ZodOptional<
                            z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>,
                        >;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                        allowedFunctionNames?: string[];
                        mode?: "MODE_UNSPECIFIED"
                        | "AUTO"
                        | "ANY"
                        | "NONE";
                    },
                    {
                        allowedFunctionNames?: string[];
                        mode?: "MODE_UNSPECIFIED"
                        | "AUTO"
                        | "ANY"
                        | "NONE";
                    },
                >,
            >;
            googleSearchRetrieval: z.ZodOptional<
                z.ZodObject<
                    { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                    "strip",
                    z.ZodTypeAny,
                    { disableAttribution?: boolean },
                    { disableAttribution?: boolean },
                >,
            >;
            location: z.ZodOptional<z.ZodString>;
            maxOutputTokens: z.ZodOptional<z.ZodNumber>;
            safetySettings: z.ZodOptional<
                z.ZodArray<
                    z.ZodObject<
                        {
                            category: z.ZodEnum<
                                [
                                    "HARM_CATEGORY_UNSPECIFIED",
                                    "HARM_CATEGORY_HATE_SPEECH",
                                    "HARM_CATEGORY_DANGEROUS_CONTENT",
                                    "HARM_CATEGORY_HARASSMENT",
                                    "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                                ],
                            >;
                            threshold: z.ZodEnum<
                                [
                                    "BLOCK_LOW_AND_ABOVE",
                                    "BLOCK_MEDIUM_AND_ABOVE",
                                    "BLOCK_ONLY_HIGH",
                                    "BLOCK_NONE",
                                ],
                            >;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                            category: | "HARM_CATEGORY_UNSPECIFIED"
                            | "HARM_CATEGORY_HATE_SPEECH"
                            | "HARM_CATEGORY_DANGEROUS_CONTENT"
                            | "HARM_CATEGORY_HARASSMENT"
                            | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                            threshold: | "BLOCK_LOW_AND_ABOVE"
                            | "BLOCK_MEDIUM_AND_ABOVE"
                            | "BLOCK_ONLY_HIGH"
                            | "BLOCK_NONE";
                        },
                        {
                            category: | "HARM_CATEGORY_UNSPECIFIED"
                            | "HARM_CATEGORY_HATE_SPEECH"
                            | "HARM_CATEGORY_DANGEROUS_CONTENT"
                            | "HARM_CATEGORY_HARASSMENT"
                            | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                            threshold: | "BLOCK_LOW_AND_ABOVE"
                            | "BLOCK_MEDIUM_AND_ABOVE"
                            | "BLOCK_ONLY_HIGH"
                            | "BLOCK_NONE";
                        },
                    >,
                    "many",
                >,
            >;
            temperature: z.ZodOptional<z.ZodNumber>;
            topK: z.ZodOptional<z.ZodNumber>;
            topP: z.ZodOptional<z.ZodNumber>;
            vertexRetrieval: z.ZodOptional<
                z.ZodObject<
                    {
                        datastore: z.ZodObject<
                            {
                                dataStoreId: z.ZodString;
                                location: z.ZodOptional<z.ZodString>;
                                projectId: z.ZodOptional<z.ZodString>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            { dataStoreId: string; location?: string; projectId?: string },
                            { dataStoreId: string; location?: string; projectId?: string },
                        >;
                        disableAttribution: z.ZodOptional<z.ZodBoolean>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                        datastore: {
                            dataStoreId: string;
                            location?: string;
                            projectId?: string;
                        };
                        disableAttribution?: boolean;
                    },
                    {
                        datastore: {
                            dataStoreId: string;
                            location?: string;
                            projectId?: string;
                        };
                        disableAttribution?: boolean;
                    },
                >,
            >;
        },
    >,
    z.ZodTypeAny,
    "passthrough",
>

Gemini model configuration options.

E.g.

  config: {
temperature: 0.9,
maxOutputTokens: 300,
safetySettings: [
{
category: 'HARM_CATEGORY_HATE_SPEECH',
threshold: 'BLOCK_LOW_AND_ABOVE',
},
{
category: 'HARM_CATEGORY_DANGEROUS_CONTENT',
threshold: 'BLOCK_MEDIUM_AND_ABOVE',
},
{
category: 'HARM_CATEGORY_HARASSMENT',
threshold: 'BLOCK_ONLY_HIGH',
},
{
category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
threshold: 'BLOCK_NONE',
},
],
functionCallingConfig: {
mode: 'ANY',
}
}