OmniSteward:基于 LLM Agent 的语音与电脑全能管家
项目概述
OmniSteward 是一个正在积极开发中的全能管家系统,它借助大语言模型的强大能力,实现了与用户的语音和文字交互,旨在帮助用户轻松控制智能家居设备以及管理电脑程序。该项目遵循 MIT License 开源协议,具备多轮对话、工具调用、兼容多种 LLM 模型且拓展性强等特点。用户能够方便地自定义和分享工具,通过不断的更新与完善,有望成为智能生活领域的重要应用。

功能特性
多模态交互体验
OmniSteward 提供了语音和文字两种交互模式。语音交互利用先进的语音识别技术,准确理解用户的语音指令;文字交互则为用户提供了精确表达复杂需求的途径。支持多轮对话功能,系统能够依据之前的对话内容和上下文,连续回答用户问题,使交互过程更加自然流畅。
强大的功能集成
- 智能家居控制:与巴法云等平台对接,用户可通过语音或文字指令控制家中的灯光、电器、窗帘等设备。例如'打开客厅空调并设置为 26 度'等指令,都能精准执行。
- 电脑程序管理:轻松实现电脑程序的启动、关闭以及运行状态查看。只需说出'启动 Photoshop'或'查看当前后台运行程序',即可快速操作。
- 在线信息检索:借助 step_web_search 工具和 Kimi AI,用户能快速获取各类在线信息,无论是查询历史事件还是获取实时新闻。
- 文件管理:支持文件检索、读写、压缩文件夹和列出文件夹内容等操作,方便管理电脑中的文件资源。
- 命令行操作:满足专业用户对命令行操作的需求,用户可通过语音或文字执行复杂的命令行任务。
模型灵活性与拓展性
支持多种大语言模型,用户可根据自身喜好和需求切换。同时,系统具有很强的拓展性,用户能够方便地自定义工具,还可以将其分享给其他用户,共同丰富 OmniSteward 的功能生态。
技术架构
语音处理技术:采用 pyaudio 和 sounddevice 等技术进行语音处理。pyaudio 负责音频的输入输出,sounddevice 在音频设备管理方面发挥关键作用,两者协同确保语音交互的高效性和准确性。
AI 模型应用:集成了 Qwen2.5、BGE Reranker 和 Silero VAD 等先进模型。Qwen2.5 作为核心语言模型,具备强大的语言理解和生成能力;BGE Reranker 用于优化搜索结果排序;Silero VAD 实现精准的语音活动检测。
Web 服务架构:后端基于 Flask 框架构建 Web 服务,利用 zerorpc 实现高效的远程过程调用,保障前后端之间的稳定通信。
浏览器自动化技术:运用 Selenium 实现浏览器自动化操作,模拟用户在浏览器中的行为,为在线信息检索等功能提供支持。
安装与使用
环境准备
确保您的设备已安装 Python 3.8 及以上版本。需安装 Chrome 浏览器,这是用于实现 Kimi AI 功能的必要组件。目前 OmniSteward 主要在 Windows 操作系统上进行了功能测试,Linux 和 Mac 系统的部分功能兼容性尚未完全确定。
部署步骤
首先,克隆项目仓库到本地。进入终端后执行以下命令:
git clone https://github.com/OmniSteward/OmniSteward.git
cd OmniSteward
接着安装依赖项。在项目目录中执行:
pip install -r requirements.txt
配置环境变量
打开项目中的 examples/env.cmd 文件,配置一系列环境变量。这一步至关重要,因为系统需要这些密钥来连接外部服务和模型。
OPENAI_API_BASE=your_api_base
OPENAI_API_KEY=your_api_key
SILICON_FLOW_API_KEY=your_api_key
BEMFA_UID=your_bemfa_uid
BEMFA_TOPIC=your_bemfa_topic
KIMI_PROFILE_PATH=path_to_chrome_profile
LOCATION=your_location
LLM_MODEL=your_llm_model
其中,API 密钥和基础 URL 的获取方式可参考项目文档。地理位置(LOCATION)可用于优化系统提示词,LLM_MODEL 默认为 Qwen2.5-7B-Instruct。
启动方式
OmniSteward 支持两种使用方式,您可以根据实际需求选择合适的启动方式。
命令行模式(CLI)
- 麦克风语音输入模式:首先,启动 VAD(语音活动检测)服务,在命令行中输入:
启动 VAD 服务后,新开一个命令行窗口,执行以下命令使环境变量生效并运行 CLI:python -m servers.vad_rpccall examples\env.cmd python -m core.cli --config configs/cli.py - 文字输入模式:若希望使用文字输入方式,在配置好环境变量后,直接输入:
您可以将双引号中的指令替换为您实际需要执行的操作。call examples\env.cmd python -m core.cli --query"打开网易云音乐"--config configs/cli.py - 添加自定义工具:如果您想要添加自定义工具,确保环境变量已生效,然后输入:
此示例在call examples\env.cmd python -m core.cli --query"打印 你好"--config configs/cli_custom_tool.pyconfigs/cli_custom_tool.py文件中添加了一个简单的打印工具,您可以查看该文件了解如何添加自定义工具。
Web 模式
- 启动后端服务:在项目根目录下,执行以下命令配置环境变量并启动后端服务:
call examples\env.cmd python -m servers.steward --config configs/backend.py - 启动前端服务:前端服务的启动请详见 OmniSteward - Frontend 项目的相关说明。一般来说,您需要按照该项目提供的步骤进行安装和启动操作。
- 访问使用:完成后端和前端服务的启动后,使用 Chrome/Edge 浏览器,打开
http://localhost:8000,即可开始使用。如果您需要在外网使用,由于 Chrome/Edge 默认禁止 HTTP 下的麦克风,您需要进行额外的设置。具体操作是,在浏览器地址栏中输入chrome://flags/#unsafely_treat_insecure_origin_as_secure,将其值设置为http://ip:port。
应用场景
在家庭生活中,OmniSteward 成为智能家居的控制中心。早晨,用户可通过语音指令让其打开窗帘、播放音乐;晚上,可控制灯光关闭、设置闹钟。做家务时,能随时查询菜谱、获取清洁技巧。
在办公场景下,帮助用户快速启动办公软件、查找资料、管理文件,如'打开 PPT 并切换到演示模式''总结报告要点'等指令,有效提高办公效率。对于学生学习,可作为智能学习伙伴,解答学习问题、推荐学习资源。
结语
OmniSteward 作为一款充满潜力的全能 AI 管家系统,以其丰富的功能、先进的技术架构和广阔的应用前景,为我们展示了智能生活的美好画卷。尽管目前仍处于积极开发阶段,部分功能有待完善,但它已经迈出了坚实的步伐。在未来,随着技术的持续创新和应用场景的不断拓展,OmniSteward 有望成为智能生活领域的核心应用。
项目地址:https://github.com/OmniSteward/OmniSteward


