Add project startup scripts
This commit is contained in:
168
setup.bat
Normal file
168
setup.bat
Normal file
@@ -0,0 +1,168 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title Jarvis 配置向导
|
||||
|
||||
echo ==========================================
|
||||
echo Jarvis 个人 AI 助理 - 配置向导
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM --- 选择 LLM 提供商 ---
|
||||
echo 请选择 LLM 提供商:
|
||||
echo [1] OpenAI (GPT-4o) - 默认推荐
|
||||
echo [2] DeepSeek (deepseek-chat) - 性价比高
|
||||
echo [3] Claude (Anthropic) - 强大稳定
|
||||
echo [4] Ollama (本地模型) - 完全免费
|
||||
echo.
|
||||
set /p PROVIDER_CHOICE=请选择 (1-4), 默认1:
|
||||
|
||||
if "%PROVIDER_CHOICE%"=="" set PROVIDER_CHOICE=1
|
||||
if "%PROVIDER_CHOICE%"=="1" goto :openai
|
||||
if "%PROVIDER_CHOICE%"=="2" goto :deepseek
|
||||
if "%PROVIDER_CHOICE%"=="3" goto :claude
|
||||
if "%PROVIDER_CHOICE%"=="4" goto :ollama
|
||||
goto :openai
|
||||
|
||||
:openai
|
||||
echo.
|
||||
echo [选择] OpenAI (GPT-4o)
|
||||
echo.
|
||||
set /p OPENAI_API_KEY=请输入 OpenAI API Key (sk-...):
|
||||
if "%OPENAI_API_KEY%"=="" (
|
||||
echo [错误] API Key 不能为空
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
goto :write_env
|
||||
|
||||
:deepseek
|
||||
echo.
|
||||
echo [选择] DeepSeek
|
||||
echo.
|
||||
set /p OPENAI_API_KEY=请输入 DeepSeek API Key:
|
||||
if "%OPENAI_API_KEY%"=="" (
|
||||
echo [错误] API Key 不能为空
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
goto :write_env
|
||||
|
||||
:claude
|
||||
echo.
|
||||
echo [选择] Claude (Anthropic)
|
||||
echo.
|
||||
set /p ANTHROPIC_API_KEY=请输入 Anthropic API Key (sk-ant-...):
|
||||
if "%ANTHROPIC_API_KEY%"=="" (
|
||||
echo [错误] API Key 不能为空
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
goto :write_env
|
||||
|
||||
:ollama
|
||||
echo.
|
||||
echo [选择] Ollama (本地模型)
|
||||
echo 请确保 Ollama 已启动 (ollama serve)
|
||||
echo.
|
||||
set /p OLLAMA_MODEL_IN=请输入模型名 (留空默认 llama3):
|
||||
if "%OLLAMA_MODEL_IN%"=="" set OLLAMA_MODEL=llama3
|
||||
goto :write_env
|
||||
|
||||
:write_env
|
||||
echo.
|
||||
echo [配置] 写入 backend\.env...
|
||||
|
||||
(
|
||||
echo # =============================================
|
||||
echo # Jarvis 后端配置
|
||||
echo # =============================================
|
||||
echo.
|
||||
echo APP_NAME=Jarvis
|
||||
echo APP_VERSION=0.1.0
|
||||
echo DEBUG=true
|
||||
echo SECRET_KEY=jarvis-secret-key-change-in-production
|
||||
echo.
|
||||
echo CORS_ORIGINS=http://localhost:5173,http://localhost:3000
|
||||
echo.
|
||||
echo # LLM 配置
|
||||
) > backend\.env
|
||||
|
||||
if "%PROVIDER_CHOICE%"=="1" (
|
||||
(
|
||||
echo LLM_PROVIDER=openai
|
||||
echo OPENAI_API_KEY=%OPENAI_API_KEY%
|
||||
echo OPENAI_MODEL=gpt-4o
|
||||
echo OPENAI_BASE_URL=https://api.openai.com/v1
|
||||
) >> backend\.env
|
||||
) else if "%PROVIDER_CHOICE%"=="2" (
|
||||
(
|
||||
echo LLM_PROVIDER=deepseek
|
||||
echo OPENAI_API_KEY=%OPENAI_API_KEY%
|
||||
echo OPENAI_BASE_URL=https://api.deepseek.com/v1
|
||||
) >> backend\.env
|
||||
) else if "%PROVIDER_CHOICE%"=="3" (
|
||||
(
|
||||
echo LLM_PROVIDER=claude
|
||||
echo ANTHROPIC_API_KEY=%ANTHROPIC_API_KEY%
|
||||
echo CLAUDE_MODEL=claude-sonnet-4-20250514
|
||||
) >> backend\.env
|
||||
) else (
|
||||
(
|
||||
echo LLM_PROVIDER=ollama
|
||||
echo OLLAMA_BASE_URL=http://localhost:11434
|
||||
echo OLLAMA_MODEL=%OLLAMA_MODEL%
|
||||
) >> backend\.env
|
||||
)
|
||||
|
||||
(
|
||||
echo.
|
||||
echo # 数据库
|
||||
echo DATABASE_URL=sqlite+aiosqlite:///./data/jarvis.db
|
||||
echo.
|
||||
echo # ChromaDB
|
||||
echo CHROMA_PERSIST_DIR=./data/chroma
|
||||
echo.
|
||||
echo # JWT
|
||||
echo ACCESS_TOKEN_EXPIRE_MINUTES=1440
|
||||
echo.
|
||||
echo # 上传
|
||||
echo UPLOAD_DIR=./data/uploads
|
||||
echo MAX_UPLOAD_SIZE=52428800
|
||||
echo.
|
||||
echo # 定时任务
|
||||
echo SCHEDULER_ENABLED=true
|
||||
echo DAILY_PLAN_TIME=00:00
|
||||
echo FORUM_SCAN_INTERVAL_MINUTES=30
|
||||
echo.
|
||||
echo DATA_DIR=./data
|
||||
) >> backend\.env
|
||||
|
||||
echo [OK] 配置完成
|
||||
|
||||
REM --- 检查 uv ---
|
||||
echo.
|
||||
echo [检查] 验证环境...
|
||||
where uv >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [警告] 未找到 uv,请运行: pip install uv
|
||||
echo 或访问: https://github.com/astral-sh/uv
|
||||
) else (
|
||||
echo [OK] uv 已安装
|
||||
)
|
||||
|
||||
where npm >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [警告] 未找到 npm,请安装 Node.js: https://nodejs.org
|
||||
) else (
|
||||
echo [OK] npm 已安装
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 配置完成!
|
||||
echo.
|
||||
echo LLM: %PROVIDER_CHOICE%
|
||||
echo.
|
||||
echo 下一步: 双击 start.bat 启动服务
|
||||
echo ==========================================
|
||||
pause
|
||||
92
start.bat
Normal file
92
start.bat
Normal file
@@ -0,0 +1,92 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title Jarvis 一键启动
|
||||
|
||||
echo ==========================================
|
||||
echo Jarvis 个人 AI 助理 - 一键启动
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM --- 检查 uv ---
|
||||
where uv >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 未找到 uv,请先安装: https://github.com/astral-sh/uv
|
||||
echo.
|
||||
echo 安装命令:
|
||||
echo pip install uv
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM --- 检查 npm ---
|
||||
where npm >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 未找到 npm,请先安装 Node.js: https://nodejs.org
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM --- 检查 .env ---
|
||||
if not exist backend\.env (
|
||||
echo [提示] 首次运行,需要配置 API Key
|
||||
echo [提示] 请编辑 backend\.env 文件,填入:
|
||||
echo ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxx
|
||||
echo.
|
||||
)
|
||||
|
||||
REM --- 安装后端依赖 ---
|
||||
echo [1/4] 安装后端依赖...
|
||||
cd /d "%~dp0backend"
|
||||
uv sync --quiet
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 后端依赖安装失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [OK] 后端依赖安装完成
|
||||
|
||||
REM --- 安装前端依赖 ---
|
||||
echo.
|
||||
echo [2/4] 安装前端依赖...
|
||||
cd /d "%~dp0frontend"
|
||||
call npm install >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 前端依赖安装失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [OK] 前端依赖安装完成
|
||||
|
||||
REM --- 启动后端 ---
|
||||
echo.
|
||||
echo [3/4] 启动后端服务 (端口 8000)...
|
||||
cd /d "%~dp0backend"
|
||||
start "Jarvis-Backend" cmd /c "uv run uvicorn app.main:app --reload --port 8000"
|
||||
|
||||
REM --- 等待后端启动 ---
|
||||
echo 等待后端启动...
|
||||
timeout /t 5 /nobreak >nul
|
||||
|
||||
REM --- 启动前端 ---
|
||||
echo.
|
||||
echo [4/4] 启动前端服务 (端口 5173)...
|
||||
cd /d "%~dp0frontend"
|
||||
start "Jarvis-Frontend" cmd /c "npm run dev"
|
||||
|
||||
REM --- 完成 ---
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 启动完成!
|
||||
echo.
|
||||
echo 后端: http://localhost:8000
|
||||
echo 前端: http://localhost:5173
|
||||
echo API文档: http://localhost:8000/docs
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 提示:
|
||||
echo - 首次使用请先注册账号
|
||||
echo - 对话前请在 backend\.env 填入 API Key
|
||||
echo - 关闭时请关闭两个终端窗口
|
||||
echo.
|
||||
pause
|
||||
79
start.sh
Normal file
79
start.sh
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo " Jarvis 个人 AI 助理 - 一键启动"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 检查 uv
|
||||
if ! command -v uv &> /dev/null; then
|
||||
echo "[错误] 未找到 uv,请先安装: https://github.com/astral-sh/uv"
|
||||
echo "安装命令: pip install uv"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 npm
|
||||
if ! command -v npm &> /dev/null; then
|
||||
echo "[错误] 未找到 npm,请先安装 Node.js: https://nodejs.org"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 .env
|
||||
if [ ! -f backend/.env ]; then
|
||||
echo "[提示] 首次运行,请编辑 backend/.env 文件"
|
||||
echo " 填入: ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxx"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
# 安装后端依赖
|
||||
echo "[1/4] 安装后端依赖..."
|
||||
cd "$SCRIPT_DIR/backend"
|
||||
uv sync --quiet
|
||||
echo "[OK] 后端依赖安装完成"
|
||||
|
||||
# 安装前端依赖
|
||||
echo ""
|
||||
echo "[2/4] 安装前端依赖..."
|
||||
cd "$SCRIPT_DIR/frontend"
|
||||
npm install --silent
|
||||
echo "[OK] 前端依赖安装完成"
|
||||
|
||||
# 启动后端
|
||||
echo ""
|
||||
echo "[3/4] 启动后端服务 (端口 8000)..."
|
||||
cd "$SCRIPT_DIR/backend"
|
||||
uv run uvicorn app.main:app --reload --port 8000 &
|
||||
BACKEND_PID=$!
|
||||
|
||||
# 等待后端
|
||||
echo " 等待后端启动..."
|
||||
sleep 5
|
||||
|
||||
# 启动前端
|
||||
echo ""
|
||||
echo "[4/4] 启动前端服务 (端口 5173)..."
|
||||
cd "$SCRIPT_DIR/frontend"
|
||||
npm run dev &
|
||||
FRONTEND_PID=$!
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 启动完成!"
|
||||
echo ""
|
||||
echo " 后端: http://localhost:8000"
|
||||
echo " 前端: http://localhost:5173"
|
||||
echo " API文档: http://localhost:8000/docs"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "提示:"
|
||||
echo " - 首次使用请先注册账号"
|
||||
echo " - 对话前请在 backend/.env 填入 API Key"
|
||||
echo " - 关闭时请按 Ctrl+C"
|
||||
echo ""
|
||||
|
||||
# 等待信号
|
||||
trap "kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit" SIGINT SIGTERM
|
||||
wait
|
||||
Reference in New Issue
Block a user