Update app.py
Browse files
app.py
CHANGED
@@ -48,6 +48,9 @@ sio_opts = {
|
|
48 |
}
|
49 |
|
50 |
def log_request(ip, route, status):
|
|
|
|
|
|
|
51 |
timestamp = datetime.now().isoformat()
|
52 |
logging.info(f"{timestamp} - {ip} - {route} - {status}")
|
53 |
|
@@ -137,7 +140,7 @@ def messages():
|
|
137 |
# 处理 stream 为 false 的情况
|
138 |
return handle_non_stream(previous_messages, msg_id, model, input_tokens)
|
139 |
|
140 |
-
#
|
141 |
log_request(request.remote_addr, request.path, 200)
|
142 |
|
143 |
def generate():
|
@@ -158,7 +161,7 @@ def messages():
|
|
158 |
yield create_event("ping", {"type": "ping"})
|
159 |
|
160 |
def on_connect():
|
161 |
-
logging.info("Connected to Perplexity AI")
|
162 |
emit_data = {
|
163 |
"version": "2.9",
|
164 |
"source": "default",
|
@@ -191,11 +194,11 @@ def messages():
|
|
191 |
response_event.set()
|
192 |
|
193 |
def on_disconnect():
|
194 |
-
logging.info("Disconnected from Perplexity AI")
|
195 |
response_event.set()
|
196 |
|
197 |
def on_connect_error(data):
|
198 |
-
logging.error(f"
|
199 |
response_text.append(f"Error connecting to Perplexity AI: {data}")
|
200 |
response_event.set()
|
201 |
|
@@ -219,11 +222,11 @@ def messages():
|
|
219 |
})
|
220 |
|
221 |
except Exception as e:
|
222 |
-
logging.error(f"Error during
|
223 |
yield create_event("content_block_delta", {
|
224 |
"type": "content_block_delta",
|
225 |
"index": 0,
|
226 |
-
"delta": {"type": "text_delta", "text": f"Error during
|
227 |
})
|
228 |
finally:
|
229 |
if sio.connected:
|
@@ -256,20 +259,20 @@ def handle_non_stream(previous_messages, msg_id, model, input_tokens):
|
|
256 |
response_text = []
|
257 |
|
258 |
def on_connect():
|
259 |
-
logging.info("Connected to Perplexity AI")
|
260 |
emit_data = {
|
261 |
"version": "2.9",
|
262 |
"source": "default",
|
263 |
"attachments": [],
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
}
|
274 |
sio.emit('perplexity_ask', (previous_messages, emit_data))
|
275 |
|
@@ -286,11 +289,11 @@ def handle_non_stream(previous_messages, msg_id, model, input_tokens):
|
|
286 |
response_event.set()
|
287 |
|
288 |
def on_disconnect():
|
289 |
-
logging.info("Disconnected from Perplexity AI")
|
290 |
response_event.set()
|
291 |
|
292 |
def on_connect_error(data):
|
293 |
-
logging.error(f"
|
294 |
response_text.append(f"Error connecting to Perplexity AI: {data}")
|
295 |
response_event.set()
|
296 |
|
@@ -324,7 +327,7 @@ def handle_non_stream(previous_messages, msg_id, model, input_tokens):
|
|
324 |
return Response(json.dumps(full_response, ensure_ascii=False), content_type='application/json')
|
325 |
|
326 |
except Exception as e:
|
327 |
-
logging.error(f"
|
328 |
return jsonify({"error": str(e)}), 500
|
329 |
finally:
|
330 |
if sio.connected:
|
|
|
48 |
}
|
49 |
|
50 |
def log_request(ip, route, status):
|
51 |
+
"""
|
52 |
+
记录请求的关键信息:IP地址、路由、状态码。
|
53 |
+
"""
|
54 |
timestamp = datetime.now().isoformat()
|
55 |
logging.info(f"{timestamp} - {ip} - {route} - {status}")
|
56 |
|
|
|
140 |
# 处理 stream 为 false 的情况
|
141 |
return handle_non_stream(previous_messages, msg_id, model, input_tokens)
|
142 |
|
143 |
+
# 记录请求的关键信息:IP地址、路由、状态码
|
144 |
log_request(request.remote_addr, request.path, 200)
|
145 |
|
146 |
def generate():
|
|
|
161 |
yield create_event("ping", {"type": "ping"})
|
162 |
|
163 |
def on_connect():
|
164 |
+
logging.info("Connected to Perplexity AI WebSocket")
|
165 |
emit_data = {
|
166 |
"version": "2.9",
|
167 |
"source": "default",
|
|
|
194 |
response_event.set()
|
195 |
|
196 |
def on_disconnect():
|
197 |
+
logging.info("Disconnected from Perplexity AI WebSocket")
|
198 |
response_event.set()
|
199 |
|
200 |
def on_connect_error(data):
|
201 |
+
logging.error(f"WebSocket connection error: {data}")
|
202 |
response_text.append(f"Error connecting to Perplexity AI: {data}")
|
203 |
response_event.set()
|
204 |
|
|
|
222 |
})
|
223 |
|
224 |
except Exception as e:
|
225 |
+
logging.error(f"Error during WebSocket connection: {str(e)}")
|
226 |
yield create_event("content_block_delta", {
|
227 |
"type": "content_block_delta",
|
228 |
"index": 0,
|
229 |
+
"delta": {"type": "text_delta", "text": f"Error during WebSocket connection: {str(e)}"},
|
230 |
})
|
231 |
finally:
|
232 |
if sio.connected:
|
|
|
259 |
response_text = []
|
260 |
|
261 |
def on_connect():
|
262 |
+
logging.info("Connected to Perplexity AI WebSocket")
|
263 |
emit_data = {
|
264 |
"version": "2.9",
|
265 |
"source": "default",
|
266 |
"attachments": [],
|
267 |
+
"language": "en-GB",
|
268 |
+
"timezone": "Europe/London",
|
269 |
+
"mode": "concise",
|
270 |
+
"is_related_query": False,
|
271 |
+
"is_default_related_query": False,
|
272 |
+
"visitor_id": str(uuid.uuid4()),
|
273 |
+
"frontend_context_uuid": str(uuid.uuid4()),
|
274 |
+
"prompt_source": "user",
|
275 |
+
"query_source": "home"
|
276 |
}
|
277 |
sio.emit('perplexity_ask', (previous_messages, emit_data))
|
278 |
|
|
|
289 |
response_event.set()
|
290 |
|
291 |
def on_disconnect():
|
292 |
+
logging.info("Disconnected from Perplexity AI WebSocket")
|
293 |
response_event.set()
|
294 |
|
295 |
def on_connect_error(data):
|
296 |
+
logging.error(f"WebSocket connection error: {data}")
|
297 |
response_text.append(f"Error connecting to Perplexity AI: {data}")
|
298 |
response_event.set()
|
299 |
|
|
|
327 |
return Response(json.dumps(full_response, ensure_ascii=False), content_type='application/json')
|
328 |
|
329 |
except Exception as e:
|
330 |
+
logging.error(f"Request error: {str(e)}")
|
331 |
return jsonify({"error": str(e)}), 500
|
332 |
finally:
|
333 |
if sio.connected:
|