dont have openai_api_version by default (#4687)

an alternative to https://github.com/hwchase17/langchain/pull/4234/files
This commit is contained in:
Harrison Chase 2023-05-14 18:26:08 -07:00 committed by GitHub
parent cdc20d1203
commit a48810fb21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 4 deletions

View File

@ -22,7 +22,8 @@
"\n", "\n",
"os.environ[\"OPENAI_API_TYPE\"] = \"azure\"\n", "os.environ[\"OPENAI_API_TYPE\"] = \"azure\"\n",
"os.environ[\"OPENAI_API_BASE\"] = \"https://<your-endpoint.openai.azure.com/\"\n", "os.environ[\"OPENAI_API_BASE\"] = \"https://<your-endpoint.openai.azure.com/\"\n",
"os.environ[\"OPENAI_API_KEY\"] = \"your AzureOpenAI key\"" "os.environ[\"OPENAI_API_KEY\"] = \"your AzureOpenAI key\"\n",
"os.environ[\"OPENAI_API_VERSION\"] = \"2023-03-15-preview\""
] ]
}, },
{ {

View File

@ -77,8 +77,7 @@ class OpenAIEmbeddings(BaseModel, Embeddings):
openai = OpenAIEmbeddings(openai_api_key="my-api-key") openai = OpenAIEmbeddings(openai_api_key="my-api-key")
In order to use the library with Microsoft Azure endpoints, you need to set In order to use the library with Microsoft Azure endpoints, you need to set
the OPENAI_API_TYPE, OPENAI_API_BASE, OPENAI_API_KEY and optionally and the OPENAI_API_TYPE, OPENAI_API_BASE, OPENAI_API_KEY and OPENAI_API_VERSION.
API_VERSION.
The OPENAI_API_TYPE must be set to 'azure' and the others correspond to The OPENAI_API_TYPE must be set to 'azure' and the others correspond to
the properties of your endpoint. the properties of your endpoint.
In addition, the deployment name must be passed as the model parameter. In addition, the deployment name must be passed as the model parameter.
@ -90,6 +89,7 @@ class OpenAIEmbeddings(BaseModel, Embeddings):
os.environ["OPENAI_API_TYPE"] = "azure" os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_BASE"] = "https://<your-endpoint.openai.azure.com/" os.environ["OPENAI_API_BASE"] = "https://<your-endpoint.openai.azure.com/"
os.environ["OPENAI_API_KEY"] = "your AzureOpenAI key" os.environ["OPENAI_API_KEY"] = "your AzureOpenAI key"
os.environ["OPENAI_API_VERSION"] = "2023-03-15-preview"
from langchain.embeddings.openai import OpenAIEmbeddings from langchain.embeddings.openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings( embeddings = OpenAIEmbeddings(
@ -106,7 +106,7 @@ class OpenAIEmbeddings(BaseModel, Embeddings):
client: Any #: :meta private: client: Any #: :meta private:
model: str = "text-embedding-ada-002" model: str = "text-embedding-ada-002"
deployment: str = model # to support Azure OpenAI Service custom deployment names deployment: str = model # to support Azure OpenAI Service custom deployment names
openai_api_version: str = "2022-12-01" openai_api_version: Optional[str] = None
# to support Azure OpenAI Service custom endpoints # to support Azure OpenAI Service custom endpoints
openai_api_base: Optional[str] = None openai_api_base: Optional[str] = None
# to support Azure OpenAI Service custom endpoints # to support Azure OpenAI Service custom endpoints
@ -147,10 +147,15 @@ class OpenAIEmbeddings(BaseModel, Embeddings):
"OPENAI_API_TYPE", "OPENAI_API_TYPE",
default="", default="",
) )
if openai_api_type in ("azure", "azure_ad", "azuread"):
default_api_version = "2022-12-01"
else:
default_api_version = ""
openai_api_version = get_from_dict_or_env( openai_api_version = get_from_dict_or_env(
values, values,
"openai_api_version", "openai_api_version",
"OPENAI_API_VERSION", "OPENAI_API_VERSION",
default=default_api_version,
) )
openai_organization = get_from_dict_or_env( openai_organization = get_from_dict_or_env(
values, values,
@ -166,6 +171,7 @@ class OpenAIEmbeddings(BaseModel, Embeddings):
openai.organization = openai_organization openai.organization = openai_organization
if openai_api_base: if openai_api_base:
openai.api_base = openai_api_base openai.api_base = openai_api_base
if openai_api_type:
openai.api_version = openai_api_version openai.api_version = openai_api_version
if openai_api_type: if openai_api_type:
openai.api_type = openai_api_type openai.api_type = openai_api_type