Files
FinDataHub 11d36d1c1e fix(repo): 修正 Scripts 目录索引大小写并补齐未入库脚本
问题
- 索引中该目录记为小写 `scripts/`,工作区实为 `Scripts/`。因 core.ignorecase=true,
  本地 `git diff -- Scripts/bin/x.py` 会**静默返回空**(看似无改动),
  且在大小写敏感环境(Linux CI / Docker 挂载)会检出 `scripts/`,
  与全仓所有 `Scripts/...` 引用不匹配。
- 该目录此前 10 个脚本(check_python_version.py、perf_snapshot.py、
  install_collector_launchd.py、mysql_toggle.sh 等)从未入库,
  而 CI 第 31 行正调用 `Scripts/bin/check_python_version.py --strict` ——
  全新检出必然失败。

改动
- 索引路径统一为 `Scripts/`(工作区文件未移动,仅索引改名)。
- 补齐上述 10 个未跟踪脚本及其测试。

影响
- 修正前索引 35 条(全为小写路径),修正后 45 条。
2026-09-18 22:37:32 +08:00

68 lines
2.6 KiB
Python

#!/usr/bin/env python3
"""测试多模型并行调用"""
import asyncio
import httpx
import os
AI_SCORER_MODEL = os.getenv("AI_SCORER_MODEL", "qwen2.5:7b")
AI_SUMMARIZER_MODEL = os.getenv("AI_SUMMARIZER_MODEL", "qwen2.5:7b")
AI_SUMMARY_MODEL = os.getenv("AI_SUMMARY_MODEL", "qwen3.6:35b")
SAMPLE_NEWS = "美联储宣布加息25个基点,将联邦基金利率目标区间上调至5.25%-5.5%,为2007年以来的最高水平。"
async def test_model(model: str, prompt: str, task_name: str):
"""测试单个模型"""
print(f" [{task_name}] 模型={model} 开始...")
start = asyncio.get_event_loop().time()
try:
async with httpx.AsyncClient(timeout=30) as client:
resp = await client.post(
"http://localhost:11434/api/generate",
json={"model": model, "prompt": prompt, "stream": False}
)
elapsed = asyncio.get_event_loop().time() - start
result = resp.json().get("response", "").strip()
print(f" [{task_name}] ✓ {elapsed:.1f}s: {result[:80]}...")
return {"model": model, "task": task_name, "elapsed": elapsed, "result": result}
except Exception as e:
elapsed = asyncio.get_event_loop().time() - start
print(f" [{task_name}] ✗ {elapsed:.1f}s: {e}")
return {"model": model, "task": task_name, "elapsed": elapsed, "error": str(e)}
async def main():
print("=" * 60)
print("多模型并行测试")
print("=" * 60)
print(f"评分模型: {AI_SCORER_MODEL}")
print(f"摘要模型: {AI_SUMMARIZER_MODEL}")
print(f"总结模型: {AI_SUMMARY_MODEL}")
print()
# 并行调用三个模型
tasks = [
test_model(AI_SCORER_MODEL, f"评分(0-5分): {SAMPLE_NEWS}", "评分"),
test_model(AI_SUMMARIZER_MODEL, f"一句话概括(≤30字): {SAMPLE_NEWS}", "摘要"),
test_model(AI_SUMMARY_MODEL, f"一句话概括(≤30字): {SAMPLE_NEWS}", "总结"),
]
print("开始并行调用...")
overall_start = asyncio.get_event_loop().time()
results = await asyncio.gather(*tasks)
overall_elapsed = asyncio.get_event_loop().time() - overall_start
print()
print("=" * 60)
print(f"总耗时: {overall_elapsed:.1f}s")
print("=" * 60)
for r in results:
if "error" in r:
print(f" {r['task']}: 失败 ({r['elapsed']:.1f}s)")
else:
print(f" {r['task']}: {r['elapsed']:.1f}s - {r['model']}")
print()
print("并行优势: 如果串行需要 ~" + f"{sum(r['elapsed'] for r in results):.1f}s,并行只需 {overall_elapsed:.1f}s")
if __name__ == "__main__":
asyncio.run(main())