OmniSteward:LLM Agent 赋能,语音文字随心控,智能家居与电脑的超级管家

OmniSteward:LLM Agent 赋能,语音文字随心控,智能家居与电脑的超级管家

目录


一、前言

在科技日新月异的今天,人工智能正以前所未有的速度改变着我们的生活方式。从智能手机的语音助手到智能家居的自动化控制,AI技术逐渐渗透到生活的各个角落,为我们带来了便捷与高效。OmniSteward正是在这样的背景下应运而生,它作为一款基于大语言模型的全能AI管家系统,致力于打破人机交互的壁垒,为用户打造一个智能、高效、便捷的生活和工作环境。无论是忙碌的上班族希望在工作中提高效率,还是追求高品质生活的家庭用户渴望轻松掌控家居设备,OmniSteward都有可能成为他们理想的智能伙伴,引领我们进入一个全新的智能生活时代。

二、项目概述

OmniSteward是一个正在积极开发中的全能管家系统,它借助大语言模型的强大能力,实现了与用户的语音和文字交互,旨在帮助用户轻松控制智能家居设备以及管理电脑程序。该项目由ElliottZheng主要维护,在开发过程中得到了阶跃星辰开放平台【繁星计划】的支持,并遵循MIT License开源协议。其具备诸多亮点,如支持多轮对话、可调用工具执行复杂任务、兼容多种LLM模型且拓展性强,用户能够方便地自定义和分享工具。通过不断的更新与完善,OmniSteward有望成为智能生活领域的重要应用,为用户提供更加智能化、个性化的服务体验。

在这里插入图片描述

三、功能特性

  1. 多模态交互体验
    • OmniSteward提供了语音和文字两种交互模式,满足用户在不同场景下的需求。语音交互利用先进的语音识别技术,准确理解用户的语音指令;文字交互则为用户提供了精确表达复杂需求的途径。支持多轮对话功能,系统能够依据之前的对话内容和上下文,连续回答用户问题,使交互过程更加自然流畅。例如,用户可以在一系列对话中连续询问不同的问题,OmniSteward都能准确理解并给予合理回应。
  2. 强大的功能集成
    • 智能家居控制:与巴法云等平台对接,用户可通过语音或文字指令控制家中的灯光、电器、窗帘等设备。如“打开客厅空调并设置为26度”“关闭卧室所有灯光”等指令,都能精准执行,让家居生活更加便捷舒适。
    • 电脑程序管理:轻松实现电脑程序的启动、关闭以及运行状态查看。用户只需说出“启动Photoshop”“关闭正在运行的音乐播放器”“查看当前后台运行程序”等指令,即可快速操作电脑程序,提高工作效率。
    • 在线信息检索:借助step_web_search工具和Kimi AI,用户能快速获取各类在线信息。无论是查询历史事件、科学知识,还是获取实时新闻、天气预报,OmniSteward都能迅速从互联网上搜索并呈现准确结果。
    • 文件管理:支持文件检索、读写、压缩文件夹和列出文件夹内容等操作。用户可以说“查找上个月修改的文档”“在文档中添加一段文字”“压缩工作文件夹”“列出下载文件夹中的所有文件”等,方便管理电脑中的文件资源。
    • 命令行操作:满足专业用户对命令行操作的需求,用户可通过语音或文字执行复杂的命令行任务,进一步拓展了系统的应用范围。
  3. 模型灵活性与拓展性
    • 支持多种大语言模型,用户可根据自身喜好和需求切换,以获取最佳的交互效果。同时,系统具有很强的拓展性,用户能够方便地自定义工具,还可以将其分享给其他用户,共同丰富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、安装步骤

  1. 克隆仓库
    打开命令行终端(如CMD或PowerShell),输入以下命令克隆OmniSteward项目仓库到本地:
git clone https://github.com/OmniSteward/OmniSteward.git 

克隆完成后,使用cd命令进入项目目录:

cd OmniSteward 
  1. 安装依赖
    在项目目录中,执行以下命令安装项目所需的依赖项:
pip install-r requirements.txt 

3、环境变量配置

  1. 打开项目中的examples/env.cmd文件,您需要在该文件中配置一系列环境变量,具体如下:
OPENAI_API_BASE=your_api_base # OpenAI格式API基础URLOPENAI_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)

  1. 环境变量配置(重要)
    在启动命令行模式之前,请务必先在examples/env.cmd文件中按照上述要求正确配置环境变量,确保系统能够正常运行所需的各项服务和功能。
  2. 麦克风语音输入模式
    首先,启动VAD(语音活动检测)服务,在命令行中输入:
