dfa32412 commited on
Commit
622fbb2
·
verified ·
1 Parent(s): fdb349c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -28
app.py CHANGED
@@ -15,7 +15,7 @@ import os
15
  from dotenv import load_dotenv
16
 
17
  from apscheduler.schedulers.background import BackgroundScheduler
18
-
19
  # 加载环境变量
20
  load_dotenv()
21
 
@@ -50,22 +50,22 @@ TOKEN_INDEX = 0
50
  # 模型映射表
51
  MODEL_MAPPING = {
52
  "gpt-4o-mini": "openai/gpt-4o-mini",
53
- "gpt-4o": "openai/gpt-4o",
54
- "o1": "openai/o1",
55
- "o3-mini": "oopenai/o3-mini",
56
- "claude-3.5-sonnet": "anthropic/claude-3.5-sonnet",
57
- "claude-3.7-sonnet": "anthropic/claude-3.7-sonnet",
58
- "grok-3": "x-ai/grok-3",
59
- "grok-3-reasoner":"x-ai/grok-3-reasoner",
60
- "deepseek-v3":"deepseek/deepseek-chat",
61
- "deepseek-r1":"deepseek/deepseek-r1",
62
- "gemini-2.0-flash":"google/gemini-2.0-flash",
63
- "gemini-2.0-pro-exp":"google/gemini-2.0-pro-exp-02-05",
64
- "gemini-2.0-flash-thinking-exp":"google/gemini-2.0-flash-thinking-exp-1219",
65
- "qwq-32b":"qwen/qwq-32b",
66
- "qwen-max":"qwen/qwen-max",
67
- "DeepSeek-V3-0324":"deepseek/deepseek-chat-v3-0324",
68
- "gpt-4o-image": "openai/gpt-4o-image"
69
  }
70
 
71
  # Token负载均衡状态
@@ -131,15 +131,17 @@ class ChatCompletionRequest(BaseModel):
131
  frequency_penalty: Optional[float] = 0
132
  user: Optional[str] = None
133
 
 
134
  def reset_task():
135
  try:
136
- for key,value in token_status.items():
137
  token_status[key]["total"] = value["count"]
138
  token_status[key]["active"] = True
139
  print(f"执行重置任务... 当前时间: {datetime.now()}")
140
  except Exception as e:
141
  print(f"任务执行出错: {e}")
142
 
 
143
  # 初始化token状态
144
  async def initialize_token_status():
145
  """初始化检查所有token的状态和余额"""
@@ -228,7 +230,8 @@ def format_messages_for_deepsider(messages: List[ChatMessage]) -> str:
228
  next_code = False
229
  continue
230
 
231
- if msg.role == 'assistant' and ('验证码提示' in msg.content or '验证码已发送至您的邮箱' in msg.content) and 'clId' in msg.content:
 
232
  next_code = True
233
  continue
234
 
@@ -241,7 +244,7 @@ def format_messages_for_deepsider(messages: List[ChatMessage]) -> str:
241
  prompt += f"Human: {msg.content}\n\n"
242
  elif role == "assistant":
243
  content = msg.content
244
- re.sub(r'\[clId:(.*)]','' ,content)
245
  prompt += f"Assistant: {msg.content}\n\n"
246
 
247
  else:
