• Returns a reference to a model that can be used in generate calls.

    await ai.generate({
    prompt: 'hi',
    model: gemini('gemini-1.5-flash')
    });

    Parameters

    • version: GeminiVersionString
    • options: 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",
      > = {}

    Returns ModelReference<typeof GeminiConfigSchema>