This commit is contained in:
Samon Yu 2025-05-08 08:08:28 +00:00 committed by GitHub
commit 8ca6fe32d5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 111 additions and 3 deletions

View File

@ -16,6 +16,9 @@ DASHSCOPE_API_KEY = "" # 阿里灵积云API_KEY用于接入qwen-maxdashsco
# [step 1-3]>> ( 接入 deepseek-reasoner, 即 deepseek-r1 ) 深度求索(DeepSeek) API KEY默认请求地址为"https://api.deepseek.com/v1/chat/completions"
DEEPSEEK_API_KEY = ""
# [step 1-4]>> ( 接入 硅基智能API ) 硅基智能(Siliconflow) API KEY默认请求地址为"https://api.siliconflow.cn/v1/chat/completions"
SILICONFLOW_API_KEY = ""
# [step 2]>> 改为True应用代理。如果使用本地或无地域限制的大模型时此处不修改如果直接在海外服务器部署此处不修改
USE_PROXY = False
if USE_PROXY:
@ -29,7 +32,7 @@ if USE_PROXY:
"""
proxies = {
# [协议]:// [地址] :[端口]
"http": "socks5h://localhost:11284", # 再例如 "http": "http://127.0.0.1:7890",
"http": "socks5h://localhost:11284", # 再例如 "http": "http://127.0.0.1:7890",
"https": "socks5h://localhost:11284", # 再例如 "https": "http://127.0.0.1:7890",
}
else:
@ -43,7 +46,10 @@ AVAIL_LLM_MODELS = ["qwen-max", "o1-mini", "o1-mini-2024-09-12", "o1", "o1-2024-
"gpt-3.5-turbo-1106", "gpt-3.5-turbo-16k", "gpt-3.5-turbo", "azure-gpt-3.5",
"gpt-4", "gpt-4-32k", "azure-gpt-4", "glm-4", "glm-4v", "glm-3-turbo",
"gemini-1.5-pro", "chatglm3", "chatglm4",
"deepseek-chat", "deepseek-coder", "deepseek-reasoner",
"deepseek-chat", "deepseek-coder", "deepseek-reasoner",
"siliconflow-deepseek-ai/DeepSeek-R1","siliconflow-deepseek-ai/DeepSeek-V3", "siliconflow-Qwen/QwQ-32B",
"siliconflow-Qwen/Qwen2.5-32B-Instruct","siliconflow-Qwen/Qwen2.5-14B-Instruct"
"volcengine-deepseek-r1-250120", "volcengine-deepseek-v3-241226",
"dashscope-deepseek-r1", "dashscope-deepseek-v3",
"dashscope-qwen3-14b", "dashscope-qwen3-235b-a22b", "dashscope-qwen3-32b",
@ -72,7 +78,14 @@ EMBEDDING_MODEL = "text-embedding-3-small"
# 使用"one-api-*","vllm-*","ollama-*","openrouter-*"前缀直接使用非标准方式接入的模型,例如
# AVAIL_LLM_MODELS = ["one-api-claude-3-sonnet-20240229(max_token=100000)", "ollama-phi3(max_token=4096)","openrouter-openai/gpt-4o-mini","openrouter-openai/chatgpt-4o-latest"]
# --- --- --- ---
# 硅基智能(Siliconflow) API 可以通过 https://cloud.siliconflow.cn/models 或 https://docs.siliconflow.cn/api-reference/chat-completions/chat-completions 获取模型名称
# 在模型名称前添加"siliconflow-"前缀并放置在AVAIL_LLM_MODELS列表中。
# AVAIL_LLM_MODELS = [
# "siliconflow-deepseek-ai/DeepSeek-R1","siliconflow-deepseek-ai/DeepSeek-V3", "siliconflow-Qwen/QwQ-32B",
# "siliconflow-Qwen/Qwen2.5-32B-Instruct","siliconflow-Qwen/Qwen2.5-14B-Instruct","siliconflow-Qwen/Qwen2.5-7B-Instruct",
# "siliconflow-THUDM/GLM-Z1-32B-0414"
# ]
# --- --- --- ---
# --------------- 以下配置可以优化体验 ---------------

View File

@ -80,6 +80,7 @@ ollama_endpoint = "http://localhost:11434/api/chat"
yimodel_endpoint = "https://api.lingyiwanwu.com/v1/chat/completions"
deepseekapi_endpoint = "https://api.deepseek.com/v1/chat/completions"
grok_model_endpoint = "https://api.x.ai/v1/chat/completions"
siliconflow_endpoint = "https://api.siliconflow.cn/v1/chat/completions"
volcengine_endpoint = "https://ark.cn-beijing.volces.com/api/v3/chat/completions"
if not AZURE_ENDPOINT.endswith('/'): AZURE_ENDPOINT += '/'
@ -103,6 +104,7 @@ if ollama_endpoint in API_URL_REDIRECT: ollama_endpoint = API_URL_REDIRECT[ollam
if yimodel_endpoint in API_URL_REDIRECT: yimodel_endpoint = API_URL_REDIRECT[yimodel_endpoint]
if deepseekapi_endpoint in API_URL_REDIRECT: deepseekapi_endpoint = API_URL_REDIRECT[deepseekapi_endpoint]
if grok_model_endpoint in API_URL_REDIRECT: grok_model_endpoint = API_URL_REDIRECT[grok_model_endpoint]
if siliconflow_endpoint in API_URL_REDIRECT: siliconflow_endpoint = API_URL_REDIRECT[siliconflow_endpoint]
if volcengine_endpoint in API_URL_REDIRECT: volcengine_endpoint = API_URL_REDIRECT[volcengine_endpoint]
# 获取tokenizer
@ -314,6 +316,58 @@ model_info = {
"openai_disable_stream": True,
"openai_force_temperature_one": True,
},
"o4-mini": {
"fn_with_ui": chatgpt_ui,
"fn_without_ui": chatgpt_noui,
"has_multimodal_capacity": True,
"endpoint": openai_endpoint,
"max_token": 200000,
"tokenizer": tokenizer_gpt4,
"token_cnt": get_token_num_gpt4,
"openai_disable_system_prompt": True,
"openai_disable_stream": True,
"openai_force_temperature_one": True,
},
"gpt-4.1": {
"fn_with_ui": chatgpt_ui,
"fn_without_ui": chatgpt_noui,
"has_multimodal_capacity": True,
"endpoint": openai_endpoint,
"max_token": 200000,
"tokenizer": tokenizer_gpt4,
"token_cnt": get_token_num_gpt4,
"openai_disable_system_prompt": True,
"openai_disable_stream": True,
"openai_force_temperature_one": True,
},
"gpt-4.1-mini": {
"fn_with_ui": chatgpt_ui,
"fn_without_ui": chatgpt_noui,
"has_multimodal_capacity": True,
"endpoint": openai_endpoint,
"max_token": 200000,
"tokenizer": tokenizer_gpt4,
"token_cnt": get_token_num_gpt4,
"openai_disable_system_prompt": True,
"openai_disable_stream": True,
"openai_force_temperature_one": True,
},
"gpt-4.1-nano": {
"fn_with_ui": chatgpt_ui,
"fn_without_ui": chatgpt_noui,
"has_multimodal_capacity": True,
"endpoint": openai_endpoint,
"max_token": 200000,
"tokenizer": tokenizer_gpt4,
"token_cnt": get_token_num_gpt4,
"openai_disable_system_prompt": True,
"openai_disable_stream": True,
"openai_force_temperature_one": True,
},
"gpt-4.1":{
"fn_with_ui": chatgpt_ui,
@ -1416,6 +1470,47 @@ for model in [m for m in AVAIL_LLM_MODELS if m.startswith("openrouter-")]:
})
# -=-=-=-=-=-=- 硅基智能SiliconFlow在线API -=-=-=-=-=-=-
# 支持推理的模型系列,非完整模型名称
inference_model_series = [
"THUDM/GLM-Z1", "deepseek-ai/DeepSeek-R1", "Qwen/QwQ-32B"
]
for model in [m for m in AVAIL_LLM_MODELS if m.startswith("siliconflow-")]:
# 模型名称的格式为:
# "siliconflow-<model_name>"
# 其中:
# "siliconflow-" 是前缀(必要),在实际请求中,会将其去掉。
# "deepseek-ai/DeepSeek-R1" 是硅基智能提供的模型名(必要)。
try:
siliconflow_noui, siliconflow_ui = get_predict_function(
api_key_conf_name="SILICONFLOW_API_KEY",
# max_tokens 的说明https://docs.siliconflow.cn/cn/faqs/misc
max_output_token=4096,
disable_proxy=False,
# 去除前缀
model_remove_prefix = ["siliconflow-"]
)
# 判断是否具有推理能力
enable_reasoning = any(item in model for item in inference_model_series)
model_info.update(
{
model: {
"fn_with_ui": siliconflow_ui,
"fn_without_ui": siliconflow_noui,
"endpoint": siliconflow_endpoint,
"can_multi_thread": True,
"enable_reasoning": enable_reasoning,
},
}
)
logger.info(f" siliconflow 模型 {model} 已加载")
except:
logger.error(trimmed_format_exc())
# -=-=-=-=-=-=--=-=-=-=-=-=--=-=-=-=-=-=--=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-=-=-=- ☝️ 以上是模型路由 -=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=--=-=-=-=-=-=--=-=-=-=-=-=--=-=-=-=-=-=-=-=