Spaces:
Sleeping
Sleeping
| from typing import List, Any | |
| import google.generativeai as genai | |
| from llama_index.core.embeddings import BaseEmbedding | |
| class GEmbeddings(BaseEmbedding): | |
| def __init__( | |
| self, | |
| model_name: str = 'models/text-embedding-004', | |
| **kwargs: Any, | |
| ) -> None: | |
| super().__init__(**kwargs) | |
| self._model_name = model_name | |
| def gai_embed_content(self, text: str) -> List[float]: | |
| return genai.embed_content(model=self._model_name, content=text, output_dimensionality=768) | |
| def _get_query_embedding(self, query: str) -> List[float]: | |
| embeddings = self.gai_embed_content(query) | |
| return embeddings['embedding'] | |
| def _get_text_embedding(self, text: str) -> List[float]: | |
| embeddings = self.gai_embed_content(text) | |
| return embeddings['embedding'] | |
| def _get_text_embeddings(self, texts: List[str]) -> List[List[float]]: | |
| embeddings = [ | |
| self.gai_embed_content(text)['embedding'] for text in texts | |
| ] | |
| return embeddings | |
| async def _aget_query_embedding(self, query: str) -> List[float]: | |
| return self._get_query_embedding(query) | |
| async def _aget_text_embedding(self, text: str) -> List[float]: | |
| return self._get_text_embedding(text) |