Skip to content

Commit 3288694

Browse files
authored
Merge branch 'binary-husky:master' into master
2 parents 2a5d6e2 + ee1a9e7 commit 3288694

File tree

3 files changed

+90
-5
lines changed

3 files changed

+90
-5
lines changed

config.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
Configuration reading priority: environment variable > config_private.py > config.py
88
"""
99

10-
# [step 1-1]>> ( 接入GPT等模型 ) API_KEY = "sk-123456789xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789"。极少数情况下,还需要填写组织(格式如org-123456789abcdefghijklmno的),请向下翻,找 API_ORG 设置项
10+
# [step 1-1]>> ( 接入OpenAI模型家族 ) API_KEY = "sk-123456789xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789"。极少数情况下,还需要填写组织(格式如org-123456789abcdefghijklmno的),请向下翻,找 API_ORG 设置项
1111
API_KEY = "在此处填写APIKEY" # 可同时填写多个API-KEY,用英文逗号分割,例如API_KEY = "sk-openaikey1,sk-openaikey2,fkxxxx-api2dkey3,azure-apikey4"
1212

13-
# [step 1-2]>> ( 接入通义 qwen-max ) 接入通义千问在线大模型,api-key获取地址 https://dashscope.console.aliyun.com/
14-
DASHSCOPE_API_KEY = "" # 阿里灵积云API_KEY
13+
# [step 1-2]>> ( 强烈推荐!接入通义家族 & 大模型服务平台百炼 ) 接入通义千问在线大模型,api-key获取地址 https://dashscope.console.aliyun.com/
14+
DASHSCOPE_API_KEY = "" # 阿里灵积云API_KEY(用于接入qwen-max,dashscope-qwen3-14b,dashscope-deepseek-r1等)
1515

1616
# [step 1-3]>> ( 接入 deepseek-reasoner, 即 deepseek-r1 ) 深度求索(DeepSeek) API KEY,默认请求地址为"https://api.deepseek.com/v1/chat/completions"
1717
DEEPSEEK_API_KEY = ""
@@ -52,6 +52,7 @@
5252
"siliconflow-Qwen/Qwen2.5-32B-Instruct","siliconflow-Qwen/Qwen2.5-14B-Instruct"
5353
"volcengine-deepseek-r1-250120", "volcengine-deepseek-v3-241226",
5454
"dashscope-deepseek-r1", "dashscope-deepseek-v3",
55+
"dashscope-qwen3-14b", "dashscope-qwen3-235b-a22b", "dashscope-qwen3-32b",
5556
]
5657

5758
EMBEDDING_MODEL = "text-embedding-3-small"

request_llms/bridge_all.py

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ def decode(self, *args, **kwargs):
284284
"fn_with_ui": chatgpt_ui,
285285
"fn_without_ui": chatgpt_noui,
286286
"endpoint": openai_endpoint,
287+
"can_multi_thread": True,
287288
"max_token": 128000,
288289
"tokenizer": tokenizer_gpt4,
289290
"token_cnt": get_token_num_gpt4,
@@ -368,6 +369,50 @@ def decode(self, *args, **kwargs):
368369
"openai_force_temperature_one": True,
369370
},
370371

372+
"gpt-4.1":{
373+
"fn_with_ui": chatgpt_ui,
374+
"fn_without_ui": chatgpt_noui,
375+
"has_multimodal_capacity": True,
376+
"endpoint": openai_endpoint,
377+
"max_token": 828000,
378+
"tokenizer": tokenizer_gpt4,
379+
"token_cnt": get_token_num_gpt4,
380+
},
381+
382+
"gpt-4.1-mini":{
383+
"fn_with_ui": chatgpt_ui,
384+
"fn_without_ui": chatgpt_noui,
385+
"has_multimodal_capacity": True,
386+
"endpoint": openai_endpoint,
387+
"max_token": 828000,
388+
"tokenizer": tokenizer_gpt4,
389+
"token_cnt": get_token_num_gpt4,
390+
},
391+
392+
"o3":{
393+
"fn_with_ui": chatgpt_ui,
394+
"fn_without_ui": chatgpt_noui,
395+
"has_multimodal_capacity": True,
396+
"endpoint": openai_endpoint,
397+
"max_token": 828000,
398+
"tokenizer": tokenizer_gpt4,
399+
"token_cnt": get_token_num_gpt4,
400+
"openai_disable_system_prompt": True,
401+
"openai_disable_stream": True,
402+
"openai_force_temperature_one": True,
403+
},
404+
405+
"o4-mini":{
406+
"fn_with_ui": chatgpt_ui,
407+
"fn_without_ui": chatgpt_noui,
408+
"has_multimodal_capacity": True,
409+
"can_multi_thread": True,
410+
"endpoint": openai_endpoint,
411+
"max_token": 828000,
412+
"tokenizer": tokenizer_gpt4,
413+
"token_cnt": get_token_num_gpt4,
414+
},
415+
371416
"gpt-4-turbo": {
372417
"fn_with_ui": chatgpt_ui,
373418
"fn_without_ui": chatgpt_noui,
@@ -878,7 +923,10 @@ def decode(self, *args, **kwargs):
878923
logger.error(trimmed_format_exc())
879924

880925
# -=-=-=-=-=-=- 阿里云百炼(通义)-在线模型 -=-=-=-=-=-=-
881-
qwen_models = ["qwen-max-latest", "qwen-max-2025-01-25","qwen-max","qwen-turbo","qwen-plus","dashscope-deepseek-r1","dashscope-deepseek-v3"]
926+
qwen_models = ["qwen-max-latest", "qwen-max-2025-01-25","qwen-max","qwen-turbo","qwen-plus",
927+
"dashscope-deepseek-r1","dashscope-deepseek-v3",
928+
"dashscope-qwen3-14b", "dashscope-qwen3-235b-a22b", "dashscope-qwen3-qwen3-32b",
929+
]
882930
if any(item in qwen_models for item in AVAIL_LLM_MODELS):
883931
try:
884932
from .bridge_qwen import predict_no_ui_long_connection as qwen_noui
@@ -947,6 +995,34 @@ def decode(self, *args, **kwargs):
947995
"max_token": 57344,
948996
"tokenizer": tokenizer_gpt35,
949997
"token_cnt": get_token_num_gpt35,
998+
},
999+
"dashscope-qwen3-14b": {
1000+
"fn_with_ui": qwen_ui,
1001+
"fn_without_ui": qwen_noui,
1002+
"enable_reasoning": True,
1003+
"can_multi_thread": True,
1004+
"endpoint": None,
1005+
"max_token": 129024,
1006+
"tokenizer": tokenizer_gpt35,
1007+
"token_cnt": get_token_num_gpt35,
1008+
},
1009+
"dashscope-qwen3-235b-a22b": {
1010+
"fn_with_ui": qwen_ui,
1011+
"fn_without_ui": qwen_noui,
1012+
"can_multi_thread": True,
1013+
"endpoint": None,
1014+
"max_token": 129024,
1015+
"tokenizer": tokenizer_gpt35,
1016+
"token_cnt": get_token_num_gpt35,
1017+
},
1018+
"dashscope-qwen3-32b": {
1019+
"fn_with_ui": qwen_ui,
1020+
"fn_without_ui": qwen_noui,
1021+
"can_multi_thread": True,
1022+
"endpoint": None,
1023+
"max_token": 129024,
1024+
"tokenizer": tokenizer_gpt35,
1025+
"token_cnt": get_token_num_gpt35,
9501026
}
9511027
})
9521028
except:

shared_utils/key_pattern_manager.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,22 @@ def what_keys(keys):
7979

8080
return f"检测到: OpenAI Key {avail_key_list['OpenAI Key']} 个, Azure Key {avail_key_list['Azure Key']} 个, API2D Key {avail_key_list['API2D Key']} 个"
8181

82+
def is_o_family_for_openai(llm_model):
83+
if not llm_model.startswith('o'):
84+
return False
85+
if llm_model in ['o1', 'o2', 'o3', 'o4', 'o5', 'o6', 'o7', 'o8']:
86+
return True
87+
if llm_model[:3] in ['o1-', 'o2-', 'o3-', 'o4-', 'o5-', 'o6-', 'o7-', 'o8-']:
88+
return True
89+
return False
8290

8391
def select_api_key(keys, llm_model):
8492
import random
8593
avail_key_list = []
8694
key_list = keys.split(',')
8795

8896
if llm_model.startswith('gpt-') or llm_model.startswith('chatgpt-') or \
89-
llm_model.startswith('one-api-') or llm_model == 'o1' or llm_model.startswith('o1-'):
97+
llm_model.startswith('one-api-') or is_o_family_for_openai(llm_model):
9098
for k in key_list:
9199
if is_openai_api_key(k): avail_key_list.append(k)
92100

0 commit comments

Comments
 (0)