Files
hsa/.venv/lib/python3.10/site-packages/dashscope/common/api_key.py
2025-09-11 13:29:12 +00:00

44 lines
1.9 KiB
Python

import os
from typing import Optional
import dashscope
from dashscope.common.constants import (DEFAULT_DASHSCOPE_API_KEY_FILE_PATH,
DEFAULT_DASHSCOPE_CACHE_PATH)
from dashscope.common.error import AuthenticationError
def get_default_api_key():
if dashscope.api_key is not None:
# user set environment variable DASHSCOPE_API_KEY
return dashscope.api_key
elif dashscope.api_key_file_path:
# user set environment variable DASHSCOPE_API_KEY_FILE_PATH
with open(dashscope.api_key_file_path, 'rt',
encoding='utf-8') as f: # open with text mode.
return f.read().strip()
else: # Find the api key from default key file.
if os.path.exists(DEFAULT_DASHSCOPE_API_KEY_FILE_PATH):
with open(DEFAULT_DASHSCOPE_API_KEY_FILE_PATH,
'rt',
encoding='utf-8') as f:
return f.read().strip()
raise AuthenticationError(
'No api key provided. You can set by dashscope.api_key = your_api_key in code, ' # noqa: E501
'or you can set it via environment variable DASHSCOPE_API_KEY= your_api_key. ' # noqa: E501
'You can store your api key to a file, and use dashscope.api_key_file_path=api_key_file_path in code, ' # noqa: E501
'or you can set api key file path via environment variable DASHSCOPE_API_KEY_FILE_PATH, ' # noqa: E501
'You can call save_api_key to api_key_file_path or default path(~/.dashscope/api_key).' # noqa: E501
)
def save_api_key(api_key: str, api_key_file_path: Optional[str] = None):
if api_key_file_path is None:
os.makedirs(DEFAULT_DASHSCOPE_CACHE_PATH, exist_ok=True)
with open(DEFAULT_DASHSCOPE_API_KEY_FILE_PATH, 'w+') as f:
f.write(api_key)
else:
os.makedirs(os.path.dirname(api_key_file_path), exist_ok=True)
with open(api_key_file_path, 'w+') as f:
f.write(api_key)