save code

This commit is contained in:
Ubuntu
2026-06-16 21:15:19 +08:00
parent a86125246e
commit d2642b66f8
3 changed files with 28 additions and 9 deletions
+6 -5
View File
@@ -271,11 +271,12 @@ async def face_features(
img_bytes = None img_bytes = None
if image_file: if image_file:
raw = await image_file.read() raw = await image_file.read()
if len(raw) > 1_000_000: # TODO: 临时取消限制,后续恢复
return JSONResponse(status_code=200, content={ # if len(raw) > 1_000_000:
"code": 1006, "message": "文件超出 1 MB 限制", # return JSONResponse(status_code=200, content={
"request_id": f"gw-{_uuid.uuid4().hex[:8]}", "data": None, # "code": 1006, "message": "文件超出 1 MB 限制",
}) # "request_id": f"gw-{_uuid.uuid4().hex[:8]}", "data": None,
# })
img_bytes = raw img_bytes = raw
elif image_base64: elif image_base64:
b64 = image_base64 b64 = image_base64
Executable
+19
View File
@@ -0,0 +1,19 @@
#!/bin/bash
# 重启网关 + worker 服务
set -e
cd "$(dirname "$0")"
echo "=== 重启网关 ==="
sudo systemctl restart hair-gateway
sudo systemctl status hair-gateway --no-pager -l | head -8
echo ""
echo "=== 网关池状态 ==="
sleep 3
curl -s http://127.0.0.1:8080/gateway-health 2>/dev/null || echo "⚠ 网关未就绪"
echo ""
echo "=== 重启 workerGPU 机)==="
echo "如需重启 GPU worker,请登录 GPU 机器执行:"
echo " sudo systemctl restart hair"
+3 -4
View File
@@ -61,7 +61,7 @@
<body> <body>
<div class="container"> <div class="container">
<h1>🔬 接口4 — 用户特征分析 测试</h1> <h1>🔬 接口4 — 用户特征分析 测试</h1>
<p class="subtitle">POST /api/v1/face/features &nbsp;|&nbsp; 上传照片 → 火山方舟豆包视觉模型 → 42项面部特征 &nbsp;|&nbsp; data.features 为 JSON 字符串</p> <p class="subtitle">POST /api/v1/face/features &nbsp;|&nbsp; 上传照片 → AI视觉模型 → 42项面部特征 &nbsp;|&nbsp; data.features 为 JSON 字符串</p>
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
@@ -70,7 +70,7 @@
<button class="btn btn-primary" id="submitBtn" onclick="submitTest()">🚀 分析特征</button> <button class="btn btn-primary" id="submitBtn" onclick="submitTest()">🚀 分析特征</button>
<button class="btn btn-outline btn-sm" onclick="clearResults()">清除</button> <button class="btn btn-outline btn-sm" onclick="clearResults()">清除</button>
</div> </div>
<div class="hint">JPG/PNG ≤1MB 正面照 &nbsp;|&nbsp; 调用火山方舟豆包视觉模型,耗时约数秒</div> <div class="hint">JPG/PNG 正面照 &nbsp;|&nbsp; 调用AI视觉模型,耗时约数秒</div>
<div id="statusBar" class="status hidden"></div> <div id="statusBar" class="status hidden"></div>
</div> </div>
</div> </div>
@@ -123,11 +123,10 @@ function setStatus(t, type) { const b=$('statusBar'); b.textContent=t; b.classNa
async function submitTest() { async function submitTest() {
const f = $('imageFile').files[0]; const f = $('imageFile').files[0];
if (!f) { setStatus('请选择图片', 'error'); return; } if (!f) { setStatus('请选择图片', 'error'); return; }
if (f.size > 1_000_000) { setStatus('文件超过 1 MB', 'error'); return; }
$('imgPreview').innerHTML = '<img src="'+URL.createObjectURL(f)+'" alt="preview">'; $('imgPreview').innerHTML = '<img src="'+URL.createObjectURL(f)+'" alt="preview">';
$('submitBtn').disabled = true; $('submitBtn').textContent = '⏳ 分析中...'; $('submitBtn').disabled = true; $('submitBtn').textContent = '⏳ 分析中...';
setStatus('⏳ 调用豆包视觉模型...', 'info'); $('resultsArea').classList.add('hidden'); setStatus('⏳ 调用AI视觉模型...', 'info'); $('resultsArea').classList.add('hidden');
const fd = new FormData(); fd.append('image_file', f); const fd = new FormData(); fd.append('image_file', f);
try { try {