diff --git a/backend/logs/delivery_check.log.2026-03-13 b/backend/logs/delivery_check.log.2026-03-13 new file mode 100644 index 0000000..c9ee9cc --- /dev/null +++ b/backend/logs/delivery_check.log.2026-03-13 @@ -0,0 +1,12 @@ +2026-03-13 08:29:42,555 [INFO] delivery_service: 用户 1 关键词匹配,推送 6 条事件 +2026-03-13 08:29:44,239 [INFO] delivery_service: 用户 1 邮件发送成功 → 1925008984@qq.com +2026-03-13 08:30:42,407 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-13 08:31:42,418 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-13 18:27:41,637 [INFO] delivery_service: 用户 1 关键词匹配,推送 2 条事件 +2026-03-13 18:27:43,127 [INFO] delivery_service: 用户 1 邮件发送成功 → 1925008984@qq.com +2026-03-13 18:28:41,369 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-13 18:29:41,361 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-13 20:32:41,655 [INFO] delivery_service: 用户 5 关键词匹配,推送 4 条事件 +2026-03-13 20:32:43,018 [INFO] delivery_service: 用户 5 邮件发送成功 → 2170308303@qq.com +2026-03-13 20:33:41,360 [INFO] delivery_service: 用户 5 仍在 30 分钟冷却期内,跳过 +2026-03-13 20:34:41,358 [INFO] delivery_service: 用户 5 仍在 30 分钟冷却期内,跳过 diff --git a/backend/logs/delivery_check.log.2026-03-14 b/backend/logs/delivery_check.log.2026-03-14 new file mode 100644 index 0000000..3f0da4a --- /dev/null +++ b/backend/logs/delivery_check.log.2026-03-14 @@ -0,0 +1,12 @@ +2026-03-14 08:29:08,029 [INFO] delivery_service: 用户 1 关键词无匹配结果,切换为默认热点模式 +2026-03-14 08:29:09,535 [INFO] delivery_service: 用户 1 邮件发送成功 → 1925008984@qq.com +2026-03-14 08:30:07,865 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-14 08:31:07,873 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-14 18:27:07,964 [INFO] delivery_service: 用户 1 关键词匹配,推送 2 条事件 +2026-03-14 18:27:09,271 [INFO] delivery_service: 用户 1 邮件发送成功 → 1925008984@qq.com +2026-03-14 18:28:07,865 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-14 18:29:07,865 [INFO] delivery_service: 用户 1 仍在 30 分钟冷却期内,跳过 +2026-03-14 20:32:07,967 [INFO] delivery_service: 用户 5 关键词无匹配结果,切换为默认热点模式 +2026-03-14 20:32:09,634 [INFO] delivery_service: 用户 5 邮件发送成功 → 2170308303@qq.com +2026-03-14 20:33:07,861 [INFO] delivery_service: 用户 5 仍在 30 分钟冷却期内,跳过 +2026-03-14 20:34:07,869 [INFO] delivery_service: 用户 5 仍在 30 分钟冷却期内,跳过 diff --git a/backend/test.py b/backend/test.py index 24432c9..42d436b 100644 --- a/backend/test.py +++ b/backend/test.py @@ -1,5 +1,6 @@ import os + def print_tree(root, prefix=""): items = sorted( name for name in os.listdir(root) @@ -18,6 +19,9 @@ def print_tree(root, prefix=""): extension = " " if is_last else "│ " print_tree(path, prefix + extension) -root_dir = r"E:\ScnuProject\InsightRadar\backend\app" # 改成你的目录 + +root_dir = r"E:\ScnuProject\InsightRadar\backend\app" print(os.path.basename(root_dir) + "/") -print_tree(root_dir) \ No newline at end of file +print_tree(root_dir) + + diff --git a/backend/test1.py b/backend/test1.py new file mode 100644 index 0000000..194177e --- /dev/null +++ b/backend/test1.py @@ -0,0 +1,57 @@ +# from dotenv import load_dotenv +# import os +# import time +# +# print("step 1: loading env") +# load_dotenv() +# +# hf_token = os.getenv("HF_TOKEN") +# print("step 2:", "HF_TOKEN loaded" if hf_token else "No token") +# +# print("step 3: importing sentence-transformers") +# from sentence_transformers import SentenceTransformer +# +# print("step 4: start loading model") +# t0 = time.time() +# model = SentenceTransformer(r"E:\Models\bge-m3", local_files_only=True, device="cuda") +# print(f"step 5: model loaded in {time.time() - t0:.2f}s") +# +# print("step 6: importing sklearn/numpy") +# from sklearn.metrics.pairwise import cosine_similarity +# import numpy as np +# +# titles = [ +# # A组:同品牌同产品,但含义不同 +# "苹果发布新款iPhone,影像系统再次升级", +# "苹果推出全新iPhone,摄像头性能进一步增强", +# "苹果回应新款iPhone发热问题:将通过系统更新修复", +# "苹果下调部分旧款iPhone售价,新机型并未参与促销", +# +# # B组:看起来都像“苹果新闻”,但主题已变 +# "苹果公司股价上涨,市值再创新高", +# "苹果供应链承压,部分零部件厂商下调全年预期", +# "苹果被曝缩减Vision产品产量,市场需求不及预期", +# "苹果发布新款MacBook,并未更新iPhone产品线", +# +# # C组:同样是“发布/推出”,但主体不同 +# "华为发布新款手机,影像能力进一步提升", +# "小米推出全新手机,影像系统迎来升级", +# "OPPO发布年度旗舰机型,主打夜景拍摄", +# ] +# +# print("step 7: start encoding") +# t1 = time.time() +# embeddings = model.encode( +# titles, +# normalize_embeddings=True, +# show_progress_bar=True, +# batch_size=16 +# ) +# print(f"step 8: encode done in {time.time() - t1:.2f}s") +# +# sim = cosine_similarity(embeddings) +# print(np.round(sim, 4)) +# +import secrets + +print(secrets.token_urlsafe(64)) diff --git a/backend/test_main.http b/backend/test_main.http index a2d81a9..65ff565 100644 --- a/backend/test_main.http +++ b/backend/test_main.http @@ -1,11 +1,34 @@ -# Test your FastAPI endpoints - +# Health GET http://127.0.0.1:8000/ Accept: application/json ### +# Send register verification code +POST http://127.0.0.1:8000/api/v1/auth/register/send-code +Content-Type: application/json -GET http://127.0.0.1:8000/hello/User -Accept: application/json +{ + "email": "demo@example.com" +} ### +# Register by verification code +POST http://127.0.0.1:8000/api/v1/auth/register +Content-Type: application/json + +{ + "email": "demo@example.com", + "password": "DemoPass123", + "verification_code": "123456", + "nickname": "demo_user" +} + +### +# Login +POST http://127.0.0.1:8000/api/v1/auth/login +Content-Type: application/json + +{ + "email": "demo@example.com", + "password": "DemoPass123" +} diff --git a/frontend/src/views/SearchView.vue b/frontend/src/views/SearchView.vue index f877ef0..e0b8679 100644 --- a/frontend/src/views/SearchView.vue +++ b/frontend/src/views/SearchView.vue @@ -368,7 +368,7 @@ async function handleSearch() { gap: 24px; align-items: stretch; position: relative; - z-index: 10; /* 确保搜索框及下拉选择框显示在下方图表之上 */ + z-index: 10; } .search-box { @@ -377,6 +377,8 @@ async function handleSearch() { display: flex; flex-direction: column; justify-content: center; + position: relative; + z-index: 2; } .tips-box { @@ -384,6 +386,8 @@ async function handleSearch() { padding: 24px; display: flex; flex-direction: column; + position: relative; + z-index: 1; } .panel-title {