> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mem0.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Google AI

> Configure Google AI as an embedding provider in Mem0 using Gemini models and the GOOGLE_API_KEY variable.

To use Google AI embedding models, set the `GOOGLE_API_KEY` environment variables. You can obtain the Gemini API key from [here](https://aistudio.google.com/app/apikey).

### Usage

<CodeGroup>
  ```python Python theme={null}
  import os
  from mem0 import Memory

  os.environ["GOOGLE_API_KEY"] = "key"
  os.environ["OPENAI_API_KEY"] = "your_api_key" # For LLM

  config = {
      "embedder": {
          "provider": "gemini",
          "config": {
              "model": "models/gemini-embedding-001",
          }
      }
  }

  m = Memory.from_config(config)
  messages = [
      {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
      {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},
      {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},
      {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
  ]
  m.add(messages, user_id="john")
  ```

  ```typescript TypeScript theme={null}
  import { Memory } from 'mem0ai/oss';

  const config = {
    embedder: {
        provider: "google",
        config: {
          apiKey: process.env["GOOGLE_API_KEY"],
          model: "gemini-embedding-001",
          embeddingDims: 1536,
        },
      },
  };

  const memory = new Memory(config);
  const messages = [
      {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
      {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},
      {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},
      {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
  ]
  await memory.add(messages, { userId: "john" });
  ```
</CodeGroup>

### Config

Here are the parameters available for configuring Gemini embedder:

<Tabs>
  <Tab title="Python">
    | Parameter               | Description                                                                                            | Default Value                 |
    | ----------------------- | ------------------------------------------------------------------------------------------------------ | ----------------------------- |
    | `model`                 | The name of the embedding model to use                                                                 | `models/gemini-embedding-001` |
    | `embedding_dims`        | Dimensions of the embedding model                                                                      | `768`                         |
    | `api_key`               | The Google API key                                                                                     | `None`                        |
    | `output_dimensionality` | Output dimensionality for the embedding model (Gemini-specific; used when `embedding_dims` is not set) | `None`                        |
  </Tab>

  <Tab title="TypeScript">
    | Parameter       | Description                                                                                                                                                                         | Default Value          |
    | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
    | `model`         | The name of the embedding model to use                                                                                                                                              | `gemini-embedding-001` |
    | `embeddingDims` | Dimensions of the embedding model. When not set, uses the model's native output dimensionality (3072 for `gemini-embedding-001`; MRL truncation to 768, 1536, or 3072 is supported) | `None`                 |
    | `apiKey`        | Google API key                                                                                                                                                                      | `None`                 |
  </Tab>
</Tabs>
