Skip to main content
Glama
gemini.py1.59 kB
import os from typing import Literal from google import genai from google.genai import types from selfmemory.configs.embeddings.base import BaseEmbedderConfig from selfmemory.embeddings.base import EmbeddingBase class GoogleGenAIEmbedding(EmbeddingBase): def __init__(self, config: BaseEmbedderConfig | None = None): super().__init__(config) self.config.model = self.config.model or "models/text-embedding-004" self.config.embedding_dims = ( self.config.embedding_dims or self.config.output_dimensionality or 768 ) api_key = self.config.api_key or os.getenv("GOOGLE_API_KEY") self.client = genai.Client(api_key=api_key) def embed( self, text, memory_action: Literal["add", "search", "update"] | None = None ): """ Get the embedding for the given text using Google Generative AI. Args: text (str): The text to embed. memory_action (optional): The type of embedding to use. Must be one of "add", "search", or "update". Defaults to None. Returns: list: The embedding vector. """ text = text.replace("\n", " ") # Create config for embedding parameters config = types.EmbedContentConfig( output_dimensionality=self.config.embedding_dims ) # Call the embed_content method with the correct parameters response = self.client.models.embed_content( model=self.config.model, contents=text, config=config ) return response.embeddings[0].values

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shrijayan/SelfMemory'

If you have feedback or need assistance with the MCP directory API, please join our Discord server