开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 0

luyuan/MaxKB

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
v2
分支 (24)
标签 (57)
v2
tool-workflow
v1
release-2.6
pr@v2@fix_system_tool_record
release-2.5
release-2.4
release-2.3
release-2.2
release-1.10
release-2.1
main
release-2.0
loop_node
release-1.9
release-1.8
release-1.7
release-1.6
release-1.5
release-1.4
v2.6.1
v2.6.0
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.1
v2.2.0
v1.10.11-lts
v2.1.2
v2.1.1
v2.1.0
v1.10.10-lts
v2.0.2
v1.10.9-lts
v2.0.1
v2.0.0
v1.10.8-lts
v2
分支 (24)
标签 (57)
v2
tool-workflow
v1
release-2.6
pr@v2@fix_system_tool_record
release-2.5
release-2.4
release-2.3
release-2.2
release-1.10
release-2.1
main
release-2.0
loop_node
release-1.9
release-1.8
release-1.7
release-1.6
release-1.5
release-1.4
v2.6.1
v2.6.0
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.1
v2.2.0
v1.10.11-lts
v2.1.2
v2.1.1
v2.1.0
v1.10.10-lts
v2.0.2
v1.10.9-lts
v2.0.1
v2.0.0
v1.10.8-lts
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
v2
分支 (24)
标签 (57)
v2
tool-workflow
v1
release-2.6
pr@v2@fix_system_tool_record
release-2.5
release-2.4
release-2.3
release-2.2
release-1.10
release-2.1
main
release-2.0
loop_node
release-1.9
release-1.8
release-1.7
release-1.6
release-1.5
release-1.4
v2.6.1
v2.6.0
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.1
v2.2.0
v1.10.11-lts
v2.1.2
v2.1.1
v2.1.0
v1.10.10-lts
v2.0.2
v1.10.9-lts
v2.0.1
v2.0.0
v1.10.8-lts
MaxKB
/
main.py
MaxKB
/
main.py
main.py 3.90 KB
一键复制 编辑 原始数据 按行查看 历史
liqiang-fit2cloud 提交于 2025年11月28日 09:58 +08:00 . refactor: change TMPDIR env.
import argparse
import logging
import os
import sys
import time
import django
from django.core import management
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
APP_DIR = os.path.join(BASE_DIR, 'apps')
os.chdir(BASE_DIR)
sys.path.insert(0, APP_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "maxkb.settings")
def collect_static():
"""
收集静态文件到指定目录
本项目主要是将前端vue/dist的前端项目放到静态目录下面
:return:
"""
logging.info("Collect static files")
try:
management.call_command('collectstatic', '--no-input', '-c', verbosity=0, interactive=False)
logging.info("Collect static files done")
except:
pass
def perform_db_migrate():
"""
初始化数据库表
"""
logging.info("Check database structure change ...")
logging.info("Migrate model change to database ...")
try:
management.call_command('migrate')
except Exception as e:
logging.error('Perform migrate failed, exit', exc_info=True)
sys.exit(11)
def start_services():
services = args.services if isinstance(args.services, list) else [args.services]
start_args = []
if args.daemon:
start_args.append('--daemon')
if args.force:
start_args.append('--force')
if args.worker:
start_args.extend(['--worker', str(args.worker)])
else:
worker = os.environ.get('MAXKB_CORE_WORKER')
if isinstance(worker, str) and worker.isdigit():
start_args.extend(['--worker', worker])
try:
management.call_command(action, *services, *start_args)
except KeyboardInterrupt:
logging.info('Cancel ...')
time.sleep(2)
except Exception as exc:
logging.error("Start service error {}: {}".format(services, exc))
time.sleep(2)
def dev():
services = args.services if isinstance(args.services, list) else args.services
if services.__contains__('web'):
management.call_command('runserver', "0.0.0.0:8080")
elif services.__contains__('celery'):
management.call_command('celery', 'celery')
elif services.__contains__('local_model'):
from maxkb.const import CONFIG
bind = f'{CONFIG.get("LOCAL_MODEL_HOST")}:{CONFIG.get("LOCAL_MODEL_PORT")}'
management.call_command('runserver', bind)
if __name__ == '__main__':
os.environ['HF_HOME'] = '/opt/maxkb-app/model/base'
os.environ['TMPDIR'] = '/opt/maxkb-app/tmp'
parser = argparse.ArgumentParser(
description="""
qabot service control tools;
Example: \r\n
%(prog)s start all -d;
"""
)
parser.add_argument(
'action', type=str,
choices=("start", "dev", "upgrade_db", "collect_static"),
help="Action to run"
)
args, e = parser.parse_known_args()
parser.add_argument(
"services", type=str, default='all' if args.action == 'start' else 'web', nargs="*",
choices=("all", "web", "task") if args.action == 'start' else ("web", "celery", 'local_model'),
help="The service to start",
)
parser.add_argument('-d', '--daemon', nargs="?", const=True)
parser.add_argument('-w', '--worker', type=int, nargs="?")
parser.add_argument('-f', '--force', nargs="?", const=True)
args = parser.parse_args()
action = args.action
services = args.services if isinstance(args.services, list) else args.services
if services.__contains__('web'):
os.environ.setdefault('SERVER_NAME', 'web')
elif services.__contains__('local_model'):
os.environ.setdefault('SERVER_NAME', 'local_model')
django.setup()
if action == "upgrade_db":
perform_db_migrate()
elif action == "collect_static":
collect_static()
elif action == 'dev':
collect_static()
perform_db_migrate()
dev()
else:
collect_static()
perform_db_migrate()
start_services()
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
暂无标签
GPL-3.0
使用 GPL-3.0 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/java_doc/MaxKB.git
git@gitee.com:java_doc/MaxKB.git
java_doc
MaxKB
MaxKB
v2
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /