forked from microsoft/semantic-kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.py
More file actions
73 lines (54 loc) · 2.38 KB
/
Copy pathsettings.py
File metadata and controls
73 lines (54 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright (c) Microsoft. All rights reserved.
from typing import Optional, Tuple
def openai_settings_from_dot_env() -> Tuple[str, Optional[str]]:
"""
Reads the OpenAI API key and organization ID from the .env file.
Returns:
Tuple[str, str]: The OpenAI API key, the OpenAI organization ID
"""
api_key, org_id = None, None
with open(".env", "r") as f:
lines = f.readlines()
for line in lines:
if line.startswith("OPENAI_API_KEY"):
parts = line.split("=")[1:]
api_key = "=".join(parts).strip().strip('"')
continue
if line.startswith("OPENAI_ORG_ID"):
parts = line.split("=")[1:]
org_id = "=".join(parts).strip().strip('"')
continue
assert api_key is not None, "OpenAI API key not found in .env file"
# It's okay if the org ID is not found (not required)
return api_key, org_id
def azure_openai_settings_from_dot_env(include_deployment=True) -> Tuple[str, str, str]:
"""
Reads the Azure OpenAI API key and endpoint from the .env file.
Returns:
Tuple[str, str, str]: The deployment name (or empty), Azure OpenAI API key,
and the endpoint
"""
deployment, api_key, endpoint = None, None, None
with open(".env", "r") as f:
lines = f.readlines()
for line in lines:
if include_deployment and line.startswith("AZURE_OPENAI_DEPLOYMENT_NAME"):
parts = line.split("=")[1:]
deployment = "=".join(parts).strip().strip('"')
continue
if line.startswith("AZURE_OPENAI_API_KEY"):
parts = line.split("=")[1:]
api_key = "=".join(parts).strip().strip('"')
continue
if line.startswith("AZURE_OPENAI_ENDPOINT"):
parts = line.split("=")[1:]
endpoint = "=".join(parts).strip().strip('"')
continue
# Azure requires the deployment name, the API key and the endpoint URL.
if include_deployment:
assert (
deployment is not None
), "Azure OpenAI deployment name not found in .env file"
assert api_key is not None, "Azure OpenAI API key not found in .env file"
assert endpoint is not None, "Azure OpenAI endpoint not found in .env file"
return deployment or "", api_key, endpoint