feat: LLM 论文图书馆 — 初始提交
- FastAPI 后端: REST API + Bearer Token 鉴权 + PDF 代理 - 180 篇论文数据 (data/papers.json): 9 模块、32 子领域 - 前端: 数据驱动、卡片径向渐变光效、PDF 页面内阅读 - 底部状态栏: arXiv/HF 连通性检测 - PDF 加载: arXiv 优先(5s超时) → HK 本地兜底 - Docker 化部署 (Dockerfile + start.sh + nginx.conf) - arXiv + HF 批量下载器 (api/downloader.py)
This commit is contained in:
43
start.sh
Executable file
43
start.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
# LLM 论文图书馆 — 启动脚本
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# 加载环境变量
|
||||
if [ -f .env ]; then
|
||||
export $(grep -v '^#' .env | xargs)
|
||||
fi
|
||||
|
||||
# 生成 API Key (如果未设置)
|
||||
if [ -z "$LLM_LIB_API_KEY" ]; then
|
||||
export LLM_LIB_API_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))")
|
||||
echo "API_KEY=$LLM_LIB_API_KEY" > .env
|
||||
echo "⚠️ 自动生成 API Key: $LLM_LIB_API_KEY"
|
||||
fi
|
||||
|
||||
echo "═══ LLM 论文图书馆 ═══"
|
||||
echo " API Key: ${LLM_LIB_API_KEY:0:8}..."
|
||||
echo " Port: ${PORT:-8000}"
|
||||
echo " PDF Dir: papers/"
|
||||
echo
|
||||
|
||||
# 首次运行: 下载依赖
|
||||
if ! python3 -c "import fastapi" 2>/dev/null; then
|
||||
echo "📦 安装依赖..."
|
||||
pip install -r requirements.txt -q
|
||||
fi
|
||||
|
||||
# 如果 papers.json 不存在,从 HTML 重新提取
|
||||
if [ ! -f data/papers.json ]; then
|
||||
echo "📊 提取论文数据..."
|
||||
python3 api/extract_data.py || echo "⚠️ extract_data.py 失败,请手动运行"
|
||||
fi
|
||||
|
||||
# 启动服务
|
||||
echo "🚀 启动服务..."
|
||||
exec python3 -m uvicorn api.server:app \
|
||||
--host 0.0.0.0 \
|
||||
--port ${PORT:-8000} \
|
||||
--log-level ${LOG_LEVEL:-info}
|
||||
Reference in New Issue
Block a user