智能专家3号
Some checks failed
Flask 提示词大师 - CI/CD 流水线 / 代码质量检查 (push) Has been cancelled
Flask 提示词大师 - CI/CD 流水线 / 单元测试 (push) Has been cancelled
Flask 提示词大师 - CI/CD 流水线 / 集成测试 (push) Has been cancelled
Flask 提示词大师 - CI/CD 流水线 / 构建Docker镜像 (push) Has been cancelled
Flask 提示词大师 - CI/CD 流水线 / 部署到测试环境 (push) Has been cancelled
Flask 提示词大师 - CI/CD 流水线 / 部署到生产环境 (push) Has been cancelled
Flask 提示词大师 - CI/CD 流水线 / 部署监控系统 (push) Has been cancelled

This commit is contained in:
rjb
2026-03-01 09:53:12 +08:00
parent db43954dd5
commit 34e3ee213e
10 changed files with 612 additions and 13 deletions

View File

@@ -2735,3 +2735,195 @@ Traceback (most recent call last):
raise BuildError(endpoint, values, method, self) 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? 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] [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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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]

View File

@@ -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/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: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: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

View File

@@ -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] 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 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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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'
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
^^^^^^^^^^^^^^^^^^^^^^^^^
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

View File

@@ -5,15 +5,18 @@
""" """
from flask import Blueprint, render_template, request, jsonify from flask import Blueprint, render_template, request, jsonify
from openai import OpenAI from openai import OpenAI
import hashlib
import json import json
import logging import logging
import os import os
import time
from src.flask_prompt_master import db from src.flask_prompt_master import db
from src.flask_prompt_master.models.models import User, Prompt from src.flask_prompt_master.models.models import User, Prompt
from src.flask_prompt_master.models.history_models import PromptHistory, UserStatistics from src.flask_prompt_master.models.history_models import PromptHistory, UserStatistics
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
expert_generate_2_bp = Blueprint('expert_generate_2', __name__) expert_generate_2_bp = Blueprint('expert_generate_2', __name__)
_dedup_cache = {}
client = OpenAI( client = OpenAI(
api_key=os.environ.get('LLM_API_KEY') or 'sk-fdf7cc1c73504e628ec0119b7e11b8cc', api_key=os.environ.get('LLM_API_KEY') or 'sk-fdf7cc1c73504e628ec0119b7e11b8cc',
@@ -154,6 +157,15 @@ def expert_generate_2_api():
if not user_input: if not user_input:
return jsonify({'code': 400, 'message': '请输入您的需求', 'data': None}) 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( intent_response = client.chat.completions.create(
model="deepseek-chat", model="deepseek-chat",
@@ -206,7 +218,7 @@ def expert_generate_2_api():
if not generated_prompt: if not generated_prompt:
return jsonify({'code': 500, 'message': '生成失败,请重试', 'data': None}) return jsonify({'code': 500, 'message': '生成失败,请重试', 'data': None})
user_id = _get_user_id() user_id = uid
try: try:
p = Prompt(input_text=user_input, generated_text=generated_prompt, user_id=user_id) p = Prompt(input_text=user_input, generated_text=generated_prompt, user_id=user_id)
db.session.add(p) db.session.add(p)

View File

@@ -6,15 +6,18 @@
""" """
from flask import Blueprint, render_template, request, jsonify from flask import Blueprint, render_template, request, jsonify
from openai import OpenAI from openai import OpenAI
import hashlib
import json import json
import logging import logging
import os import os
import time
from src.flask_prompt_master import db from src.flask_prompt_master import db
from src.flask_prompt_master.models.models import User, Prompt from src.flask_prompt_master.models.models import User, Prompt
from src.flask_prompt_master.models.history_models import PromptHistory, UserStatistics from src.flask_prompt_master.models.history_models import PromptHistory, UserStatistics
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
expert_generate_3_bp = Blueprint('expert_generate_3', __name__) expert_generate_3_bp = Blueprint('expert_generate_3', __name__)
_dedup_cache = {}
_llm_client = OpenAI( _llm_client = OpenAI(
api_key=os.environ.get('LLM_API_KEY') or 'sk-fdf7cc1c73504e628ec0119b7e11b8cc', 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() raw_input = (payload.get('input_text') or '').strip()
if not raw_input: if not raw_input:
return jsonify({'code': 400, 'message': '请输入您的需求', 'data': None}) 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( resp1 = _llm_client.chat.completions.create(
model="deepseek-chat", model="deepseek-chat",
messages=[ messages=[
@@ -160,7 +183,7 @@ def expert_generate_3_api():
{"role": "user", "content": raw_input} {"role": "user", "content": raw_input}
], ],
temperature=0.1, temperature=0.1,
timeout=60 timeout=timeout
) )
intent_raw = (resp1.choices[0].message.content or "").strip() intent_raw = (resp1.choices[0].message.content or "").strip()
intent_raw = intent_raw.replace('```json', '').replace('```', '').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": "system", "content": tpl.format(analysis=analysis_str)},
{"role": "user", "content": raw_input} {"role": "user", "content": raw_input}
], ],
temperature=0.7, temperature=temperature,
max_tokens=1000, max_tokens=max_tokens,
timeout=60 timeout=timeout
) )
result_prompt = (resp2.choices[0].message.content or "").strip() result_prompt = (resp2.choices[0].message.content or "").strip()
if not result_prompt: if not result_prompt:
return jsonify({'code': 500, 'message': '生成失败,请重试', 'data': None}) return jsonify({'code': 500, 'message': '生成失败,请重试', 'data': None})
uid = _resolve_user_id()
try: try:
db.session.add(Prompt(input_text=raw_input, generated_text=result_prompt, user_id=uid)) db.session.add(Prompt(input_text=raw_input, generated_text=result_prompt, user_id=uid))
db.session.commit() db.session.commit()

View File

@@ -80,13 +80,16 @@
<script> <script>
document.getElementById('expertPromptForm').addEventListener('submit', async function(e) { document.getElementById('expertPromptForm').addEventListener('submit', async function(e) {
e.preventDefault(); e.preventDefault();
var form = e.target;
if (form.dataset.submitting === '1') return;
form.dataset.submitting = '1';
var generateBtn = document.getElementById('generateBtn');
generateBtn.disabled = true;
var input_text = document.getElementById('input_text').value.trim(); var input_text = document.getElementById('input_text').value.trim();
var loadingIndicator = document.getElementById('loadingIndicator'); var loadingIndicator = document.getElementById('loadingIndicator');
var resultCard = document.getElementById('resultCard'); var resultCard = document.getElementById('resultCard');
var generateBtn = document.getElementById('generateBtn'); if (!input_text) { form.dataset.submitting = ''; generateBtn.disabled = false; alert('请输入您的需求'); return; }
if (!input_text) { alert('请输入您的需求'); return; }
loadingIndicator.classList.remove('d-none'); loadingIndicator.classList.remove('d-none');
generateBtn.disabled = true;
resultCard.classList.add('d-none'); resultCard.classList.add('d-none');
try { try {
var response = await fetch('/api/expert-generate-2/generate', { var response = await fetch('/api/expert-generate-2/generate', {
@@ -114,6 +117,7 @@ document.getElementById('expertPromptForm').addEventListener('submit', async fun
} finally { } finally {
loadingIndicator.classList.add('d-none'); loadingIndicator.classList.add('d-none');
generateBtn.disabled = false; generateBtn.disabled = false;
form.dataset.submitting = '';
} }
}); });
function copyToClipboard(text) { function copyToClipboard(text) {

View File

@@ -22,6 +22,32 @@
<textarea class="form-control" id="input_text" name="input_text" rows="4" required></textarea> <textarea class="form-control" id="input_text" name="input_text" rows="4" required></textarea>
<div class="form-text">详细描述您的需求,系统将进行专业分析并生成高质量提示词</div> <div class="form-text">详细描述您的需求,系统将进行专业分析并生成高质量提示词</div>
</div> </div>
<div class="mb-3">
<button class="btn btn-link btn-sm p-0 text-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#advancedSettings" aria-expanded="false">
<i class="fas fa-sliders-h me-1"></i>高级参数
</button>
<div class="collapse mt-2" id="advancedSettings">
<div class="card card-body bg-light">
<div class="row g-2">
<div class="col-md-4">
<label for="paramTemperature" class="form-label small">temperature</label>
<input type="number" class="form-control form-control-sm" id="paramTemperature" value="0.7" min="0" max="2" step="0.1" title="生成随机性0更确定2更随机">
<div class="form-text small">02默认0.7</div>
</div>
<div class="col-md-4">
<label for="paramMaxTokens" class="form-label small">max_tokens</label>
<input type="number" class="form-control form-control-sm" id="paramMaxTokens" value="1000" min="100" max="4000" step="100" title="最大生成 token 数">
<div class="form-text small">1004000默认1000</div>
</div>
<div class="col-md-4">
<label for="paramTimeout" class="form-label small">timeout</label>
<input type="number" class="form-control form-control-sm" id="paramTimeout" value="60" min="10" max="300" step="10" title="请求超时时间">
<div class="form-text small">10300秒默认60</div>
</div>
</div>
</div>
</div>
</div>
<button type="submit" class="btn btn-primary" id="generateBtn"> <button type="submit" class="btn btn-primary" id="generateBtn">
<i class="fas fa-magic"></i> 生成专家提示词 <i class="fas fa-magic"></i> 生成专家提示词
</button> </button>
@@ -80,19 +106,30 @@
<script> <script>
document.getElementById('expertForm3').addEventListener('submit', async function(e) { document.getElementById('expertForm3').addEventListener('submit', async function(e) {
e.preventDefault(); e.preventDefault();
var form = e.target;
if (form.dataset.submitting === '1') return;
form.dataset.submitting = '1';
var generateBtn = document.getElementById('generateBtn');
generateBtn.disabled = true;
var input_text = document.getElementById('input_text').value.trim(); var input_text = document.getElementById('input_text').value.trim();
var loadingIndicator = document.getElementById('loadingIndicator'); var loadingIndicator = document.getElementById('loadingIndicator');
var resultCard = document.getElementById('resultCard'); var resultCard = document.getElementById('resultCard');
var generateBtn = document.getElementById('generateBtn'); var temperature = parseFloat(document.getElementById('paramTemperature').value) || 0.7;
if (!input_text) { alert('请输入您的需求'); return; } var maxTokens = parseInt(document.getElementById('paramMaxTokens').value, 10) || 1000;
var timeout = parseInt(document.getElementById('paramTimeout').value, 10) || 60;
if (!input_text) { form.dataset.submitting = ''; generateBtn.disabled = false; alert('请输入您的需求'); return; }
loadingIndicator.classList.remove('d-none'); loadingIndicator.classList.remove('d-none');
generateBtn.disabled = true;
resultCard.classList.add('d-none'); resultCard.classList.add('d-none');
try { try {
var response = await fetch('/api/expert-generate-3/generate', { var response = await fetch('/api/expert-generate-3/generate', {
method: 'POST', method: 'POST',
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ input_text: input_text }) body: JSON.stringify({
input_text: input_text,
temperature: temperature,
max_tokens: maxTokens,
timeout: timeout
})
}); });
var data = await response.json(); var data = await response.json();
if (data.code === 200) { if (data.code === 200) {
@@ -114,6 +151,7 @@ document.getElementById('expertForm3').addEventListener('submit', async function
} finally { } finally {
loadingIndicator.classList.add('d-none'); loadingIndicator.classList.add('d-none');
generateBtn.disabled = false; generateBtn.disabled = false;
form.dataset.submitting = '';
} }
}); });
function copyToClipboard(text) { function copyToClipboard(text) {