|
@@ -85,13 +85,15 @@ def main():
|
|
|
print("用法: tiku-server <命令> [参数]")
|
|
print("用法: tiku-server <命令> [参数]")
|
|
|
print()
|
|
print()
|
|
|
print("命令:")
|
|
print("命令:")
|
|
|
- print(" serve 启动 FastAPI 服务")
|
|
|
|
|
|
|
+ print(" serve 启动服务")
|
|
|
|
|
+ print(" serve --restart 启动服务(崩溃/更新后自动重启)")
|
|
|
print(" knowledge build 重建知识点编码")
|
|
print(" knowledge build 重建知识点编码")
|
|
|
print(" rebuild-index 手动增量索引")
|
|
print(" rebuild-index 手动增量索引")
|
|
|
print(" stats 终端统计")
|
|
print(" stats 终端统计")
|
|
|
print(" backup 手动备份")
|
|
print(" backup 手动备份")
|
|
|
print(" backup --remote 推送到 WebDAV")
|
|
print(" backup --remote 推送到 WebDAV")
|
|
|
print(" token 显示/重新生成 API token")
|
|
print(" token 显示/重新生成 API token")
|
|
|
|
|
+ print(" token regenerate 重新生成 API token")
|
|
|
sys.exit(1)
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
cmd = sys.argv[1]
|
|
cmd = sys.argv[1]
|
|
@@ -100,12 +102,25 @@ def main():
|
|
|
|
|
|
|
|
if cmd == "serve":
|
|
if cmd == "serve":
|
|
|
import uvicorn
|
|
import uvicorn
|
|
|
- uvicorn.run(
|
|
|
|
|
- create_app(cfg),
|
|
|
|
|
- host=cfg.host,
|
|
|
|
|
- port=cfg.port,
|
|
|
|
|
- log_level="info",
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ auto_restart = len(sys.argv) > 2 and sys.argv[2] == "--restart"
|
|
|
|
|
+
|
|
|
|
|
+ def run():
|
|
|
|
|
+ uvicorn.run(
|
|
|
|
|
+ create_app(cfg),
|
|
|
|
|
+ host=cfg.host,
|
|
|
|
|
+ port=cfg.port,
|
|
|
|
|
+ log_level="info",
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ if auto_restart:
|
|
|
|
|
+ import time as _time
|
|
|
|
|
+ while True:
|
|
|
|
|
+ print(f"{_time.strftime('%Y-%m-%d %H:%M:%S')} 启动服务端...")
|
|
|
|
|
+ run()
|
|
|
|
|
+ print(f"{_time.strftime('%Y-%m-%d %H:%M:%S')} 服务端退出,2 秒后重启...")
|
|
|
|
|
+ _time.sleep(2)
|
|
|
|
|
+ else:
|
|
|
|
|
+ run()
|
|
|
elif cmd == "knowledge":
|
|
elif cmd == "knowledge":
|
|
|
if len(sys.argv) > 2 and sys.argv[2] == "build":
|
|
if len(sys.argv) > 2 and sys.argv[2] == "build":
|
|
|
from app.services.knowledge import build_knowledge
|
|
from app.services.knowledge import build_knowledge
|