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

Spring Web MVC从入门到实战

Spring Web MVC从入门到实战

—JavaEE专栏— 1. Spring Web MVC核心概念 1.1 什么是Spring Web MVC Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中,其正式名称来源于源模块名称(spring-webmvc),通常简称为Spring MVC。 官方定义:Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. Servlet是Java Web开发的规范,定义了动态页面开发的技术标准,而Tomcat、Weblogic等Servlet容器则是该规范的具体实现,

Passkey攻击技术:绕过FIDO2/WebAuthn实现的逻辑漏洞

前言 1. 技术背景:在现代网络攻防体系中,身份窃取是绝大多数攻击的起点。从APT攻击到大规模数据泄露,获取合法凭证始终是攻击者的核心目标之一。传统密码因其易被钓鱼、撞库和暴力破解的固有缺陷,已成为安全体系中最薄弱的一环。Passkey,作为基于FIDO2/WebAuthn标准的下一代身份验证技术,通过公钥密码学从根本上解决了密码被盗用的问题,被誉为“抗钓鱼的终极解决方案”。 它在攻防对抗中,将防御重心从“保护一个可被窃取的秘密(密码)”转移到了“验证一个不可被窃取的证明(私钥签名)”。 2. 学习价值:掌握Passkey的攻击技术,并非为了作恶,而是为了更深刻地理解“安全是一个整体,而非单个技术的堆砌”。学会本文内容,您将能够: * 识别并验证Web应用在Passkey实现中常见的逻辑漏洞。 * 在安全评估和渗透测试中,模拟针对Passkey的真实攻击场景,评估系统风险。 * 作为开发者或架构师,构建出真正具备韧性的Passkey认证系统,避免纸面上的安全。 3. 使用场景:本技术适用于以下实际场景: * 授权渗透测试:对实现了Passkey登

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表 摘要:本文帮助读者明确 OpenClaw 网络搜索工具和不同搜索技能的的职责边界,理解“先搜索、再抓取、后总结”的最佳实践,并能更稳定地在 OpenClaw 中使用 tavily-search 与 web_fetch 完成网络信息搜索任务。主要内容包括:解决 OpenClaw 中 web_search、tavily-search、web_fetch、原生 provider 与扩展 skill 容易混淆的问题、网络搜索能力分层说明、OpenClaw 原生搜索 provider 与 Tavily/Firecrawl 扩展 skill 的区别、标准工作流、提示词模板、

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

🔥 本文专栏:Linux网络Linux实践系列 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录:别害怕选错,人生最遗憾的从不是‘选错了’,而是‘我本可以’。每一次推倒重来的勇气,都是在给灵魂贴上更坚韧的勋章。 ★★★ 本文前置知识: 序列化与反序列化 引入 在之前的博客中,我详细介绍了序列化 与反序列化 的概念。对于使用 TCP 协议进行通信的双方,由于 TCP 是面向字节流的,在发送数据之前,我们通常需要定义一种结构化的数据来描述传输内容,并以此作为数据的容器。在 C++ 中,这种结构化数据通常表现为对象或结构体。然而,我们不能直接将结构体内存中对应的字节原样发送到另一端,因为直接传递内存字节会引发字节序 和结构体内存对齐 的问题。不同平台、不同编译器所遵循的内存对齐规则可能不同,这可能导致接收方在解析结构体字段时出现错误。 因此,我们需要借助序列化 。序列化 是指将结构化的数据按照预定的规则转换为连续的字节流。其主要目的是屏蔽平台差异,使得位于不同平台的进程能够以统一的方式解析该字节流。序列化通常分为两种形式:文本序列化 与二进制序列化 。 文