python -m servers.vad_rpc 

启动VAD服务后,新开一个命令行窗口,执行以下命令使环境变量生效并运行CLI:

call examples\env.cmd python -m core.cli --config configs/cli.py 

更多关于麦克风语音输入模式的详细信息,可查看examples/cli_voice.cmd文件。

  1. 文字输入模式
    若您希望使用文字输入方式与OmniSteward交互,在配置好环境变量后,在命令行中输入:
call examples\env.cmd python -m core.cli --query"打开网易云音乐"--config configs/cli.py 

您可以将双引号中的指令替换为您实际需要执行的操作。例如,如果您想查询天气信息,可将指令改为“查询今天北京的天气”。

  1. 简单添加自定义工具
    如果您想要添加自定义工具,首先确保环境变量已生效,然后在命令行中输入:
call examples\env.cmd python -m core.cli --query"打印 你好"--config configs/cli_custom_tool.py 

此示例在configs/cli_custom_tool.py文件中添加了一个简单的打印工具,您可以查看该文件了解如何添加自定义工具。您可以根据自己的需求修改该文件,实现更复杂的自定义功能。例如,如果您想添加一个计算工具,可在该文件中编写相应的计算函数,并在命令行中使用类似的方式调用。

4.2 Web模式

  1. 环境变量配置(重要)
    同样,在使用Web模式之前,要先在examples/env.cmd文件中正确配置环境变量,尤其是Silicon Flow API密钥,否则系统将无法正常运行。
  2. 启动后端服务
    在项目根目录下,执行以下命令配置环境变量并启动后端服务:
call examples\env.cmd python -m servers.steward --config configs/backend.py 
  1. 启动前端服务
    前端服务的启动请详见OmniSteward - Frontend项目的相关说明。一般来说,您需要按照该项目提供的步骤进行安装和启动操作。
  2. 使用
    完成后端和前端服务的启动后,使用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,并按照上述方法进行设置后即可开始使用。

六、应用场景与未来展望

1、家庭生活场景
在家庭生活中,OmniSteward成为智能家居的控制中心。早晨,用户可通过语音指令让其打开窗帘、播放音乐,开启美好的一天;晚上,可控制灯光关闭、设置闹钟等。做家务时,能随时查询菜谱、获取清洁技巧。还可用于家庭账单查询、日程安排等,使家庭生活更加有序。

2、 办公学习场景
在办公场景下,帮助用户快速启动办公软件、查找资料、管理文件,如“打开PPT并切换到演示模式”“查找项目相关文档”“总结报告要点”等指令,有效提高办公效率。对于学生学习,可作为智能学习伙伴,解答学习问题、推荐学习资源,如“解释物理公式”“推荐数学学习网站”等,助力学习进步。

3、未来发展趋势
随着技术的不断进步,OmniSteward将在更多领域发挥重要作用。在智能家居方面,与更多设备深度集成,实现更个性化的家居控制;在智能健康领域,与健康监测设备结合提供健康建议;在智能交通领域,与车辆系统对接实现语音控制和交通信息查询。其模型将不断优化,功能持续拓展,为用户带来更加智能、便捷、舒适的生活体验。

七、结语

OmniSteward作为一款充满潜力的全能AI管家系统,以其丰富的功能、先进的技术架构和广阔的应用前景,为我们展示了智能生活的美好画卷。尽管目前仍处于积极开发阶段,部分功能有待完善,但它已经迈出了坚实的步伐。在未来,随着技术的持续创新和应用场景的不断拓展,OmniSteward有望成为智能生活领域的核心应用,彻底改变我们与智能设备的交互方式,让我们的生活更加智能化、便捷化。期待OmniSteward在不断发展中为我们带来更多的惊喜,引领我们走进一个更加智能的新时代。

项目地址:https://github.com/OmniSteward/OmniSteward

在这里插入图片描述

🎯🔖更多专栏系列文章:AI大模型提示工程完全指南AI大模型探索之路(零基础入门)AI大模型预训练微调进阶AI大模型开源精选实践AI大模型RAG应用探索实践🔥🔥🔥 其他专栏可以查看博客主页📑

