项目概述
OmniSteward 是一个正在积极开发中的全能管家系统,它借助大语言模型的强大能力,实现了与用户的语音和文字交互,旨在帮助用户轻松控制智能家居设备以及管理电脑程序。遵循 MIT License 开源协议。其具备诸多亮点,如支持多轮对话、可调用工具执行复杂任务、兼容多种 LLM 模型且拓展性强,用户能够方便地自定义和分享工具。

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