@@ -363,7 +366,7 @@ async def stream_openai_response(response, request_id: str, model: str, token: s
363
 
364
  elif data.get('code') == 203:
365
  # 尾巴
366
- if codeFlag:
367
  chunk = {
368
  "id": f"chatcmpl-{request_id}",
369
  "object": "chat.completion.chunk",
@@ -471,19 +474,24 @@ async def create_chat_completion(
471
 
472
  # 映射模型
473
  deepsider_model = map_openai_to_deepsider_model(chat_request.model)
474
-
475
  # 验证验证码
476
  isCode = False
477
  clId = None
478
 
479
  if len(chat_request.messages) > 1:
480
  msg = chat_request.messages[-2]
481
- if msg.role == 'assistant' and ('验证码提示' in msg.content or '验证码已发送至您的邮箱' in msg.content) and 'clId' in msg.content:
 
482
  isCode = True
483
- clId = re.search(r'\[clId:(.*)]', msg.content).group(1)
484
-
485
- # 准备DeepSider API所需的提示
486
- if isCode:
 
 
 
 
487
  prompt = chat_request.messages[-1].content
488
  else:
489
  prompt = format_messages_for_deepsider(chat_request.messages)
@@ -496,7 +504,7 @@ async def create_chat_completion(
496
  "timezone": "Asia/Shanghai"
497
  }
498
 
499
- if isCode:
500
  payload["clId"] = clId
501
 
502
  # 获取当前token
@@ -632,6 +640,7 @@ async def startup_event():
632
  active_tokens = sum(1 for s in token_status.values() if s["active"])
633
  logger.info(f"初始化完成 活跃token: {active_tokens}/{len(DEEPSIDER_TOKEN)}")
634
 
 
635
  # 主程序
636
  if __name__ == "__main__":
637
  scheduler = BackgroundScheduler()
 
15
  from dotenv import load_dotenv
16
 
17
  from apscheduler.schedulers.background import BackgroundScheduler
18
+
19
  # 加载环境变量
20
  load_dotenv()
21
 
 
50
  # 模型映射表
51
  MODEL_MAPPING = {
52
  "gpt-4o-mini": "openai/gpt-4o-mini",
53
+ "gpt-4o": "openai/gpt-4o",
54
+ "o1": "openai/o1",
55
+ "o3-mini": "openai/o3-mini",
56
+ "claude-3.5-sonnet": "anthropic/claude-3.5-sonnet",
57
+ "claude-3.7-sonnet": "anthropic/claude-3.7-sonnet",
58
+ "grok-3": "x-ai/grok-3",
59
+ "grok-3-reasoner": "x-ai/grok-3-reasoner",
60
+ "deepseek-v3": "deepseek/deepseek-chat",
61
+ "deepseek-r1": "deepseek/deepseek-r1",
62
+ "gemini-2.0-flash": "google/gemini-2.0-flash",
63
+ "gemini-2.0-pro-exp": "google/gemini-2.0-pro-exp-02-05",
64
+ "gemini-2.0-flash-thinking-exp": "google/gemini-2.0-flash-thinking-exp-1219",
65
+ "qwq-32b": "qwen/qwq-32b",
66
+ "qwen-max": "qwen/qwen-max",
67
+ "DeepSeek-V3-0324": "deepseek/deepseek-chat-v3-0324",
68
+ "gpt-4o-image": "openai/gpt-4o-image"
69
  }
70
 
71
  # Token负载均衡状态
 
131
  frequency_penalty: Optional[float] = 0
132
  user: Optional[str] = None
133
 
134
+
135
  def reset_task():
136
  try:
137
+ for key, value in token_status.items():
138
  token_status[key]["total"] = value["count"]
139
  token_status[key]["active"] = True
140
  print(f"执行重置任务... 当前时间: {datetime.now()}")
141
  except Exception as e:
142
  print(f"任务执行出错: {e}")
143
 
144
+
145
  # 初始化token状态
146
  async def initialize_token_status():
147
  """初始化检查所有token的状态和余额"""
 
230
  next_code = False
231
  continue
232
 
233
+ if msg.role == 'assistant' and (
234
+ '验证码提示' in msg.content or '验证码已发送至您的邮箱' in msg.content) and 'clId' in msg.content:
235
  next_code = True
236
  continue
237
 
 
244
  prompt += f"Human: {msg.content}\n\n"
245
  elif role == "assistant":
246
  content = msg.content
247
+ re.sub(r'\[clId:(.*)]', '', content)
248
  prompt += f"Assistant: {msg.content}\n\n"
249
 
250
  else:
 
366
 
367
  elif data.get('code') == 203:
368
  # 尾巴
369
+ if codeFlag or model == 'gpt-4o-image':
370
  chunk = {
371
  "id": f"chatcmpl-{request_id}",
372
  "object": "chat.completion.chunk",
 
474
 
475
  # 映射模型
476
  deepsider_model = map_openai_to_deepsider_model(chat_request.model)
477
+ model = chat_request.model
478
  # 验证验证码
479
  isCode = False
480
  clId = None
481
 
482
  if len(chat_request.messages) > 1:
483
  msg = chat_request.messages[-2]
484
+ if msg.role == 'assistant' and (
485
+ '验证码提示' in msg.content or '验证码已发送至您的邮箱' in msg.content) and 'clId' in msg.content:
486
  isCode = True
487
+
488
+ pattern = r'\[clId:(.*)]'
489
+ match = re.search(pattern, msg.content)
490
+ if match:
491
+ clId = match.group(1)
492
+
493
+ # 准备DeepSider API所需的提示
494
+ if isCode or model == 'gpt-4o-image':
495
  prompt = chat_request.messages[-1].content
496
  else:
497
  prompt = format_messages_for_deepsider(chat_request.messages)
 
504
  "timezone": "Asia/Shanghai"
505
  }
506
 
507
+ if isCode or model == 'gpt-4o-image':
508
  payload["clId"] = clId
509
 
510
  # 获取当前token
 
640
  active_tokens = sum(1 for s in token_status.values() if s["active"])
641
  logger.info(f"初始化完成 活跃token: {active_tokens}/{len(DEEPSIDER_TOKEN)}")
642
 
643
+
644
  # 主程序
645
  if __name__ == "__main__":
646
  scheduler = BackgroundScheduler()