《法律合唱团早新闻生成器项目上传及使用全流程文档》
一、项目介绍
本项目是专门为法律合唱团打造的早新闻生成器,其核心功能为每日早上 7 点自动生成早报信息,并将这些信息精准推送到企业微信。具体实现步骤及功能模块如下:
- 配置信息读取:从
config.ini
文件中提取关键配置,涵盖和风天气 API 密钥、阿里云百炼 API 密钥以及企业微信机器人 Webhook 地址。 - 多源信息获取
- 日期:准确获取当前日期。
- 天气:借助和风天气 API 获取北京、上海、广州的实时天气信息。
- 新闻:调用
get_news
函数抓取 6 条当日热点新闻。 - 语录:从法律人经验贴中精心选取一条语录。
- 问候语与禅语:利用通义千问 API 生成温馨的早安问候语和富有哲理的禅语。
- 早报内容整合:把获取到的各类信息进行有机组合,生成完整的早报内容。
- 信息推送:若成功获取企业微信机器人 Webhook 地址,将早报信息推送到企业微信。
- 定时任务设置:运用
apscheduler
库设定定时任务,确保每天早上 7 点准时执行main
函数发送早报。
二、从阿里云镜像拉取项目到本地的坎坷过程
(一)前期准备
- 注册并登录阿里云账号,在容器镜像服务控制台创建命名空间和镜像仓库。
- 本地安装 Docker 环境,确保 Docker 服务正常运行。
(二)拉取镜像的波折
- 权限问题
最初尝试拉取镜像时,收到权限不足的错误提示。经排查发现,未在阿里云容器镜像服务中正确配置访问凭证。解决办法是在阿里云控制台生成个人访问凭证,并在本地使用docker login
命令登录阿里云镜像仓库:
收起
bash
docker login --username=your_username registry.cn-hangzhou.aliyuncs.com
输入生成的访问凭证密码后,成功解决权限问题。
2. 网络连接不稳定
拉取过程中,多次出现网络连接中断的情况。分析原因是本地网络环境不稳定,且阿里云镜像仓库服务器负载可能较高。通过切换到稳定的网络环境,并在网络使用低谷时段重新尝试拉取,问题得到解决。
3. 镜像版本不匹配
按照文档指定的镜像版本拉取时,提示镜像不存在。仔细检查发现文档中的版本号有误,在阿里云控制台确认正确的镜像版本号后,使用以下命令成功拉取镜像:
收起
bash
docker pull registry.cn-hangzhou.aliyuncs.com/your_namespace/your_repository:correct_version
【开始的时候,按照豆包的提示修改了好几遍Dockerfile文档,但是镜像文件总是没办法获取成功。原因是外网的网址无法访问,阿里云的是需要用户登录,查看清楚版本及哈希值后再进行修改的。这样的话就可以拉取成功了】
三、将项目上传到群晖的具体过程
(一)准备工作
- 确保群晖设备已正确安装并稳定运行 DSM(DiskStation Manager)操作系统。
- 开启群晖的 SSH 服务或 Web Station 服务,以便后续上传文件。
(二)创建共享文件夹
- 登录群晖的 DSM 管理界面。
- 在左侧导航栏中找到 “控制面板” 并点击进入。
- 在 “控制面板” 里找到 “共享文件夹” 选项,点击进入该设置页面。
- 点击 “创建” 按钮,输入共享文件夹的名称(例如
MorningNewsProject
),选择合适的存储位置,然后点击 “确定” 完成创建。
(三)上传项目文件
可选择以下两种方式上传项目文件:
方式一:通过 File Station(Web 界面)上传
- 在 DSM 管理界面中,找到 “File Station” 应用并点击进入。
- 导航至刚刚创建的共享文件夹(如
MorningNewsProject
)。 - 在 File Station 界面的左侧导航栏中,点击 “上传” 按钮。
- 在弹出的文件选择对话框中,选中本地的项目文件夹(包含
morning_news_generator
文件夹和config.ini
文件),点击 “打开” 开始上传。
方式二:通过 SSH 上传(适合熟悉命令行操作的用户)
- 在本地计算机上打开终端(Linux 或 macOS)或命令提示符(Windows)。
- 使用
scp
命令将本地项目文件夹上传到群晖。假设群晖 IP 地址为192.168.1.100
,用户名为admin
,本地项目文件夹路径是/path/to/your/project
,群晖上的共享文件夹路径是/volume1/MorningNewsProject
,则执行以下命令:
收起
bash
scp -r /path/to/your/project admin@192.168.1.100:/volume1/MorningNewsProject
输入群晖用户的密码,等待文件上传完成。
(四)配置项目环境
若项目依赖特定的 Python 库或环境,需在群晖上进行相应配置:
- 登录群晖的 SSH 终端。
- 安装 Python(若尚未安装):
收起
bash
sudo apt-get update
sudo apt-get install python3 python3-pip
- 安装项目所需的 Python 库:
收起
bash
cd /volume1/MorningNewsProject/morning_news_generator
pip3 install -r requirements.txt
注意:需先创建 requirements.txt
文件,列出项目所需的所有 Python 库。
(五)运行项目
在群晖的 SSH 终端中,进入项目目录并运行项目:
收起
bash
cd /volume1/MorningNewsProject/morning_news_generator
python3 main.py
四、实现效果
按照上述步骤操作后,项目在群晖上成功运行。每天早上 7 点,群晖会自动执行早新闻生成程序,将生成的早报信息包含日期、天气、新闻、语录、问候语和禅语等,准确无误地推送到企业微信,实现了信息的自动化推送,为法律合唱团成员提供了便捷、及时的早间资讯服务。
五、关于通过群晖实现自动播报的结论
从技术层面来看,群晖本身具备一定的扩展性和可编程性,结合相关工具和服务,是有可能实现自动播报功能的,但需要额外的配置和资源。
(一)可行的实现途径
可以借助群晖的 Docker 功能,部署一个支持语音合成和播放的容器,将早报信息通过 API 传递给语音合成服务(如阿里云语音合成、百度语音合成等),生成语音文件,再通过群晖连接的音频设备(如音响)进行播放。同时,利用群晖的定时任务功能,在早报生成后触发语音合成和播放流程。
(二)面临的挑战
- 音频设备连接与兼容性:需要确保群晖能够稳定连接音频播放设备,并且设备驱动和相关软件能够正常工作。
- 语音合成服务配置:要完成语音合成服务的注册、API 密钥配置、参数设置等工作,确保生成的语音质量符合要求。
- 系统资源占用:语音合成和播放过程可能会占用一定的系统资源,需要评估群晖的性能是否能够满足需求,避免影响其他服务的正常运行。
综上所述,通过群晖实现自动播报理论上是可行的,但需要投入一定的时间和精力进行配置和调试,同时要充分考虑系统资源和设备兼容性等问题。