diff --git a/docs/components/llms/config.mdx b/docs/components/llms/config.mdx index 4c9f2281..57c8f70c 100644 --- a/docs/components/llms/config.mdx +++ b/docs/components/llms/config.mdx @@ -29,7 +29,7 @@ iconType: "solid" Config values are applied in the following order of precedence (from highest to lowest): 1. Values explicitly set in the `config` object/dictionary -2. Environment variables (e.g., `OPENAI_API_KEY`, `OPENAI_API_BASE`) +2. Environment variables (e.g., `OPENAI_API_KEY`, `OPENAI_BASE_URL`) 3. Default values defined in the LLM implementation This means that values specified in the `config` will override corresponding environment variables, which in turn override default values. diff --git a/embedchain/embedchain/embedder/openai.py b/embedchain/embedchain/embedder/openai.py index d9f4c742..e14a1aa7 100644 --- a/embedchain/embedchain/embedder/openai.py +++ b/embedchain/embedchain/embedder/openai.py @@ -1,4 +1,5 @@ import os +import warnings from typing import Optional from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction @@ -16,7 +17,18 @@ class OpenAIEmbedder(BaseEmbedder): self.config.model = "text-embedding-ada-002" api_key = self.config.api_key or os.environ["OPENAI_API_KEY"] - api_base = self.config.api_base or os.environ.get("OPENAI_API_BASE") + api_base = ( + self.config.api_base + or os.environ.get("OPENAI_API_BASE") + or os.getenv("OPENAI_BASE_URL") + or "https://api.openai.com/v1" + ) + if os.environ.get("OPENAI_API_BASE"): + warnings.warn( + "The environment variable 'OPENAI_API_BASE' is deprecated and will be removed in the 0.1.140. " + "Please use 'OPENAI_BASE_URL' instead.", + DeprecationWarning + ) if api_key is None and os.getenv("OPENAI_ORGANIZATION") is None: raise ValueError("OPENAI_API_KEY or OPENAI_ORGANIZATION environment variables not provided") # noqa:E501 diff --git a/embedchain/embedchain/llm/openai.py b/embedchain/embedchain/llm/openai.py index a595ee60..ace14611 100644 --- a/embedchain/embedchain/llm/openai.py +++ b/embedchain/embedchain/llm/openai.py @@ -1,5 +1,6 @@ import json import os +import warnings from typing import Any, Callable, Dict, Optional, Type, Union from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler @@ -58,7 +59,19 @@ class OpenAILlm(BaseLlm): "model_kwargs": config.model_kwargs or {}, } api_key = config.api_key or os.environ["OPENAI_API_KEY"] - base_url = config.base_url or os.environ.get("OPENAI_API_BASE", None) + base_url = ( + config.base_url + or os.getenv("OPENAI_API_BASE") + or os.getenv("OPENAI_BASE_URL") + or "https://api.openai.com/v1" + ) + if os.environ.get("OPENAI_API_BASE"): + warnings.warn( + "The environment variable 'OPENAI_API_BASE' is deprecated and will be removed in the 0.1.140. " + "Please use 'OPENAI_BASE_URL' instead.", + DeprecationWarning + ) + if config.top_p: kwargs["top_p"] = config.top_p if config.default_headers: diff --git a/mem0/embeddings/openai.py b/mem0/embeddings/openai.py index 649f257b..1ec5bd1a 100644 --- a/mem0/embeddings/openai.py +++ b/mem0/embeddings/openai.py @@ -1,4 +1,5 @@ import os +import warnings from typing import Literal, Optional from openai import OpenAI @@ -15,7 +16,19 @@ class OpenAIEmbedding(EmbeddingBase): self.config.embedding_dims = self.config.embedding_dims or 1536 api_key = self.config.api_key or os.getenv("OPENAI_API_KEY") - base_url = self.config.openai_base_url or os.getenv("OPENAI_API_BASE") + base_url = ( + self.config.openai_base_url + or os.getenv("OPENAI_API_BASE") + or os.getenv("OPENAI_BASE_URL") + or "https://api.openai.com/v1" + ) + if os.environ.get("OPENAI_API_BASE"): + warnings.warn( + "The environment variable 'OPENAI_API_BASE' is deprecated and will be removed in the 0.1.80. " + "Please use 'OPENAI_BASE_URL' instead.", + DeprecationWarning + ) + self.client = OpenAI(api_key=api_key, base_url=base_url) def embed(self, text, memory_action: Optional[Literal["add", "search", "update"]] = None): diff --git a/mem0/llms/openai.py b/mem0/llms/openai.py index a9c302f8..078f1aa8 100644 --- a/mem0/llms/openai.py +++ b/mem0/llms/openai.py @@ -1,5 +1,5 @@ -import json import os +import warnings from typing import Dict, List, Optional from openai import OpenAI @@ -24,7 +24,19 @@ class OpenAILLM(LLMBase): ) else: api_key = self.config.api_key or os.getenv("OPENAI_API_KEY") - base_url = self.config.openai_base_url or os.getenv("OPENAI_API_BASE") or "https://api.openai.com/v1" + base_url = ( + self.config.openai_base_url + or os.getenv("OPENAI_API_BASE") + or os.getenv("OPENAI_BASE_URL") + or "https://api.openai.com/v1" + ) + if os.environ.get("OPENAI_API_BASE"): + warnings.warn( + "The environment variable 'OPENAI_API_BASE' is deprecated and will be removed in the 0.1.80. " + "Please use 'OPENAI_BASE_URL' instead.", + DeprecationWarning + ) + self.client = OpenAI(api_key=api_key, base_url=base_url) def _parse_response(self, response, tools):