Update api/utils.py
Browse files- 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(
|
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],
|