From 34e3ee213e7408ff78135f2cfed4e189e7c862ba Mon Sep 17 00:00:00 2001 From: rjb <263303411@qq.com> Date: Sun, 1 Mar 2026 09:53:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E8=83=BD=E4=B8=93=E5=AE=B63=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logs/app.log | 192 ++++++++++++ logs/gunicorn_access.log | 48 +++ logs/gunicorn_error.log | 283 ++++++++++++++++++ .../__pycache__/__init__.cpython-312.pyc | Bin 5491 -> 5643 bytes .../expert_generate_2.cpython-312.pyc | Bin 10406 -> 11044 bytes .../expert_generate_3.cpython-312.pyc | Bin 0 -> 11032 bytes .../routes/expert_generate_2.py | 14 +- .../routes/expert_generate_3.py | 32 +- .../templates/expert_generate_2.html | 10 +- .../templates/expert_generate_3.html | 46 ++- 10 files changed, 612 insertions(+), 13 deletions(-) create mode 100644 src/flask_prompt_master/routes/__pycache__/expert_generate_3.cpython-312.pyc diff --git a/logs/app.log b/logs/app.log index 55cdc71..0835bd1 100644 --- a/logs/app.log +++ b/logs/app.log @@ -2735,3 +2735,195 @@ Traceback (most recent call last): raise BuildError(endpoint, values, method, self) werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? [in /home/renjianbo/aitsc/src/flask_prompt_master/__init__.py:120] +2026-02-28 22:13:20,966 ERROR: Exception on / [GET] [in /home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py:1414] +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? +2026-02-28 22:13:21,024 ERROR: Internal Server Error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? + [in /home/renjianbo/aitsc/src/flask_prompt_master/__init__.py:120] +2026-02-28 22:13:37,694 ERROR: Exception on / [GET] [in /home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py:1414] +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? +2026-02-28 22:13:37,732 ERROR: Internal Server Error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? + [in /home/renjianbo/aitsc/src/flask_prompt_master/__init__.py:120] +2026-02-28 22:15:25,968 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] +2026-02-28 22:22:12,598 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] diff --git a/logs/gunicorn_access.log b/logs/gunicorn_access.log index 3d18046..ef8a059 100644 --- a/logs/gunicorn_access.log +++ b/logs/gunicorn_access.log @@ -15200,3 +15200,51 @@ 123.139.40.200 - - [28/Feb/2026:21:30:25 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1112 123.139.40.200 - - [28/Feb/2026:21:30:25 +0800] "GET /api/history?per_page=100 HTTP/1.1" 200 151945 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 296286 123.139.40.200 - - [28/Feb/2026:21:35:52 +0800] "GET / HTTP/1.1" 500 420 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 562770 +123.139.40.200 - - [28/Feb/2026:22:13:21 +0800] "GET / HTTP/1.1" 500 420 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 716161 +123.139.40.200 - - [28/Feb/2026:22:13:37 +0800] "GET / HTTP/1.1" 500 420 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 615441 +123.139.40.200 - - [28/Feb/2026:22:15:45 +0800] "GET / HTTP/1.1" 200 216259 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 812355 +123.139.40.200 - - [28/Feb/2026:22:15:45 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 5945 +123.139.40.200 - - [28/Feb/2026:22:15:45 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 5537 +123.139.40.200 - - [28/Feb/2026:22:15:50 +0800] "GET /expert-generate-3 HTTP/1.1" 200 31515 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 464685 +123.139.40.200 - - [28/Feb/2026:22:15:50 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1165 +123.139.40.200 - - [28/Feb/2026:22:15:50 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 5464 +123.139.40.200 - - [28/Feb/2026:22:15:56 +0800] "GET /expert-generate-2 HTTP/1.1" 200 31530 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 134570 +123.139.40.200 - - [28/Feb/2026:22:15:56 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1038 +123.139.40.200 - - [28/Feb/2026:22:15:56 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1101 +123.139.40.200 - - [28/Feb/2026:22:16:50 +0800] "POST /api/expert-generate-2/generate HTTP/1.1" 200 7358 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 35345046 +123.139.40.200 - - [28/Feb/2026:22:16:54 +0800] "POST /api/expert-generate-2/generate HTTP/1.1" 200 7763 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 38867214 +123.139.40.200 - - [28/Feb/2026:22:16:57 +0800] "GET /history HTTP/1.1" 200 40105 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 143707 +123.139.40.200 - - [28/Feb/2026:22:16:57 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1470 +123.139.40.200 - - [28/Feb/2026:22:16:58 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1197 +123.139.40.200 - - [28/Feb/2026:22:16:58 +0800] "GET /api/history?per_page=100 HTTP/1.1" 200 166762 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 328044 +123.139.40.200 - - [28/Feb/2026:22:22:33 +0800] "GET / HTTP/1.1" 200 216259 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 840426 +123.139.40.200 - - [28/Feb/2026:22:22:34 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 7433 +123.139.40.200 - - [28/Feb/2026:22:22:34 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 5456 +123.139.40.200 - - [28/Feb/2026:22:22:36 +0800] "GET /expert-generate-2 HTTP/1.1" 200 31638 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 447631 +123.139.40.200 - - [28/Feb/2026:22:22:36 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1180 +123.139.40.200 - - [28/Feb/2026:22:22:36 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1050 +123.139.40.200 - - [28/Feb/2026:22:23:15 +0800] "POST /api/expert-generate-2/generate HTTP/1.1" 200 5676 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 26666136 +123.139.40.200 - - [28/Feb/2026:22:23:31 +0800] "GET /history HTTP/1.1" 200 40105 "http://101.43.95.130:5002/expert-generate-2" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 487346 +123.139.40.200 - - [28/Feb/2026:22:23:31 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1577 +123.139.40.200 - - [28/Feb/2026:22:23:31 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1007 +123.139.40.200 - - [28/Feb/2026:22:23:32 +0800] "GET /api/history?per_page=100 HTTP/1.1" 200 172261 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 285944 +123.139.40.200 - - [28/Feb/2026:22:24:40 +0800] "GET /expert-generate-3 HTTP/1.1" 200 31623 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 136880 +123.139.40.200 - - [28/Feb/2026:22:24:40 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1391 +123.139.40.200 - - [28/Feb/2026:22:24:40 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 818 +13.219.248.239 - - [28/Feb/2026:22:26:47 +0800] "HEAD /expert-generate-3 HTTP/1.1" 200 0 "-" "got (https://github.com/sindresorhus/got)" 4167 +13.219.248.239 - - [28/Feb/2026:22:26:48 +0800] "GET /expert-generate-3 HTTP/1.1" 200 31623 "-" "got (https://github.com/sindresorhus/got)" 198337 +13.219.248.239 - - [28/Feb/2026:22:26:49 +0800] "GET /expert-generate-3 HTTP/1.1" 200 31623 "-" "got (https://github.com/sindresorhus/got)" 215894 +123.139.40.200 - - [28/Feb/2026:22:28:25 +0800] "GET /expert-generate-3 HTTP/1.1" 200 34731 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 507819 +123.139.40.200 - - [28/Feb/2026:22:28:26 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1282 +123.139.40.200 - - [28/Feb/2026:22:28:26 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1074 +123.139.40.200 - - [28/Feb/2026:22:31:29 +0800] "POST /api/expert-generate-3/generate HTTP/1.1" 200 8334 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 41063840 +123.139.40.200 - - [28/Feb/2026:22:31:48 +0800] "GET /history HTTP/1.1" 200 40105 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 257675 +123.139.40.200 - - [28/Feb/2026:22:31:48 +0800] "GET /static/js/interactions.js HTTP/1.1" 404 207 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 1372 +123.139.40.200 - - [28/Feb/2026:22:31:48 +0800] "GET /api/check-login HTTP/1.1" 200 95 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 888 +123.139.40.200 - - [28/Feb/2026:22:31:49 +0800] "GET /api/history?per_page=100 HTTP/1.1" 200 180128 "http://101.43.95.130:5002/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 334878 +123.139.40.200 - - [28/Feb/2026:22:35:55 +0800] "POST /api/expert-generate-3/generate HTTP/1.1" 200 6946 "http://101.43.95.130:5002/expert-generate-3" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0" 39194402 +206.168.34.39 - - [01/Mar/2026:01:05:05 +0800] "GET / HTTP/1.1" 200 216259 "-" "-" 865654 +206.168.34.39 - - [01/Mar/2026:01:05:24 +0800] "GET / HTTP/1.1" 200 216259 "-" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)" 1228039 +206.168.34.39 - - [01/Mar/2026:01:05:25 +0800] "PRI * HTTP/2.0" 404 207 "-" "-" 828 +206.168.34.39 - - [01/Mar/2026:01:05:26 +0800] "GET /favicon.ico HTTP/1.1" 404 207 "-" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)" 806 +206.168.34.39 - - [01/Mar/2026:01:05:45 +0800] "GET /security.txt HTTP/1.1" 404 207 "-" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)" 659 diff --git a/logs/gunicorn_error.log b/logs/gunicorn_error.log index b7b530a..05f84f4 100644 --- a/logs/gunicorn_error.log +++ b/logs/gunicorn_error.log @@ -10304,3 +10304,286 @@ werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert [2026-02-28 21:37:53 +0800] [22289] [INFO] Booting worker with pid: 22289 [2026-02-28 21:37:53 +0800] [22289] [INFO] 工作进程 22289 已启动 [2026-02-28 21:37:53 +0800] [22289] [INFO] 工作进程 22289 初始化完成 +[2026-02-28 22:13:20,966] ERROR in app: Exception on / [GET] +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? +[2026-02-28 22:13:21,024] ERROR in __init__: Internal Server Error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? + +[2026-02-28 22:13:25 +0800] [22289] [INFO] Worker exiting (pid: 22289) +[2026-02-28 22:13:25 +0800] [22948] [INFO] Handling signal: term +[2026-02-28 22:13:25 +0800] [23019] [INFO] Worker exiting (pid: 23019) +[2026-02-28 22:13:25 +0800] [23048] [INFO] Worker exiting (pid: 23048) +[2026-02-28 22:13:25 +0800] [23049] [INFO] Worker exiting (pid: 23049) +[2026-02-28 22:13:25 +0800] [22948] [ERROR] Worker (pid:22289) was sent SIGTERM! +[2026-02-28 22:13:37,694] ERROR in app: Exception on / [GET] +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? +[2026-02-28 22:13:37,732] ERROR in __init__: Internal Server Error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 2190, in wsgi_app + response = self.full_dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1486, in full_dispatch_request + rv = self.handle_user_exception(e) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask_cors/extension.py", line 176, in wrapped_function + return cors_after_request(app.make_response(f(*args, **kwargs))) + ^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1484, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1469, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 263, in index + return render_template('generate.html', form=form, prompt=None, templates=templates, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 151, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/templating.py", line 132, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 1, in top-level template code + {% extends "base.html" %} + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/base.html", line 603, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/aitsc/src/flask_prompt_master/templates/generate.html", line 206, in block 'content' + + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1697, in url_for + return self.handle_url_build_error(error, endpoint, values) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/flask/app.py", line 1686, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/werkzeug/routing/map.py", line 950, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'expert_generate_3.expert_generate_3_page'. Did you mean 'expert_generate_2.expert_generate_2_page' instead? + +[2026-02-28 22:13:37 +0800] [23002] [INFO] Worker exiting (pid: 23002) +[2026-02-28 22:13:38 +0800] [22948] [INFO] Shutting down: Master +[2026-02-28 22:15:28 +0800] [3489] [INFO] Starting gunicorn 21.2.0 +[2026-02-28 22:15:28 +0800] [3489] [INFO] Gunicorn服务器启动中... +[2026-02-28 22:15:28 +0800] [3489] [INFO] Listening at: http://0.0.0.0:5002 (3489) +[2026-02-28 22:15:28 +0800] [3489] [INFO] Using worker: sync +[2026-02-28 22:15:28 +0800] [3489] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:15:28 +0800] [3677] [INFO] Booting worker with pid: 3677 +[2026-02-28 22:15:28 +0800] [3677] [INFO] 工作进程 3677 已启动 +[2026-02-28 22:15:28 +0800] [3677] [INFO] 工作进程 3677 初始化完成 +[2026-02-28 22:15:28 +0800] [3489] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:15:28 +0800] [3678] [INFO] Booting worker with pid: 3678 +[2026-02-28 22:15:28 +0800] [3678] [INFO] 工作进程 3678 已启动 +[2026-02-28 22:15:28 +0800] [3678] [INFO] 工作进程 3678 初始化完成 +[2026-02-28 22:15:28 +0800] [3489] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:15:28 +0800] [3679] [INFO] Booting worker with pid: 3679 +[2026-02-28 22:15:28 +0800] [3679] [INFO] 工作进程 3679 已启动 +[2026-02-28 22:15:28 +0800] [3679] [INFO] 工作进程 3679 初始化完成 +[2026-02-28 22:15:28 +0800] [3489] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:15:28 +0800] [3680] [INFO] Booting worker with pid: 3680 +[2026-02-28 22:15:28 +0800] [3680] [INFO] 工作进程 3680 已启动 +[2026-02-28 22:15:28 +0800] [3680] [INFO] 工作进程 3680 初始化完成 +[2026-02-28 22:15:28 +0800] [3489] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:15:28 +0800] [3681] [INFO] Booting worker with pid: 3681 +[2026-02-28 22:15:28 +0800] [3681] [INFO] 工作进程 3681 已启动 +[2026-02-28 22:15:28 +0800] [3681] [INFO] 工作进程 3681 初始化完成 +[2026-02-28 22:20:50 +0800] [3489] [INFO] Handling signal: term +[2026-02-28 22:20:50 +0800] [3677] [INFO] Worker exiting (pid: 3677) +[2026-02-28 22:20:50 +0800] [3679] [INFO] Worker exiting (pid: 3679) +[2026-02-28 22:20:50 +0800] [3678] [INFO] Worker exiting (pid: 3678) +[2026-02-28 22:20:50 +0800] [3680] [INFO] Worker exiting (pid: 3680) +[2026-02-28 22:20:50 +0800] [3681] [INFO] Worker exiting (pid: 3681) +[2026-02-28 22:20:51 +0800] [3489] [INFO] Shutting down: Master +[2026-02-28 22:22:15 +0800] [31755] [INFO] Starting gunicorn 21.2.0 +[2026-02-28 22:22:15 +0800] [31755] [INFO] Gunicorn服务器启动中... +[2026-02-28 22:22:15 +0800] [31755] [INFO] Listening at: http://0.0.0.0:5002 (31755) +[2026-02-28 22:22:15 +0800] [31755] [INFO] Using worker: sync +[2026-02-28 22:22:15 +0800] [31755] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:22:15 +0800] [689] [INFO] Booting worker with pid: 689 +[2026-02-28 22:22:15 +0800] [689] [INFO] 工作进程 689 已启动 +[2026-02-28 22:22:15 +0800] [689] [INFO] 工作进程 689 初始化完成 +[2026-02-28 22:22:15 +0800] [31755] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:22:15 +0800] [696] [INFO] Booting worker with pid: 696 +[2026-02-28 22:22:15 +0800] [696] [INFO] 工作进程 696 已启动 +[2026-02-28 22:22:15 +0800] [696] [INFO] 工作进程 696 初始化完成 +[2026-02-28 22:22:15 +0800] [31755] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:22:15 +0800] [741] [INFO] Booting worker with pid: 741 +[2026-02-28 22:22:15 +0800] [741] [INFO] 工作进程 741 已启动 +[2026-02-28 22:22:15 +0800] [741] [INFO] 工作进程 741 初始化完成 +[2026-02-28 22:22:15 +0800] [31755] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:22:15 +0800] [785] [INFO] Booting worker with pid: 785 +[2026-02-28 22:22:15 +0800] [785] [INFO] 工作进程 785 已启动 +[2026-02-28 22:22:15 +0800] [785] [INFO] 工作进程 785 初始化完成 +[2026-02-28 22:22:15 +0800] [31755] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:22:15 +0800] [831] [INFO] Booting worker with pid: 831 +[2026-02-28 22:22:15 +0800] [831] [INFO] 工作进程 831 已启动 +[2026-02-28 22:22:15 +0800] [831] [INFO] 工作进程 831 初始化完成 +[2026-02-28 22:35:12 +0800] [31755] [CRITICAL] WORKER TIMEOUT (pid:689) +[2026-02-28 22:35:12 +0800] [689] [INFO] 工作进程 689 异常退出 +[2026-02-28 22:35:12 +0800] [689] [INFO] Worker exiting (pid: 689) +[2026-02-28 22:35:12 +0800] [31755] [ERROR] Worker (pid:689) exited with code 1 +[2026-02-28 22:35:12 +0800] [31755] [ERROR] Worker (pid:689) exited with code 1. +[2026-02-28 22:35:12 +0800] [31755] [INFO] 工作进程 [booting] 即将启动 +[2026-02-28 22:35:12 +0800] [5280] [INFO] Booting worker with pid: 5280 +[2026-02-28 22:35:12 +0800] [5280] [INFO] 工作进程 5280 已启动 +[2026-02-28 22:35:12 +0800] [5280] [INFO] 工作进程 5280 初始化完成 +[2026-03-01 01:06:55 +0800] [31755] [CRITICAL] WORKER TIMEOUT (pid:5280) +[2026-03-01 01:06:55 +0800] [5280] [INFO] 工作进程 5280 异常退出 +[2026-03-01 01:06:55 +0800] [5280] [INFO] Worker exiting (pid: 5280) +[2026-03-01 01:06:56 +0800] [31755] [ERROR] Worker (pid:5280) exited with code 1 +[2026-03-01 01:06:56 +0800] [31755] [ERROR] Worker (pid:5280) exited with code 1. +[2026-03-01 01:06:56 +0800] [31755] [INFO] 工作进程 [booting] 即将启动 +[2026-03-01 01:06:56 +0800] [27142] [INFO] Booting worker with pid: 27142 +[2026-03-01 01:06:56 +0800] [27142] [INFO] 工作进程 27142 已启动 +[2026-03-01 01:06:56 +0800] [27142] [INFO] 工作进程 27142 初始化完成 +[2026-03-01 02:01:44 +0800] [27142] [INFO] Worker exiting (pid: 27142) +[2026-03-01 02:01:44 +0800] [831] [INFO] Worker exiting (pid: 831) +[2026-03-01 02:01:44 +0800] [696] [INFO] Worker exiting (pid: 696) +[2026-03-01 02:01:44 +0800] [785] [INFO] Worker exiting (pid: 785) +[2026-03-01 02:01:44 +0800] [741] [INFO] Worker exiting (pid: 741) +[2026-03-01 02:01:44 +0800] [31755] [INFO] Handling signal: term +[2026-03-01 02:01:44 +0800] [31755] [ERROR] Worker (pid:785) was sent SIGTERM! +[2026-03-01 02:01:44 +0800] [31755] [ERROR] Worker (pid:741) was sent SIGTERM! +[2026-03-01 02:01:44 +0800] [31755] [ERROR] Worker (pid:27142) was sent SIGTERM! +[2026-03-01 02:01:44 +0800] [31755] [ERROR] Worker (pid:696) was sent SIGTERM! +[2026-03-01 02:01:44 +0800] [31755] [ERROR] Worker (pid:831) was sent SIGTERM! +[2026-03-01 02:01:44 +0800] [31755] [INFO] Shutting down: Master diff --git a/src/flask_prompt_master/__pycache__/__init__.cpython-312.pyc b/src/flask_prompt_master/__pycache__/__init__.cpython-312.pyc index d4b41ac2a8c8551fcd80bbbc7b39b78a63318a46..f9cec227c49b368d1ef3efaa60c2bb03b57d01a8 100644 GIT binary patch delta 777 zcmeyY)vd#KnwOW00SHRpEy|P=*~k~p$aaC1fuUV^ayFwXqwwU3jFLc-pGkD`0Y)=P z;nj>F#S9FL3?;k}76U`4a3@GbB2Zl+lO~Xy&7=qN%F=}zAi@IE=LBaJz*+O)tTS-dFE~qs6{OdZRfh@aKA>x~1rV-JVNa3B(azPW z6=Y;!VyF@9MDkgua8}f0K_+3vSeOqHbc$q29E_Kh092*UER`ZX`97;SGgOy2HeE8{ z5Yl9pO_3w0RvxNWAw?0S)?7F%8D=AbPEmsSr9(K4F-5tBV>MK=R;W`rm_buzGcWsQ zMj?^Zih|UllKAx0ywsw^lGJ$P&AT{mGBT=cp2BsQkx^}O1WzcV=Hzuem5h~>HF#Ua zjf$9o2HoO_kIzfYO^uH);skPw^d=wSRbbTL{FHY$6QjZ8g#z-EI|T%ojf>@) x2Sn(B2(U}7K`a{(0WxAGLyg;Wra-^ zWD-`4g!uzOr%04U!FX9QKvn9@k||P?dD+C7p}NGe>5_(o1G7wuEJ3w$P_^lR0Rd|qO1YJ7YVCy-mDJDH15fl+U>Hs5Zh$%*_5 zlWhh0809AW2%56VgOtloE)k+`{7XbR(G8Ig;OW|QBEgt7SnMT;~idx@%A znS+?xAVL>JfSqLpVp)R-kP#~xip)T4u=yM|x%nxjIjMF<(UVt-MsnseGV+6^0X6ZH Ag#Z8m diff --git a/src/flask_prompt_master/routes/__pycache__/expert_generate_2.cpython-312.pyc b/src/flask_prompt_master/routes/__pycache__/expert_generate_2.cpython-312.pyc index a32b0acb4d01c9b185fd0714e6b3bdaf224ad8bf..20058855172b29f9b6db27c12f2960719342e82c 100644 GIT binary patch delta 2844 zcmahLYfM{J_?&zDzI{L+v|S4ns1$IpGU*05McCZ%xpgz@>H{a|T6!rh-d;A;TWhA# z>DXkR88y!MT8s&pWx+(_GseV6)Iq_xr82W0PUkP5iI2p@b6Soaaho^k_kHJkf8Y7e zIejI1_(tnz7K;gxZ}iWX5=R>jSUvEg1EKz$CMm=O1d%3bj+qJ8CM_e@m=yv->yoyS zide-+WvsHe)+g;Fj+kS_8FNCw0nsG2P>;($v1$sII59WT;gErFxFwD!0b*Xl)r*4E zL3tG=0fW+7eAMbV@VDK)BxiyWE{Sm$^w;^3HCBymr~*|YJ8~S-#A=W;R*PH@fmlHF zNb9L1{3!Hm>;GN73;nQRrU2bGc;Cz~6`w-5AHQRdapOkpah!BpSg@%jBFm|qV#6k< zpHm^8ta9S_oCXssPjcbBbw$NpT$Wed%v7o(OkYl;@`{J?b^^IZ)s)vN?vM7y=i>!w@WK$uYFYpMw^1t|5?C;-{Uf zc%7)d=@;%v1)fi4N&#SLlZ&Xolw@I6?9FzgnYzP7xkp9W%jCGGBUc1 z)tr$zR5}@(4Xtc1w_DY#MjDD~Bgb$P03^i@m+C z7_fj@;eU54M|MjUq)jYB8K2eJ{xX+Qq%{FlH(fu)mpIc6|5mbm$Ajo1vgeIcOM{s; zt7eH*%0B$I)p)_(?{}}wSyW5r?9mob=s%;)Wv!%B*D${-R4uA?x{2kNwJFy!nRGp) z%2cK&IY@Ww7G^Kq%BV6{tu!;#GJP>S1;q6LlS_9ns*F`D z>nzbMAMaMwMyAAqR+00?4!MI^Z37KJ2{Uu48-L?*TTBX_rs5~{6c1drYGPBe%&mZG zaMVMNR|GU6Aza8v? zB=Z}XK8e&rB3-!aH_@(>C+4j3w$t)9HJ_c(_N785$pyelI#0;DWyO_ztvrt}-T(Ny zbeXR~n%5;^)`aCvKUbT^VTL1*Wr()Rd(L(>w~r0r+iU8v>U+8K2LtI`;x*FaF*2{< z%#k-v?|uJ=NA{gQyzjfmC%=8`@Q?3I5a#!`wf>X-^~6H9 zQ$RC4hl!%KNrJzv~BVxfkfJ8JlIxx6n za7ZlhNikK>4kpDNGTvT$6avewq8plk@=i zNjHe^t`l?LT375%?cq;2st)O&7oHJbxcYc7k`G1}f@>E%oyR?Wc~9ShXTzNR%02qU zO4n1~177UgqdOtk4<_?M{j0jy{cpze?Hlt=8$YR=4_&k9SnhV6cMU-w2G<)2`lzk`x-Rf>Wp4#RpVS*DZ0YMElFwQ=3R`=H&6k1C zyV{}#@I|PSu)gSWZ0_cdnS8%ArFnxfx|+{dRz+L+e5fdG)l$ytqBLUM+QsKD z4{z<@=i4Bm=R33nHV1KUW7u~ysZ)*6A?WiO6?QfG9{)FiJsj0=05_Oc7=JH$i?7r$g24lZ2#KQN}^wPdtS1XAKWEzZ(GT xSpb)x1m3TK^=lv$p^*^yjZm}pgst)cGd>kM;uawk;jcX4qVQ*~xRArd-9Ms>F9-kt delta 2323 zcma)7TWph696#r~_1>=ct?kye+gRJdHg1A$unqA-a111Bs0fmrQuonr@v9?5 zeLx;u4sT*2H#ON3gY&@`jV5Sa=a>ig}ZR`%pW-H!Q(TE_d3S! z(i^_4&}*e@{Ywrf&r5Z)Xfz%0A5#6?XmVmDHa);~Vm~hshk+T-3&crW)9xv0d9^GU zf*RtUCMTW-P}KTrQITpeM<~`P8lu{0dT|MAQ>Fyk9gGOXOJ5DO%c2eGar$*QHerao zd1Wb&i0>jU%Z9uYy#o1_6+&9MECBk)Q6mLqn&kkD0lUz5s;pD|&biY4-iuMO03TERNq`lGD zF#`^}VJGd=DSpgh*FKJ>KF=kS8;*PM&H6H=1LkcfYvBUbRM~>`rs{6`V=zqnBXW;L zU(4atE-smzG#D0s7$6xlM1(}?sYr0x@}^}!B4Qc%NvtRN&Q_#tEk6o7_AqRHJ;wo$ zl_!iv+gKCrBpMeFppzJidYbz~+&+kV-)QhI*6Il;z$|t*-(qsI=H7%3td#X0TykFE zLqaBMN_`M=8jvSeo?eXZfmR*?-BSbof|)Fr$U5Gk+WGvqhwzOV$0Y&2AFZsJ4G(N) zx^wI>{VATLbFoYGV%WAfDlRs6?+uAJ>M+PRLNd^Ff?i2=dk;Z@6-!|> zpC2B{SA@|Ly`B1EqGHL7oEX+dM>KX_wU-!qnUOpruQ9@!Uy-%ZF+HcTyQr~_YV3W` zx*5p;saSi9qhzd*+pfI>D!Zm7E702_#`umTV(G3G;l3Zx_9fJC3ps8f_bp^wLUco> YogT`38a{||4*w}4VIRIDRFx|DzqRp^R{#J2 diff --git a/src/flask_prompt_master/routes/__pycache__/expert_generate_3.cpython-312.pyc b/src/flask_prompt_master/routes/__pycache__/expert_generate_3.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..facd71bbdb0f53e5eb7b883c874a6097c3e411f9 GIT binary patch literal 11032 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 literal 0 HcmV?d00001 diff --git a/src/flask_prompt_master/routes/expert_generate_2.py b/src/flask_prompt_master/routes/expert_generate_2.py index 3543b01..3e22282 100644 --- a/src/flask_prompt_master/routes/expert_generate_2.py +++ b/src/flask_prompt_master/routes/expert_generate_2.py @@ -5,15 +5,18 @@ """ from flask import Blueprint, render_template, request, jsonify from openai import OpenAI +import hashlib import json import logging import os +import time from src.flask_prompt_master import db from src.flask_prompt_master.models.models import User, Prompt from src.flask_prompt_master.models.history_models import PromptHistory, UserStatistics logger = logging.getLogger(__name__) expert_generate_2_bp = Blueprint('expert_generate_2', __name__) +_dedup_cache = {} client = OpenAI( api_key=os.environ.get('LLM_API_KEY') or 'sk-fdf7cc1c73504e628ec0119b7e11b8cc', @@ -154,6 +157,15 @@ def expert_generate_2_api(): if not user_input: return jsonify({'code': 400, 'message': '请输入您的需求', 'data': None}) + uid = _get_user_id() + req_key = (uid, hashlib.md5(user_input.encode()).hexdigest()) + now_ts = time.time() + if req_key in _dedup_cache and (now_ts - _dedup_cache[req_key]) < 8: + return jsonify({'code': 429, 'message': '请勿重复提交,请稍后再试', 'data': None}) + _dedup_cache[req_key] = now_ts + if len(_dedup_cache) > 500: + _dedup_cache.clear() + # 第一阶段:意图分析 intent_response = client.chat.completions.create( model="deepseek-chat", @@ -206,7 +218,7 @@ def expert_generate_2_api(): if not generated_prompt: return jsonify({'code': 500, 'message': '生成失败,请重试', 'data': None}) - user_id = _get_user_id() + user_id = uid try: p = Prompt(input_text=user_input, generated_text=generated_prompt, user_id=user_id) db.session.add(p) diff --git a/src/flask_prompt_master/routes/expert_generate_3.py b/src/flask_prompt_master/routes/expert_generate_3.py index cf5b662..1079400 100644 --- a/src/flask_prompt_master/routes/expert_generate_3.py +++ b/src/flask_prompt_master/routes/expert_generate_3.py @@ -6,15 +6,18 @@ """ from flask import Blueprint, render_template, request, jsonify from openai import OpenAI +import hashlib import json import logging import os +import time from src.flask_prompt_master import db from src.flask_prompt_master.models.models import User, Prompt from src.flask_prompt_master.models.history_models import PromptHistory, UserStatistics logger = logging.getLogger(__name__) expert_generate_3_bp = Blueprint('expert_generate_3', __name__) +_dedup_cache = {} _llm_client = OpenAI( api_key=os.environ.get('LLM_API_KEY') or 'sk-fdf7cc1c73504e628ec0119b7e11b8cc', @@ -153,6 +156,26 @@ def expert_generate_3_api(): raw_input = (payload.get('input_text') or '').strip() if not raw_input: return jsonify({'code': 400, 'message': '请输入您的需求', 'data': None}) + + temperature = payload.get('temperature') + temperature = float(temperature) if temperature is not None else 0.7 + temperature = max(0.0, min(2.0, temperature)) + max_tokens = payload.get('max_tokens') + max_tokens = int(max_tokens) if max_tokens is not None else 1000 + max_tokens = max(100, min(4000, max_tokens)) + timeout = payload.get('timeout') + timeout = int(timeout) if timeout is not None else 60 + timeout = max(10, min(300, timeout)) + + uid = _resolve_user_id() + req_key = (uid, hashlib.md5(raw_input.encode()).hexdigest()) + now_ts = time.time() + if req_key in _dedup_cache and (now_ts - _dedup_cache[req_key]) < 8: + return jsonify({'code': 429, 'message': '请勿重复提交,请稍后再试', 'data': None}) + _dedup_cache[req_key] = now_ts + if len(_dedup_cache) > 500: + _dedup_cache.clear() + resp1 = _llm_client.chat.completions.create( model="deepseek-chat", messages=[ @@ -160,7 +183,7 @@ def expert_generate_3_api(): {"role": "user", "content": raw_input} ], temperature=0.1, - timeout=60 + timeout=timeout ) intent_raw = (resp1.choices[0].message.content or "").strip() intent_raw = intent_raw.replace('```json', '').replace('```', '').strip() @@ -189,14 +212,13 @@ def expert_generate_3_api(): {"role": "system", "content": tpl.format(analysis=analysis_str)}, {"role": "user", "content": raw_input} ], - temperature=0.7, - max_tokens=1000, - timeout=60 + temperature=temperature, + max_tokens=max_tokens, + timeout=timeout ) result_prompt = (resp2.choices[0].message.content or "").strip() if not result_prompt: return jsonify({'code': 500, 'message': '生成失败,请重试', 'data': None}) - uid = _resolve_user_id() try: db.session.add(Prompt(input_text=raw_input, generated_text=result_prompt, user_id=uid)) db.session.commit() diff --git a/src/flask_prompt_master/templates/expert_generate_2.html b/src/flask_prompt_master/templates/expert_generate_2.html index 3e2ea75..f3fdea1 100644 --- a/src/flask_prompt_master/templates/expert_generate_2.html +++ b/src/flask_prompt_master/templates/expert_generate_2.html @@ -80,13 +80,16 @@