repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | import os |
| #2 | from typing import Literal, Optional |
| #3 | |
| #4 | from azure.identity import DefaultAzureCredential, get_bearer_token_provider |
| #5 | from openai import AzureOpenAI |
| #6 | |
| #7 | from mem0.configs.embeddings.base import BaseEmbedderConfig |
| #8 | from mem0.embeddings.base import EmbeddingBase |
| #9 | |
| #10 | SCOPE = "https://cognitiveservices.azure.com/.default" |
| #11 | |
| #12 | |
| #13 | class AzureOpenAIEmbedding(EmbeddingBase): |
| #14 | def __init__(self, config: Optional[BaseEmbedderConfig] = None): |
| #15 | super().__init__(config) |
| #16 | |
| #17 | api_key = self.config.azure_kwargs.api_key or os.getenv("EMBEDDING_AZURE_OPENAI_API_KEY") |
| #18 | azure_deployment = self.config.azure_kwargs.azure_deployment or os.getenv("EMBEDDING_AZURE_DEPLOYMENT") |
| #19 | azure_endpoint = self.config.azure_kwargs.azure_endpoint or os.getenv("EMBEDDING_AZURE_ENDPOINT") |
| #20 | api_version = self.config.azure_kwargs.api_version or os.getenv("EMBEDDING_AZURE_API_VERSION") |
| #21 | default_headers = self.config.azure_kwargs.default_headers |
| #22 | |
| #23 | # If the API key is not provided or is a placeholder, use DefaultAzureCredential. |
| #24 | if api_key is None or api_key == "" or api_key == "your-api-key": |
| #25 | self.credential = DefaultAzureCredential() |
| #26 | azure_ad_token_provider = get_bearer_token_provider( |
| #27 | self.credential, |
| #28 | SCOPE, |
| #29 | ) |
| #30 | api_key = None |
| #31 | else: |
| #32 | azure_ad_token_provider = None |
| #33 | |
| #34 | self.client = AzureOpenAI( |
| #35 | azure_deployment=azure_deployment, |
| #36 | azure_endpoint=azure_endpoint, |
| #37 | azure_ad_token_provider=azure_ad_token_provider, |
| #38 | api_version=api_version, |
| #39 | api_key=api_key, |
| #40 | http_client=self.config.http_client, |
| #41 | default_headers=default_headers, |
| #42 | ) |
| #43 | |
| #44 | def embed(self, text, memory_action: Optional[Literal["add", "search", "update"]] = None): |
| #45 | """ |
| #46 | Get the embedding for the given text using OpenAI. |
| #47 | |
| #48 | Args: |
| #49 | text (str): The text to embed. |
| #50 | memory_action (optional): The type of embedding to use. Must be one of "add", "search", or "update". Defaults to None. |
| #51 | Returns: |
| #52 | list: The embedding vector. |
| #53 | """ |
| #54 | text = text.replace("\n", " ") |
| #55 | return self.client.embeddings.create(input=[text], model=self.config.model).data[0].embedding |
| #56 |