😎 作者介绍:我是寻道AI小兵,资深程序老猿,从业10年+、互联网系统架构师,目前专注于AIGC的探索。
📖 技术交流:欢迎关注【小兵的AI视界】公众号或扫描下方👇二维码,加入技术交流群,开启编程探索之旅。
💘精心准备📚500本编程经典书籍、💎AI专业教程,以及高效AI工具。等你加入,与我们一同成长,共铸辉煌未来。
如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!

Read more

B站PC端web自动开启字幕脚本(2026新版适配)

B站自动字幕用户脚本:快捷键开关 + 自动开启字幕(2026新版适配) 作者:Apixus 更新日期:2026年3月5日 项目地址:GitHub仓库 一、脚本介绍 你是否经常在B站看视频时反复手动开启字幕?是否希望切换视频时字幕能自动开启? 这个用户脚本就是为了解决这些问题而开发的。 B站自动字幕脚本 提供了以下功能: * 🎯 快捷键控制:按 C 键快速开启或关闭字幕 * 🔄 自动开启:切换分P、点击推荐视频时自动打开字幕 * 🆕  2026新版适配:专为B站最新版播放器优化 * ⚡ 性能优化:智能监听,告别卡顿轮询 * 🛡️ 防冲突:自动识别输入框,避免误触 二、适用页面 * 普通视频页:https://www.bilibili.com/video/* * 播放列表页:https://www.bilibili.com/list/* 支持普通视频页、番剧页、播放列表页等常见场景。 三、

唤醒80年代记忆:基于百度地图的一次老式天气预报的WebGIS构建之旅

唤醒80年代记忆:基于百度地图的一次老式天气预报的WebGIS构建之旅

目录 一、省会城市信息构建 1、省会城市空间查询 2、Java后台查询 二、Java省会城市天气查询 1、与百度开放平台集成天气 2、响应对象属性介绍 3、省会天气实况展示 三、WebGIS应用构建 1、背景音乐集成 2、城市标记及天气展示 3、城市轮播 4、成果展示 四、总结 前言         在数字技术飞速发展的今天,我们常常沉浸于各种高科技带来的便捷与震撼之中,却容易忽视那些曾经陪伴我们成长、承载着时代记忆的旧事物。80年代的天气预报,便是这样一份珍贵的文化遗产。它以简洁而质朴的方式,传递着天气信息,也传递着那个时代的气息。那种对自然的敬畏、对信息的渴望,以及一家人共同分享的温馨氛围,都深深烙印在我们的记忆中。然而,随着时间的推移,天气预报的形式已经发生了翻天覆地的变化。高清的画面、精准的数据、个性化的推送……这些现代技术带来的便利固然令人欣喜,但也在一定程度上让我们失去了那份对天气预报本身的纯粹情感。于是,

前端权限控制设计:别再写死权限判断了

前端权限控制设计:别再写死权限判断了

前端权限控制设计:别再写死权限判断了 毒舌时刻 这代码写得跟网红滤镜似的——仅供参考。 各位前端同行,咱们今天聊聊前端权限控制。别告诉我你还在每个页面写死权限判断,那感觉就像在每个房间都装一把不同的锁——管理起来要命。 为什么你需要权限控制设计 最近看到一个项目,权限判断散落在100个文件里,改一个权限规则要改100处,我差点当场去世。我就想问:你是在做权限控制还是在做权限混乱? 反面教材 // 反面教材:分散的权限判断 // Page1.jsx if (user.role !== 'admin') { return <div>无权限</div>; } // Page2.jsx if (!user.permissions.includes('user:view')) { return <div>

35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

来源 | https://segmentfault.com/a/1190000021936876 今天这篇文章给大家分享一些常见的前端vue面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 对于前端来说,尽管css、html、js是主要的基础知识,但是随着技术的不断发展,出现了很多优秀的mv*框架以及小程序框架。因此,对于前端开发者而言,需要对一些前端框架进行熟练掌握。这篇文章我们一起来聊一聊VUE及全家桶的常见面试问题。 1、请讲述下VUE的MVVM的理解? MVVM 是 Model-View-ViewModel的缩写,即将数据模型与数据表现层通过数据驱动进行分离,从而只需要关系数据模型的开发,而不需要考虑页面的表现,具体说来如下: Model代表数据模型:主要用于定义数据和操作的业务逻辑。 View代表页面展示组件(即dom展现形式):负责将数据模型转化成UI 展现出来。 ViewModel为model和view之间的桥梁:监听模型数据的改变和控制视图行为、处理用户交互。通过双向数据绑定把 View 层和 Model 层连接了起来,而View