ReeInk commited on
Commit
601c36e
1 Parent(s): 15b7cd6

加载环境变量作为配置

Browse files
Files changed (1) hide show
  1. config.py +29 -18
config.py CHANGED
@@ -1,8 +1,11 @@
 
 
1
  # [step 1]>> 例如: API_KEY = "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" (此key无效)
2
- API_KEY = "sk-此处填API密钥" # 可同时填写多个API-KEY,用英文逗号分割,例如API_KEY = "sk-openaikey1,sk-openaikey2,fkxxxx-api2dkey1,fkxxxx-api2dkey2"
 
3
 
4
  # [step 2]>> 改为True应用代理,如果直接在海外服务器部署,此处不修改
5
- USE_PROXY = False
6
  if USE_PROXY:
7
  # 填写格式是 [协议]:// [地址] :[端口],填写之前不要忘记把USE_PROXY改成True,如果直接在海外服务器部署,此处不修改
8
  # 例如 "socks5h://localhost:11284"
@@ -13,62 +16,70 @@ if USE_PROXY:
13
  # 代理网络的地址,打开你的*学*网软件查看代理的协议(socks5/http)、地址(localhost)和端口(11284)
14
  proxies = {
15
  # [协议]:// [地址] :[端口]
16
- "http": "socks5h://localhost:11284",
17
- "https": "socks5h://localhost:11284",
18
  }
19
  else:
20
  proxies = None
21
 
22
  # [step 3]>> 多线程函数插件中,默认允许多少路线程同时访问OpenAI。Free trial users的限制是每分钟3次,Pay-as-you-go users的限制是每分钟3500次
23
  # 一言以蔽之:免费用户填3,OpenAI绑了信用卡的用户可以填 16 或者更高。提高限制请查询:https://platform.openai.com/docs/guides/rate-limits/overview
24
- DEFAULT_WORKER_NUM = 3
25
 
26
 
27
  # [step 4]>> 以下配置可以优化体验,但大部分场合下并不需要修改
28
  # 对话窗的高度
29
- CHATBOT_HEIGHT = 1115
30
 
31
  # 代码高亮
32
- CODE_HIGHLIGHT = True
33
 
34
  # 窗口布局
35
- LAYOUT = "LEFT-RIGHT" # "LEFT-RIGHT"(左右布局) # "TOP-DOWN"(上下布局)
36
- DARK_MODE = True # "LEFT-RIGHT"(左右布局) # "TOP-DOWN"(上下布局)
37
 
38
  # 发送请求到OpenAI后,等待多久判定为超时
39
- TIMEOUT_SECONDS = 30
40
 
41
  # 网页的端口, -1代表随机端口
42
- WEB_PORT = -1
43
 
44
  # 如果OpenAI不响应(网络卡顿、代理失败、KEY失效),重试的次数限制
45
- MAX_RETRY = 2
46
 
47
  # OpenAI模型选择是(gpt4现在只对申请成功的人开放,体验gpt-4可以试试api2d)
48
- LLM_MODEL = "gpt-3.5-turbo" # 可选 ↓↓↓
49
  AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "newbing"]
50
 
51
  # 本地LLM模型如ChatGLM的执行方式 CPU/GPU
52
- LOCAL_MODEL_DEVICE = "cpu" # 可选 "cuda"
53
 
54
  # 设置gradio的并行线程数(不需要修改)
55
- CONCURRENT_COUNT = 100
56
 
57
  # 设置用户名和密码(不需要修改)(相关功能不稳定,与gradio版本和网络都相关,如果本地使用不建议加这个)
58
  # [("username", "password"), ("username2", "password2"), ...]
59
  AUTHENTICATION = []
 
 
 
 
60
 
61
  # 重新URL重新定向,实现更换API_URL的作用(常规情况下,不要修改!!)
62
  # (高危设置!通过修改此设置,您将把您的API-KEY和对话隐私完全暴露给您设定的中间人!)
63
  # 格式 {"https://api.openai.com/v1/chat/completions": "在这里填写重定向的api.openai.com的URL"}
64
  # 例如 API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions": "https://ai.open.com/api/conversation"}
65
  API_URL_REDIRECT = {}
 
 
 
 
66
 
67
  # 如果需要在二级路径下运行(常规情况下,不要修改!!)(需要配合修改main.py才能生效!)
68
- CUSTOM_PATH = "/"
69
 
70
  # 如果需要使用newbing,把newbing的长长的cookie放到这里
71
- NEWBING_STYLE = "creative" # ["creative", "balanced", "precise"]
72
- NEWBING_COOKIES = """
73
  your bing cookies here
74
  """
 
1
+ from os import environ
2
+
3
  # [step 1]>> 例如: API_KEY = "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" (此key无效)
4
+ API_KEY = environ.get("GPT_ACADEMIC_API_KEY") or "sk-此处填API密钥"
5
+ # 可同时填写多个API-KEY,用英文逗号分割,例如API_KEY = "sk-openaikey1,sk-openaikey2,fkxxxx-api2dkey1,fkxxxx-api2dkey2"
6
 
7
  # [step 2]>> 改为True应用代理,如果直接在海外服务器部署,此处不修改
8
+ USE_PROXY = environ.get("GPT_ACADEMIC_USE_PROXY") == "true" or False
9
  if USE_PROXY:
10
  # 填写格式是 [协议]:// [地址] :[端口],填写之前不要忘记把USE_PROXY改成True,如果直接在海外服务器部署,此处不修改
11
  # 例如 "socks5h://localhost:11284"
 
