2025-07-18 13:14:28 +08:00

237 lines
8.1 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: IntelliConnect
description: 基于SpringBoot的智能物联网平台集成Agent智能体技术的IoT解决方案
---
# IntelliConnect
<div class="project-header">
<div class="project-logo">
<img src="./images/logo.png" alt="IntelliConnect Logo">
</div>
<div class="project-badges">
<span class="badge platform">跨平台</span>
<span class="badge language">Java/Spring</span>
<span class="badge status">v0.1</span>
</div>
</div>
<div class="ascii-art">
<pre>
██╗ ███╗ ██╗ ████████╗ ███████╗ ██╗ ██╗ ██╗ ██████╗ ██████╗ ███╗ ██╗ ███╗ ██╗ ███████╗ ██████╗ ████████╗
██║ ████╗ ██║ ╚══██╔══╝ ██╔════╝ ██║ ██║ ██║ ██╔════╝ ██╔═══██╗ ████╗ ██║ ████╗ ██║ ██╔════╝ ██╔════╝ ╚══██╔══╝
██║ ██╔██╗ ██║ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██║ ██╔██╗ ██║ ██╔██╗ ██║ █████╗ ██║ ██║
██║ ██║╚██╗██║ ██║ ██╔══╝ ██║ ██║ ██║ ██║ ██║ ██║ ██║╚██╗██║ ██║╚██╗██║ ██╔══╝ ██║ ██║
██║ ██║ ╚████║ ██║ ███████╗ ███████╗ ███████╗ ██║ ╚██████╗ ╚██████╔╝ ██║ ╚████║ ██║ ╚████║ ███████╗ ╚██████╗ ██║
╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚══════╝ ╚══════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═╝
</pre>
<p class="ascii-caption">Built by RSLLY</p>
</div>
<div class="project-badges-center">
<img src="https://img.shields.io/badge/license-apache2.0-yellow?style=flat-square" alt="License" />
<img src="https://img.shields.io/badge/release-v0.1-blue?style=flat-square" alt="Release" />
<img src="https://img.shields.io/badge/cwl-project1.8-green?style=flat-square" alt="CWL Project" />
</div>
## 概述
* 本项目基于springboot2.7开发使用spring security作为安全框架
* 配备物模型(属性,功能和事件模块)和完善的监控模块
* 支持多种大模型和先进的Agent智能体技术提供出色的AI智能可以快速搭建智能物联网应用(首个基于Agent智能体设计的物联网平台)
* 支持快速构建智能语音应用,支持语音识别和语音合成
* 支持多种iot协议使用emqx exhook作为mqtt通讯可扩展性强
* 支持OTA空中升级技术
* 支持微信小程序和微信服务号
* 支持小智AI硬件
* 使用常见的mysql和redis数据库上手简单
* 支持时序数据库influxdb
## 安装运行
<div class="notice">
<p>推荐使用docker安装docker-compose.yaml文件在docker目录下执行 docker-compose up 可初始化mysql,redis,emqx和influxdb环境安装详情请看官方文档。</p>
</div>
* 安装mysql和redis数据库高性能运行推荐安装时序数据库influxdb
* 安装EMQX集群,并配置好exhook本项目使用exhook作为mqtt消息的处理器
* 安装java17环境
* 修改配置文件application.yaml(设置ddl-auto为update模式)
* java -jar IntelliConnect-1.8-SNAPSHOT.jar
```bash
# 克隆仓库
git clone https://github.com/ruanrongman/IntelliConnect
cd intelliconnect/docker
# 启动所需环境MySQL, Redis, EMQX, InfluxDB
docker-compose up -d
```
## 项目特色
* 极简主义层次分明符合mvc分层结构
* 完善的物模型抽象使得iot开发者可以专注于业务本身
* AI能力丰富支持Agent智能体技术快速开发AI智能应用
## 小智 ESP-32 后端服务(xiaozhi-esp32-server)
<div class="esp32-section">
<p>本项目能够为开源智能硬件项目 <a href="https://github.com/78/xiaozhi-esp32" target="_blank">xiaozhi-esp32</a> 提供后端服务。根据 <a href="https://ccnphfhqs21z.feishu.cn/wiki/M0XiwldO9iJwHikpXD5cEx71nKh" target="_blank">小智通信协议</a> 使用 <code>Java</code> 实现。</p>
<p>适合希望本地部署的用户,不同于单纯语音交互,本项目重点在于提供更强大的物联网和智能体能力。</p>
</div>
## 项目文档和视频演示
* 项目文档和视频演示地址:[https://ruanrongman.github.io/IntelliConnect/](https://ruanrongman.github.io/IntelliConnect/)
* 技术博客地址:[https://wordpress.rslly.top](https://wordpress.rslly.top)
* 社区地址:[https://github.com/cwliot](https://github.com/cwliot)
* 创万联社区公众号:微信直接搜索创万联
## 相关项目和社区
* **创万联(cwl)**: 专注于物联网和人工智能技术的开源社区。
* **Promptulate**: [https://github.com/Undertone0809/promptulate](https://github.com/Undertone0809/promptulate) - A LLM application and Agent development framework.
* **Rymcu**: [https://github.com/rymcu](https://github.com/rymcu) - 为数百万人服务的开源嵌入式知识学习交流平台
## 致谢
* 感谢项目[xiaozhi-esp32](https://github.com/78/xiaozhi-esp32)提供强大的硬件语音交互。
* 感谢项目[Concentus: Opus for Everyone](https://github.com/lostromb/concentus)提供opus解码和编码。
* 感谢项目[TalkX](https://github.com/big-mouth-cn/talkx)提供了opus解码和编码的参考。
* 感谢项目[py-xiaozhi](https://github.com/huangjunsen0406/py-xiaozhi)方便项目进行小智开发调试。
## 贡献
本人正在尝试一些更加完善的抽象模式,支持更多的物联网协议和数据存储形式,如果你有更好的建议,欢迎一起讨论交流。
<style>
.project-header {
display: flex;
align-items: center;
margin-bottom: 2rem;
}
.project-logo {
width: 120px;
height: 120px;
margin-right: 1.5rem;
}
.project-logo img {
width: 100%;
height: 100%;
object-fit: contain;
}
.project-badges {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.badge {
display: inline-block;
padding: 0.25rem 0.75rem;
border-radius: 1rem;
font-size: 0.85rem;
font-weight: 500;
}
.badge.platform {
background-color: var(--vp-c-brand-soft);
color: var(--vp-c-brand-dark);
}
.badge.language {
background-color: rgba(59, 130, 246, 0.2);
color: rgb(59, 130, 246);
}
.badge.status {
background-color: rgba(234, 179, 8, 0.2);
color: rgb(234, 179, 8);
}
.ascii-art {
overflow-x: auto;
margin: 2rem 0;
text-align: center;
}
.ascii-art pre {
display: inline-block;
text-align: left;
font-size: 0.6rem;
line-height: 1;
white-space: pre;
margin: 0;
background: transparent;
color: var(--vp-c-brand);
font-family: monospace;
}
.ascii-caption {
font-size: 0.8rem;
margin-top: 0.5rem;
color: var(--vp-c-text-2);
}
.project-badges-center {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 0.5rem;
margin-bottom: 2rem;
}
.notice {
background-color: var(--vp-c-bg-soft);
border-left: 4px solid var(--vp-c-brand);
padding: 1rem 1.5rem;
margin: 1.5rem 0;
border-radius: 0 8px 8px 0;
}
.esp32-section {
background-color: var(--vp-c-bg-soft);
border-radius: 8px;
padding: 1.5rem;
margin: 1.5rem 0;
border: 1px solid var(--vp-c-divider);
}
.qr-container {
text-align: center;
margin: 2rem 0;
}
.qr-code {
width: 250px;
height: auto;
object-fit: contain;
border-radius: 8px;
border: 1px solid var(--vp-c-divider);
}
@media (max-width: 768px) {
.ascii-art pre {
font-size: 0.4rem;
}
.project-header {
flex-direction: column;
align-items: flex-start;
}
.project-logo {
margin-bottom: 1rem;
}
}
@media (max-width: 480px) {
.ascii-art {
display: none;
}
}
</style>