Niansuh commited on
Commit
a660cc0
·
verified ·
1 Parent(s): 5cecd79

Update api/utils.py

Browse files
Files changed (1) hide show
  1. api/utils.py +20 -5
api/utils.py CHANGED
@@ -15,7 +15,8 @@ from api.config import (
15
  AGENT_MODE,
16
  TRENDING_AGENT_MODE,
17
  MODEL_PREFIXES,
18
- MODEL_REFERERS
 
19
  )
20
  from api.models import ChatRequest
21
  from api.logger import setup_logger
@@ -80,19 +81,23 @@ def strip_model_prefix(content: str, model_prefix: Optional[str] = None) -> str:
80
  # Process streaming response with headers from config.py
81
  async def process_streaming_response(request: ChatRequest):
82
  chat_id = generate_chat_id()
 
 
83
  agent_mode = AGENT_MODE.get(request.model, {})
84
  trending_agent_mode = TRENDING_AGENT_MODE.get(request.model, {})
85
  model_prefix = MODEL_PREFIXES.get(request.model, "")
86
  referer_path = MODEL_REFERERS.get(request.model, f"/?model={request.model}")
87
  referer_url = f"{BASE_URL}{referer_path}"
88
 
89
- # Generate headers for API chat request
 
 
90
  headers_api_chat = get_headers_api_chat(referer_url)
91
 
92
  # Introduce delay for 'o1-preview' model
93
  if request.model == 'o1-preview':
94
- delay_seconds = random.randint(1, 60)
95
- logger.info(f"Introducing a delay of {delay_seconds} seconds for model 'o1-preview'")
96
  await asyncio.sleep(delay_seconds)
97
 
98
  json_data = {
@@ -151,6 +156,8 @@ async def process_streaming_response(request: ChatRequest):
151
  # Process non-streaming response with headers from config.py
152
  async def process_non_streaming_response(request: ChatRequest):
153
  chat_id = generate_chat_id()
 
 
154
  agent_mode = AGENT_MODE.get(request.model, {})
155
  trending_agent_mode = TRENDING_AGENT_MODE.get(request.model, {})
156
  model_prefix = MODEL_PREFIXES.get(request.model, "")
@@ -158,10 +165,18 @@ async def process_non_streaming_response(request: ChatRequest):
158
  referer_url = f"{BASE_URL}{referer_path}"
159
  chat_url = f"{BASE_URL}/chat/{chat_id}?model={request.model}"
160
 
161
- # Generate headers for API chat request and chat request
 
 
162
  headers_api_chat = get_headers_api_chat(referer_url)
163
  headers_chat = get_headers_chat(chat_url, next_action=str(uuid.uuid4()), next_router_state_tree=json.dumps([""]))
164
 
 
 
 
 
 
 
165
  json_data = {
166
  "id": chat_id,
167
  "messages": [message_to_dict(msg, model_prefix=model_prefix) for msg in request.messages],
 
15
  AGENT_MODE,
16
  TRENDING_AGENT_MODE,
17
  MODEL_PREFIXES,
18
+ MODEL_REFERERS,
19
+ common_headers
20
  )
21
  from api.models import ChatRequest
22
  from api.logger import setup_logger
 
81
  # Process streaming response with headers from config.py
82
  async def process_streaming_response(request: ChatRequest):
83
  chat_id = generate_chat_id()
84
+ logger.info(f"Generated Chat ID: {chat_id}")
85
+
86
  agent_mode = AGENT_MODE.get(request.model, {})
87
  trending_agent_mode = TRENDING_AGENT_MODE.get(request.model, {})
88
  model_prefix = MODEL_PREFIXES.get(request.model, "")
89
  referer_path = MODEL_REFERERS.get(request.model, f"/?model={request.model}")
90
  referer_url = f"{BASE_URL}{referer_path}"
91
 
92
+ # Generate headers for API chat request with dynamic Referer
93
+ dynamic_headers = common_headers.copy()
94
+ dynamic_headers['Referer'] = referer_url
95
  headers_api_chat = get_headers_api_chat(referer_url)
96
 
97
  # Introduce delay for 'o1-preview' model
98
  if request.model == 'o1-preview':
99
+ delay_seconds = random.randint(20, 60)
100
+ logger.info(f"Introducing a delay of {delay_seconds} seconds for model 'o1-preview' (Chat ID: {chat_id})")
101
  await asyncio.sleep(delay_seconds)
102
 
103
  json_data = {
 
156
  # Process non-streaming response with headers from config.py
157
  async def process_non_streaming_response(request: ChatRequest):
158
  chat_id = generate_chat_id()
159
+ logger.info(f"Generated Chat ID: {chat_id}")
160
+
161
  agent_mode = AGENT_MODE.get(request.model, {})
162
  trending_agent_mode = TRENDING_AGENT_MODE.get(request.model, {})
163
  model_prefix = MODEL_PREFIXES.get(request.model, "")
 
165
  referer_url = f"{BASE_URL}{referer_path}"
166
  chat_url = f"{BASE_URL}/chat/{chat_id}?model={request.model}"
167
 
168
+ # Generate headers for API chat request and chat request with dynamic Referer
169
+ dynamic_headers = common_headers.copy()
170
+ dynamic_headers['Referer'] = referer_url
171
  headers_api_chat = get_headers_api_chat(referer_url)
172
  headers_chat = get_headers_chat(chat_url, next_action=str(uuid.uuid4()), next_router_state_tree=json.dumps([""]))
173
 
174
+ # Introduce delay for 'o1-preview' model
175
+ if request.model == 'o1-preview':
176
+ delay_seconds = random.randint(20, 60)
177
+ logger.info(f"Introducing a delay of {delay_seconds} seconds for model 'o1-preview' (Chat ID: {chat_id})")
178
+ await asyncio.sleep(delay_seconds)
179
+
180
  json_data = {
181
  "id": chat_id,
182
  "messages": [message_to_dict(msg, model_prefix=model_prefix) for msg in request.messages],