# Firebase.AI.FirebaseAI

The entry point for all [Firebase](https://firebase.google.com/docs/reference/unity/namespace/firebase#namespace_firebase)[AI](https://firebase.google.com/docs/reference/unity/namespace/firebase/a-i#namespace_firebase_1_1_a_i) SDK functionality.

## Summary

| ### Properties ||
|---|---|
| `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i_1af7502d91d07c369ee7e817a9173bc580` | `static https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` Returns a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` instance with the default `https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app` and GoogleAI [Backend](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend). |

| ### Public static functions ||
|---|---|
| `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i_1ac2310ef28375e5d7ace296039248d11e(https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend? backend, bool useLimitedUseAppCheckTokens)` | `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` Returns a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` instance with the default `https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app` and the given [Backend](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend). |
| `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i_1abbf4431eb72d195888a7f0c1630b429f(https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app app, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend? backend, bool useLimitedUseAppCheckTokens)` | `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` Returns a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` instance with the given `https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app` and [Backend](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend). |

| ### Public functions ||
|---|---|
| `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i_1a298b9dff4e33b6b5da3dd0157aeb414c(string modelName, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/generation-config#struct_firebase_1_1_a_i_1_1_generation_config? generationConfig, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/safety-setting#struct_firebase_1_1_a_i_1_1_safety_setting[] safetySettings, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/tool#struct_firebase_1_1_a_i_1_1_tool[] tools, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/tool-config#struct_firebase_1_1_a_i_1_1_tool_config? toolConfig, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/model-content#struct_firebase_1_1_a_i_1_1_model_content? systemInstruction, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/request-options#struct_firebase_1_1_a_i_1_1_request_options? requestOptions)` | `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/generative-model#class_firebase_1_1_a_i_1_1_generative_model` Initializes a generative model with the given parameters. |
| `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i_1a950cfe0b559a3cdcbc4ac186ee14355a(string modelName, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/live-generation-config#struct_firebase_1_1_a_i_1_1_live_generation_config? liveGenerationConfig, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/tool#struct_firebase_1_1_a_i_1_1_tool[] tools, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/model-content#struct_firebase_1_1_a_i_1_1_model_content? systemInstruction, https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/request-options#struct_firebase_1_1_a_i_1_1_request_options? requestOptions)` | `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/live-generative-model#class_firebase_1_1_a_i_1_1_live_generative_model` Initializes a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/live-generative-model#class_firebase_1_1_a_i_1_1_live_generative_model` for real-time interaction. |
| `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i_1aef4c4c607ea66d8b2da5ce9fbdd37f28(https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/request-options#struct_firebase_1_1_a_i_1_1_request_options? requestOptions)` | `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/template-generative-model#class_firebase_1_1_a_i_1_1_template_generative_model` Initializes a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/template-generative-model#class_firebase_1_1_a_i_1_1_template_generative_model` with the given parameters. |

| ### Structs ||
|---|---|
| [Firebase.AI.FirebaseAI.Backend](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend) | Defines which backend [AI](https://firebase.google.com/docs/reference/unity/namespace/firebase/a-i#namespace_firebase_1_1_a_i) service is being used, provided to `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i_1ac2310ef28375e5d7ace296039248d11e`. |

## Properties

### DefaultInstance

```c#
static FirebaseAI DefaultInstance
```
Returns a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` instance with the default `https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app` and GoogleAI [Backend](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend).

## Public static functions

### GetInstance

```c#
FirebaseAI GetInstance(
  Backend? backend,
  bool useLimitedUseAppCheckTokens
)
```
Returns a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` instance with the default `https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app` and the given [Backend](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend).

<br />

Details Parameters `backend` The backend [AI](https://firebase.google.com/docs/reference/unity/namespace/firebase/a-i#namespace_firebase_1_1_a_i) service to use. `useLimitedUseAppCheckTokens` Whether to use limited use App Check tokens for requests. **Returns** A configured instance of `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i`.

### GetInstance

```c#
FirebaseAI GetInstance(
  FirebaseApp app,
  Backend? backend,
  bool useLimitedUseAppCheckTokens
)
```
Returns a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i` instance with the given `https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app` and [Backend](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/firebase-a-i/backend#struct_firebase_1_1_a_i_1_1_firebase_a_i_1_1_backend).

<br />

Details Parameters `app` The custom `https://firebase.google.com/docs/reference/unity/class/firebase/firebase-app#class_firebase_1_1_firebase_app` used for initialization. `backend` The backend [AI](https://firebase.google.com/docs/reference/unity/namespace/firebase/a-i#namespace_firebase_1_1_a_i) service to use. `useLimitedUseAppCheckTokens` Whether to use limited use App Check tokens for requests. **Returns** A configured instance of `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/firebase-a-i#class_firebase_1_1_a_i_1_1_firebase_a_i`.

## Public functions

### GetGenerativeModel

```c#
GenerativeModel GetGenerativeModel(
  string modelName,
  GenerationConfig? generationConfig,
  SafetySetting[] safetySettings,
  Tool[] tools,
  ToolConfig? toolConfig,
  ModelContent? systemInstruction,
  RequestOptions? requestOptions
)
```
Initializes a generative model with the given parameters.


- Note: Refer to [Gemini models](https://firebase.google.com/docs/vertex-ai/gemini-models) for guidance on choosing an appropriate model for your use case.

<br />

<br />

Details Parameters `modelName` The name of the model to use; see [available model names](https://firebase.google.com/docs/vertex-ai/gemini-models#available-model-names) for a list of supported model names. `generationConfig` The content generation parameters your model should use. `safetySettings` A value describing what types of harmful content your model should allow. `tools` A list of `https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/tool#struct_firebase_1_1_a_i_1_1_tool` objects that the model may use to generate the next response. `toolConfig` [Tool](https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/tool#struct_firebase_1_1_a_i_1_1_tool) configuration for any `https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/tool#struct_firebase_1_1_a_i_1_1_tool` specified in the request. `systemInstruction` Instructions that direct the model to behave a certain way; currently only text content is supported. `requestOptions` Configuration parameters for sending requests to the backend. **Returns** The initialized `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/generative-model#class_firebase_1_1_a_i_1_1_generative_model` instance.

### GetLiveModel

```c#
LiveGenerativeModel GetLiveModel(
  string modelName,
  LiveGenerationConfig? liveGenerationConfig,
  Tool[] tools,
  ModelContent? systemInstruction,
  RequestOptions? requestOptions
)
```
Initializes a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/live-generative-model#class_firebase_1_1_a_i_1_1_live_generative_model` for real-time interaction.


- Note: Refer to [Gemini models](https://firebase.google.com/docs/vertex-ai/gemini-models) for guidance on choosing an appropriate model for your use case.

<br />

Warning: This API is in Public Preview, which means that the feature is not subject to any SLA or deprecation policy and could change in backwards-incompatible ways.

<br />

Details Parameters `modelName` The name of the model to use; see [available model names](https://firebase.google.com/docs/vertex-ai/gemini-models#available-model-names) for a list of supported model names. `liveGenerationConfig` The content generation parameters your model should use. `tools` A list of `https://firebase.google.com/docs/reference/unity/struct/firebase/a-i/tool#struct_firebase_1_1_a_i_1_1_tool` objects that the model may use to generate the next response. `systemInstruction` Instructions that direct the model to behave a certain way. `requestOptions` Configuration parameters for sending requests to the backend. **Returns** The initialized `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/live-generative-model#class_firebase_1_1_a_i_1_1_live_generative_model` instance.

### GetTemplateGenerativeModel

```c#
TemplateGenerativeModel GetTemplateGenerativeModel(
  RequestOptions? requestOptions
)
```
Initializes a `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/template-generative-model#class_firebase_1_1_a_i_1_1_template_generative_model` with the given parameters.

<br />

Details Parameters `requestOptions` Configuration parameters for sending requests to the backend. **Returns** The initialized `https://firebase.google.com/docs/reference/unity/class/firebase/a-i/template-generative-model#class_firebase_1_1_a_i_1_1_template_generative_model` instance.