Genkit JS API reference
    Preparing search index...
    • 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

      Returns ModelReference<
          z.ZodObject<
              {
                  apiKey: z.ZodOptional<z.ZodString>;
                  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                  stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                  topK: 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>;
                  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>;
                  thinkingConfig: z.ZodOptional<
                      z.ZodObject<
                          {
                              includeThoughts: z.ZodOptional<z.ZodBoolean>;
                              thinkingBudget: z.ZodOptional<z.ZodNumber>;
                          },
                          "strip",
                          z.ZodTypeAny,
                          { includeThoughts?: boolean; thinkingBudget?: number },
                          { includeThoughts?: boolean; thinkingBudget?: number },
                      >,
                  >;
                  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;
                          },
                      >,
                  >;
              },
              "passthrough",
              z.ZodTypeAny,
              z.objectOutputType<
                  {
                      apiKey: z.ZodOptional<z.ZodString>;
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      topK: 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<[(...), (...), (...), (...)]>>;
                              },
                              "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>;
                      safetySettings: z.ZodOptional<
                          z.ZodArray<
                              z.ZodObject<
                                  {
                                      category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                      threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                  },
                                  "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>;
                      thinkingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                  thinkingBudget: z.ZodOptional<z.ZodNumber>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              { includeThoughts?: boolean; thinkingBudget?: number },
                              { includeThoughts?: boolean; thinkingBudget?: number },
                          >,
                      >;
                      topP: z.ZodOptional<z.ZodNumber>;
                      vertexRetrieval: z.ZodOptional<
                          z.ZodObject<
                              {
                                  datastore: z.ZodObject<
                                      {
                                          dataStoreId: z.ZodString;
                                          location: z.ZodOptional<(...)>;
                                          projectId: z.ZodOptional<(...)>;
                                      },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      },
                                      {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      },
                                  >;
                                  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",
              >,
              z.objectInputType<
                  {
                      apiKey: z.ZodOptional<z.ZodString>;
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      topK: 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<[(...), (...), (...), (...)]>>;
                              },
                              "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>;
                      safetySettings: z.ZodOptional<
                          z.ZodArray<
                              z.ZodObject<
                                  {
                                      category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                      threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                  },
                                  "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>;
                      thinkingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                  thinkingBudget: z.ZodOptional<z.ZodNumber>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              { includeThoughts?: boolean; thinkingBudget?: number },
                              { includeThoughts?: boolean; thinkingBudget?: number },
                          >,
                      >;
                      topP: z.ZodOptional<z.ZodNumber>;
                      vertexRetrieval: z.ZodOptional<
                          z.ZodObject<
                              {
                                  datastore: z.ZodObject<
                                      {
                                          dataStoreId: z.ZodString;
                                          location: z.ZodOptional<(...)>;
                                          projectId: z.ZodOptional<(...)>;
                                      },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      },
                                      {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      },
                                  >;
                                  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",
              >,
          >,
      >