提供LLM-Red-Team开发的一系列free-api项目的一些辅助功能。
目前有的功能:
- 定时检测各个
free-api项目的token是否存活,并发送邮件通知。 - 支持使用
cron表达式配置定时任务,并支持动态修改定时任务。 - 支持原生部署、
docker部署、docker-compose一键部署。 - 支持通过
one-api服务(需要二开songquanpeng/one-api,使得接口{baseUrl}/api/channel/{id}返回的key字段不为空)自动获取各个free-api项目的base_url、token - 提供将
songquanpeng/one-api服务的所有渠道数据迁移到martialbe/one-api服务的脚本。
环境变量说明:
PYTHON_PATH:Python解释器的路径(建议使用Python 3.12),默认为系统使用的Python3解释器。示例:/usr/bin/python3.12EMAIL_HOST: 发送邮箱的服务器。示例:smtp.qq.comEMAIL_PASS: 邮箱密码EMAIL_SENDER: 发送邮箱EMAIL_SENDER_NAME: 发送邮箱名称EMAIL_RECEIVERS: 接收邮箱GLM_FREE_API_BASE_URL: 部署的glm-free-api服务的base_url。注意:如果ONE_API_BASE_URL不为空,则这些XX_FREE_API_BASE_URL、XX_FREE_API_TOKEN全部失效。GLM_FREE_API_TOKEN: 调用glm-free-api服务的接口时传入的tokenQWEN_FREE_API_BASE_URL: 部署的qwen-free-api服务的base_urlQWEN_FREE_API_TOKEN: 调用qwen-free-api服务的接口时传入的tokenKIMI_FREE_API_BASE_URL: 部署的kimi-free-api服务的base_urlKIMI_FREE_API_TOKEN: 调用kimi-free-api服务的接口时传入的tokenSPARK_FREE_API_BASE_URL: 部署的spark-free-api服务的base_urlSPARK_FREE_API_TOKEN: 调用spark-free-api服务的接口时传入的tokenMETASO_FREE_API_BASE_URL: 部署的metaso-free-api服务的base_urlMETASO_FREE_API_TOKEN: 调用metaso-free-api服务的接口时传入的tokenONE_API_BASE_URL: 部署的one-api服务的base_url。注意:1.如果该值不为空,则前面的XX_FREE_API_BASE_URL、XX_FREE_API_TOKEN全部失效;2.需要二开songquanpeng/one-api,使得接口{baseUrl}/api/channel/{id}返回的key字段不为空。ONE_API_TOKEN: 调用one-api服务的接口时传入的token。ONE_API_BASE_URL不为空时必传。ONE_API_GLM_FREE_API_CHANNEL_ID:one-api服务中配置glm-free-api服务的channel_idONE_API_QWEN_FREE_API_CHANNEL_ID:one-api服务中配置qwen-free-api服务的channel_idONE_API_KIMI_FREE_API_CHANNEL_ID:one-api服务中配置kimi-free-api服务的channel_idONE_API_SPARK_FREE_API_CHANNEL_ID:one-api服务中配置spark-free-api服务的channel_idONE_API_METASO_FREE_API_CHANNEL_ID:one-api服务中配置metaso-free-api服务的channel_idSCHEDULE_CRON: 定时任务的cron表达式,格式参考cron - 维基百科。示例:0 8 * * *,表示每天早上8点执行。如果不配置,则只执行一次。
- 部署LLM-Red-Team开发的一系列
free-api项目之后 - 执行该
Shell脚本。#!/bin/bash sh ${BASE_DIR}/scripts/start.sh PYTHON_PATH /usr/bin/python3.12 \ EMAIL_HOST smtp.qq.com \ EMAIL_PASS XX \ EMAIL_SENDER XX@qq.com \ EMAIL_SENDER_NAME XX \ EMAIL_RECEIVERS XX@163.com \ GLM_FREE_API_BASE_URL http://XX:8000 \ GLM_FREE_API_TOKEN XX \ QWEN_FREE_API_BASE_URL http://XX:8001 \ QWEN_FREE_API_TOKEN XX \ KIMI_FREE_API_BASE_URL http://XX:8002 \ KIMI_FREE_API_TOKEN XX \ SPARK_FREE_API_BASE_URL http://XX:8003 \ SPARK_FREE_API_TOKEN XX \ METASO_FREE_API_BASE_URL http://XX:8004 \ METASO_FREE_API_TOKEN XX \ SCHEDULE_CRON "0 8 * * *"
注意:
- 替换其中的变量值。
- 不要频繁(小于10分钟)执行。
- 部署LLM-Red-Team开发的一系列
free-api项目 - 执行
pipreqs命令。pipreqs ./ --encoding=utf8 --force
- 执行
docker命令。docker build -t sangea0606/llm-free-api-helper .如果需要清除缓存,就添加
--no-cache - 启动
docker容器docker run -itd --name llm-free-api-helper \ --restart always \ -v /opt/sangea0606-docker/llm-free-api-helper/logs:/app/logs \ -e TZ=Asia/Shanghai \ -e EMAIL_HOST=smtp.qq.com \ -e EMAIL_PASS=XX \ -e EMAIL_SENDER=XX@qq.com \ -e EMAIL_SENDER_NAME=XX \ -e EMAIL_RECEIVERS=XX@163.com \ -e GLM_FREE_API_BASE_URL=http://XX:8000 \ -e GLM_FREE_API_TOKEN=XX \ -e QWEN_FREE_API_BASE_URL=http://XX:8001 \ -e QWEN_FREE_API_TOKEN=XX \ -e KIMI_FREE_API_BASE_URL=http://XX:8002 \ -e KIMI_FREE_API_TOKEN=XX \ -e SPARK_FREE_API_BASE_URL=http://XX:8003 \ -e SPARK_FREE_API_TOKEN=XX \ -e METASO_FREE_API_BASE_URL=http://XX:8004 \ -e METASO_FREE_API_TOKEN=XX \ -e SCHEDULE_CRON="0 8 * * *" \ sangea0606/llm-free-api-helper /bin/bash
- 部署LLM-Red-Team开发的一系列
free-api项目 - 进入
llm-free-api-helper目录,编辑docker-compose.yml文件 - 执行该
docker-compose命令。docker compose up -d
接口详情见源码, 后续会使用swagger管理接口文档
/task/list查询任务列表/task/update修改定时任务/task/pause暂停定时任务/task/resume恢复定时任务/task/delete删除定时任务/task/check_tokens检测各个token是否存活,并发送邮件通知
python one_api_migrator.py {one_api_base_url} {one_api_token} {martialbe_one_api_base_url} {martialbe_one_api_token}- 支持多账号的存活检测
- 支持
kimi-free-api、spark-free-api、metaso-free-api - 提供
docker、docker-compose部署方式 - 支持通过
one-api服务自动获取各个free-api项目的token - 将
Schedule换为支持cron表达式的APScheduler - 使用
fastapi重构系统,提供定时任务相关的API接口 - 使用
swagger管理接口文档