16
  # 代理网络的地址,打开你的*学*网软件查看代理的协议(socks5/http)、地址(localhost)和端口(11284)
17
  proxies = {
18
  # [协议]:// [地址] :[端口]
19
+ "http": environ.get("GPT_ACADEMIC_HTTP_PROXY") or "socks5h://localhost:11284",
20
+ "https": environ.get("GPT_ACADEMIC_HTTPS_PROXY") or "socks5h://localhost:11284",
21
  }
22
  else:
23
  proxies = None
24
 
25
  # [step 3]>> 多线程函数插件中,默认允许多少路线程同时访问OpenAI。Free trial users的限制是每分钟3次,Pay-as-you-go users的限制是每分钟3500次
26
  # 一言以蔽之:免费用户填3,OpenAI绑了信用卡的用户可以填 16 或者更高。提高限制请查询:https://platform.openai.com/docs/guides/rate-limits/overview
27
+ DEFAULT_WORKER_NUM = int(environ.get("GPT_ACADEMIC_DEFAULT_WORKER_NUM") or 3)
28
 
29
 
30
  # [step 4]>> 以下配置可以优化体验,但大部分场合下并不需要修改
31
  # 对话窗的高度
32
+ CHATBOT_HEIGHT = int(environ.get("GPT_ACADEMIC_CHATBOT_HEIGHT") or 1115)
33
 
34
  # 代码高亮
35
+ CODE_HIGHLIGHT = environ.get("GPT_ACADEMIC_CODE_HIGHLIGHT") != "false" # 默认为True
36
 
37
  # 窗口布局
38
+ LAYOUT = environ.get("GPT_ACADEMIC_LAYOUT") or "LEFT-RIGHT" # "LEFT-RIGHT"(左右布局) # "TOP-DOWN"(上下布局)
39
+ DARK_MODE = environ.get("GPT_ACADEMIC_DARK_MODE") == "true" # 是否启用暗色模式,默认为False
40
 
41
  # 发送请求到OpenAI后,等待多久判定为超时
42
+ TIMEOUT_SECONDS = int(environ.get("GPT_ACADEMIC_TIMEOUT_SECONDS") or 30)
43
 
44
  # 网页的端口, -1代表随机端口
45
+ WEB_PORT = int(environ.get("GPT_ACADEMIC_WEB_PORT") or -1)
46
 
47
  # 如果OpenAI不响应(网络卡顿、代理失败、KEY失效),重试的次数限制
48
+ MAX_RETRY = int(environ.get("GPT_ACADEMIC_MAX_RETRY") or 2)
49
 
50
  # OpenAI模型选择是(gpt4现在只对申请成功的人开放,体验gpt-4可以试试api2d)
51
+ LLM_MODEL = environ.get("GPT_ACADEMIC_LLM_MODEL") or "gpt-3.5-turbo" # 可选 ↓↓↓
52
  AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "newbing"]
53
 
54
  # 本地LLM模型如ChatGLM的执行方式 CPU/GPU
55
+ LOCAL_MODEL_DEVICE = environ.get("GPT_ACADEMIC_LOCAL_MODEL_DEVICE") or "cpu" # 可选 "cuda"
56
 
57
  # 设置gradio的并行线程数(不需要修改)
58
+ CONCURRENT_COUNT = int(environ.get("GPT_ACADEMIC_CONCURRENT_COUNT") or 100)
59
 
60
  # 设置用户名和密码(不需要修改)(相关功能不稳定,与gradio版本和网络都相关,如果本地使用不建议加这个)
61
  # [("username", "password"), ("username2", "password2"), ...]
62
  AUTHENTICATION = []
63
+ # 如果设置`GPT_ACADEMIC_AUTHENTICATION`环境变量,格式为 "username,password;username2,password2;..."
64
+ if environ.get("GPT_ACADEMIC_AUTHENTICATION"):
65
+ for i in environ.get("GPT_ACADEMIC_AUTHENTICATION").split(";"):
66
+ AUTHENTICATION.append(tuple(i.split(",")))
67
 
68
  # 重新URL重新定向,实现更换API_URL的作用(常规情况下,不要修改!!)
69
  # (高危设置!通过修改此设置,您将把您的API-KEY和对话隐私完全暴露给您设定的中间人!)
70
  # 格式 {"https://api.openai.com/v1/chat/completions": "在这里填写重定向的api.openai.com的URL"}
71
  # 例如 API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions": "https://ai.open.com/api/conversation"}
72
  API_URL_REDIRECT = {}
73
+ # 如果设置`GPT_ACADEMIC_API_URL_REDIRECT`环境变量,格式为 "https://api.openai.com/v1/chat/completions,https://ai.open.com/api/conversation;..."
74
+ if environ.get("GPT_ACADEMIC_API_URL_REDIRECT"):
75
+ for i in environ.get("GPT_ACADEMIC_API_URL_REDIRECT").split(";"):
76
+ API_URL_REDIRECT[i.split(",")[0]] = i.split(",")[1]
77
 
78
  # 如果需要在二级路径下运行(常规情况下,不要修改!!)(需要配合修改main.py才能生效!)
79
+ CUSTOM_PATH = environ.get("GPT_ACADEMIC_CUSTOM_PATH") or "/"
80
 
81
  # 如果需要使用newbing,把newbing的长长的cookie放到这里
82
+ NEWBING_STYLE = environ.get("GPT_ACADEMIC_NEWBING_STYLE") or "creative" # ["creative", "balanced", "precise"]
83
+ NEWBING_COOKIES = environ.get("GPT_ACADEMIC_NEWBING_COOKIES") or """
84
  your bing cookies here
85
  """