Skip to content

AetherLink is a cross-platform AI assistant application that supports multiple mainstream AI models (OpenAI, Google Gemini, Anthropic Claude, Grok, etc.). Built with React, TypeScript, and Capacitor, it delivers a seamless conversational experience. Key features include customizable model configurations, multi-topic chat management, AI reasoning vi

License

Notifications You must be signed in to change notification settings

1600822305/AetherLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

689 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AetherLink

Ask DeepWiki

项目抂述

官方亀流矀Q矀 点击铟接加入矀聊【AetherLink 官方矀】http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=V-b46WoBNLIM4oc34JMULwoyJ3hyrKac&authKey=q%2FSwCcxda4e55ygtwp3h9adQXhqBLZ9wJdvM0QxTjXQkbxAa2tHoraOGy2fiibyY&noverify=0&group_code=930126592

AetherLink移劚应甚是䞀䞪基于现代Web技术构建的跚平台AI助手应甚。该应甚支持䞎倚种AI暡型劂OpenAI、Google Gemini、Anthropic Claude、Grok、硅基流劚、火山方舟等的亀互提䟛流畅的对话䜓验并支持Android平台郚眲。应甚采甚React、TypeScript和Capacitor框架匀发具有高床可定制的暡型配眮、倚䞻题聊倩管理、AI思考过皋可视化、语音合成、语音识别、MCP工具支持、知识库管理等特色功胜。

技术栈

  • 前端框架: React 19、Material UI 7
  • 构建工具: Vite 6、SWC猖译噚
  • 猖皋语蚀: TypeScript 5.8
  • 移劚框架: Capacitor 7
  • 状态管理: Redux & Redux Toolkit 2.8
  • API集成: OpenAI、Google Gemini、Anthropic Claude、Grok、硅基流劚、火山方舟等AI暡型
  • 存傚: IndexedDB (Dexie)、localStorage
  • 样匏: MUI组件 + Tailwind CSS + 自定义CSS
  • 语音技术: 硅基流劚TTS API、OpenAI TTS、Azure TTS、Web Speech API、Capacitor语音识别
  • 代码高亮: Shiki语法高亮匕擎
  • 工具支持: MCP (Model Context Protocol) 工具集成

系统芁求

  • Node.js: v22.x 或曎高
  • npm: v10.x 或曎高
  • Android Studio: 甚于Android平台匀发
  • JDK: Java 11 或曎高版本
  • Vite: 6.x 或曎高版本
  • Capacitor CLI: 7.x 或曎高版本
  • React: 19.x
  • TypeScript: 5.8.x

安装指南

  1. 克隆仓库
git clone https://github.com/1600822305/AetherLink.git
cd AetherLink
  1. 安装䟝赖
npm install
  1. 初始化Capacitor
npx cap init

匀发指南

启劚匀发服务噚

npm run dev

构建选项

npm run build              # 快速构建掚荐
npm run build:ultra        # 完敎构建包含类型检查

移劚端匀发

# 构建并同步到Android
npm run build
npx cap sync android
npx cap open android

䞻芁功胜

  • 倚暡型AI对话支持OpenAI、Claude、Gemini、Grok等䞻流AI暡型
  • 语音亀互语音识别蟓入 + TTS语音播攟
  • 移劚端䌘化原生Android应甚䜓验
  • 知识库管理文档䞊䌠、智胜检玢
  • MCP工具集成扩展AI胜力的工具生态
  • React架构现代化的React 19应甚架构

构建䞎郚眲

Android APK构建

# 圚Android Studio䞭构建
npx cap open android
# 然后圚Android Studioäž­: Build > Build Bundle(s) / APK(s) > Build APK(s)

APK将保存圚 android/app/build/outputs/apk/debug/ 目圕

讞可证

AetherLink 采甚分层讞可暡匏根据䜿甚者规暡提䟛䞍同的讞可方案

  • 䞪人甚户及8人以䞋团队适甚 GNU Affero 通甚公共讞可证 v3.0 (AGPLv3)
  • 8人以䞊的组织机构必须获取商䞚䜿甚讞可证

商䞚讞可

劂果悚的组织超过8人或需芁规避AGPLv3的匀源义务请联系我们获取商䞚讞可证

📧 商䞚授权联系1600822305@qq.com

诊细讞可条欟请查看 LICENSE 文件。

莡献指南

  1. Fork本仓库
  2. 创建功胜分支 (git checkout -b feature/amazing-feature)
  3. 提亀曎改 (git commit -m '添加䞀些功胜')
  4. 掚送到分支 (git push origin feature/amazing-feature)
  5. 创建䞀䞪Pull Request

泚意所有代码莡献将被视䞺圚AGPLv3讞可证䞋提䟛。

特色功胜

🀖 自劚获取暡型列衚

AetherLink支持从各倧AI提䟛商API自劚获取可甚暡型列衚

  • 支持OpenAI、Claude (Anthropic)、Gemini (Google)、Grok (xAI)、硅基流劚和火山方舟等䞻流AI提䟛商
  • 自劚倄理䞍同API栌匏和端点路埄
  • 智胜适配自定义䞭蜬站API
  • 提䟛䌘雅的回退机制圓API请求倱莥时䜿甚预讟暡型列衚
  • 支持的API端点:
    • OpenAI: /v1/models
    • Claude: /v1/models
    • Gemini: /v1beta/models
    • Grok: /v1/models
    • 硅基流劚: /v1/models
    • 火山方舟: /api/v3/models
    • 自定义䞭蜬站: 自劚检测并适配

🎙 语音识别功胜

AetherLink支持倚种语音识别方案

  • Capacitor语音识别移劚端原生语音识别支持实时蜬圕
  • OpenAI Whisper高粟床语音蜬文本支持倚语蚀
  • Web Speech API浏览噚原生语音识别䜜䞺倇选方案
  • 智胜提䟛商切换根据环境自劚选择最䜳识别方案
  • 实时反銈支持郚分结果星瀺和实时状态曎新
  • 按䜏诎话盎观的语音蟓入亀互方匏

🔊 增区语音合成

AetherLink提䟛倚层级的语音合成解决方案

  • Azure TTS埮蜯Azure讀知服务支持SSML和高莚量语音
  • OpenAI TTSOpenAI语音合成支持流匏和非流匏蟓出
  • 硅基流劚TTS高莚量䞭文语音合成
  • Web Speech API浏览噚原生语音合成䜜䞺倇选
  • 智胜降级自劚尝试倚种TTS服务确保语音播攟成功
  • 语音控制播攟/暂停、语速调敎、语音选择等功胜

🛠 MCP工具支持

集成Model Context Protocol (MCP)工具生态

  • Fetch工具支持眑络请求和数据获取
  • 跚平台兌容移劚端䜿甚原生HTTPWeb端䜿甚代理
  • 工具块枲染可视化工具执行结果
  • 错误倄理完善的错误倄理和重试机制

📱 移劚端䌘化

AetherLink针对移劚讟倇进行了倚项䌘化

  • 返回键智胜倄理根据圓前页面䞊䞋文智胜倄理Android返回键行䞺
    • 圚聊倩和欢迎页面星瀺退出确讀对话框
    • 圚其他页面返回䞊䞀级页面
    • 防止意倖退出应甚
  • WebView版本检测自劚检测WebView版本并提䟛升级建议
  • 响应匏垃局自适应䞍同屏幕尺寞和方向
  • 觊摞䌘化针对觊摞亀互䌘化的UI元玠和手势
  • 性胜䌘化减少䞍必芁的枲染和计算确保圚移劚讟倇䞊流畅运行
  • 原生功胜集成盞机、文件系统、剪莎板等原生功胜无猝集成

🎚 React架构

  • React䞻框架䜿甚React 19䜜䞺䞻芁UI框架
  • 类型安党完敎的TypeScript支持

📚 知识库管理

  • 文档管理支持倚种文档栌匏的䞊䌠和管理
  • 智胜检玢基于AI的语义搜玢和内容检玢

💻 代码猖蟑噚

  • 语法高亮基于Shiki的高莚量语法高亮
  • 倚语蚀支持支持䞻流猖皋语蚀

🧠 AI思考过皋

  • 支持星瀺AI的思考过皋䞻芁支持Grok暡型
  • 可视化思考时闎和过皋改善甚户䜓验

🛠 匀发者工具

  • 控制台日志查看
  • 眑络请求监控
  • API请求和响应分析

项目结构

AetherLink/
├── android/                # Android平台盞关代码和配眮
│   ├── app/                # Android应甚䞻芁代码
│   │   ├── src/            # 源代码目圕
│   │   │   ├── main/       # 䞻芁代码
│   │   │   │   ├── assets/ # Web资源和配眮文件
│   │   │   │   ├── java/   # Java代码
│   │   │   │   └── res/    # Android资源文件(垃局、囟标等)
│   │   │   └── test/       # 测试代码
│   │   └── build.gradle    # 应甚级构建配眮
│   ├── build.gradle        # 项目级构建配眮
│   ├── capacitor.settings.gradle # Capacitor插件配眮
│   └── variables.gradle    # 党局变量和版本配眮
├── public/                 # 静态资源文件和公共资产
│   └── assets/             # 囟标、囟片等公共资源
├── src/                    # 源代码目圕
│   ├── assets/             # 应甚内囟片、字䜓等资源
│   ├── components/         # 可倍甚UI组件
│   │   ├── AIDebateButton.tsx # AI蟩论功胜按钮组件
│   │   ├── AppInitializer.tsx # 应甚初始化组件
│   │   ├── BackButtonHandler.tsx # Android返回键倄理组件管理返回键行䞺
│   │   ├── ChatInput.tsx   # 聊倩蟓入框组件倄理消息蟓入和发送
│   │   ├── ChatToolbar.tsx # 聊倩工具栏组件提䟛聊倩页面顶郚操䜜
│   │   ├── CitationsList.tsx # 匕甚列衚组件星瀺消息匕甚
│   │   ├── CodeEditor/     # 代码猖蟑噚组件目圕
│   │   ├── CompactChatInput.tsx # 玧凑型聊倩蟓入框
│   │   ├── DevTools/       # 匀发者工具组件目圕
│   │   ├── EnhancedToast.tsx # 增区型提瀺组件
│   │   ├── ExitConfirmDialog.tsx # 退出确讀对话框防止意倖退出应甚
│   │   ├── FilePreview.tsx # 文件预览组件
│   │   ├── ImageGeneration/ # 囟像生成功胜组件目圕
│   │   ├── IntegratedFilePreview.tsx # 集成文件预览组件
│   │   ├── KnowledgeManagement/ # 知识库管理组件目圕
│   │   ├── ModelManagementDialog.tsx # 暡型管理对话框
│   │   ├── MultiModelSelector.tsx # 倚暡型选择噚组件
│   │   ├── RouterWrapper.tsx # 路由包装组件提䟛路由蜬换和劚画
│   │   ├── SearchResultsCollapsible.tsx # 搜玢结果折叠组件
│   │   ├── Sidebar/        # 䟧蟹栏组件目圕
│   │   ├── SystemPromptBubble.tsx # 系统提瀺气泡组件
│   │   ├── SystemPromptDialog.tsx # 系统提瀺对话框
│   │   ├── TTS/            # 语音合成组件目圕
│   │   ├── ToolsSwitch.tsx # 工具匀关组件
│   │   ├── TopicManagement/ # 话题管理组件包含分组和拖拜功胜
│   │   │   ├── AssistantTab.tsx # 助手标筟页组件
│   │   │   ├── GroupComponents.tsx # 分组盞关组件
│   │   │   ├── GroupDialog.tsx # 创建/猖蟑分组对话框
│   │   │   ├── Sidebar.tsx # 䟧蟹栏䞻组件
│   │   │   ├── SidebarTabs.tsx # 䟧蟹栏标筟页组件
│   │   │   ├── TopicTab.tsx # 话题标筟页组件
│   │   │   └── index.ts # 富出组件
│   │   ├── TopicStats/     # 话题统计组件目圕
│   │   ├── UpdateNoticeDialog.tsx # 曎新通知对话框
│   │   ├── UploadMenu.tsx  # 䞊䌠菜单组件
│   │   ├── UrlScraperStatus.tsx # URL抓取状态组件
│   │   ├── VoiceRecognition/ # 语音识别组件目圕

│   │   ├── WebSearchProviderSelector.tsx # 眑络搜玢提䟛商选择噚
│   │   ├── chat/           # 聊倩盞关子组件
│   │   ├── common/         # 通甚组件目圕
│   │   ├── message/        # 消息盞关子组件
│   │   │   ├── ThinkingProcess/ # AI思考过皋展瀺组件
│   │   │   └── MessageActions/  # 消息操䜜按钮组件
│   │   ├── settings/       # 讟眮盞关组件
│   │   │   └── ModelCard/  # 暡型卡片组件展瀺单䞪暡型信息
│   │   └── test/           # 测试组件目圕
│   ├── pages/              # 页面级组件
│   │   ├── ChatPage/       # 聊倩䞻界面
│   │   │   ├── components/ # 聊倩页面子组件
│   │   │   │   ├── ModelSelector.tsx # 暡型选择噚组件
│   │   │   │   └── ... # 其他聊倩页面子组件
│   │   │   ├── hooks/      # 聊倩页面自定义钩子
│   │   │   │   ├── useModelSelection.ts # 暡型选择逻蟑钩子
│   │   │   │   ├── useChatFeatures.ts # 聊倩功胜钩子
│   │   │   │   └── ... # 其他聊倩页面钩子
│   │   │   └── index.tsx   # 聊倩页面䞻组件
│   │   ├── DevToolsPage.tsx # 匀发者调试工具页面提䟛日志和API调试
│   │   ├── KnowledgeBase/  # 知识库管理页面目圕
│   │   ├── Settings/       # 讟眮盞关页面
│   │   │   ├── AppearanceSettings/ # 倖观讟眮䞻题和字䜓配眮
│   │   │   ├── BehaviorSettings/   # 行䞺讟眮劂发送方匏和通知
│   │   │   ├── DefaultModelSettings/ # 默讀暡型讟眮页面
│   │   │   ├── ModelProviderSettings/ # 暡型提䟛商讟眮页面
│   │   │   ├── AddProviderPage/ # 添加提䟛商页面
│   │   │   ├── DataSettings/ # 数据管理讟眮包括倇仜和恢倍
│   │   │   ├── VoiceSettings/ # 语音讟眮TTS和语音识别配眮
│   │   │   ├── index.tsx   # 讟眮䞻页面
│   │   │   └── AboutPage/  # 关于页面星瀺应甚信息
│   │   ├── SettingsPage.tsx # 讟眮页面入口

│   │   └── WelcomePage.tsx # 欢迎/匕富页面銖次䜿甚时星瀺
│   ├── routes/             # 路由配眮和富航逻蟑
│   │   └── index.tsx       # 路由定义和配眮
│   ├── shared/             # 共享代码和䞚务逻蟑
│   │   ├── api/            # API接口封装
│   │   │   ├── anthropic/  # Anthropic Claude API集成
│   │   │   ├── google/     # Google Gemini API集成
│   │   │   ├── grok/       # Grok API集成
│   │   │   ├── openai/     # OpenAI API集成
│   │   │   ├── siliconflow/ # 硅基流劚API集成
│   │   │   ├── volcengine/ # 火山方舟API集成
│   │   │   └── index.ts    # API统䞀入口和路由
│   │   ├── config/         # 配眮文件目圕
│   │   ├── constants/      # 垞量定义目圕
│   │   ├── data/           # 静态数据和预讟配眮
│   │   │   ├── models/     # 预讟暡型配眮
│   │   │   └── presetModels.ts # 预讟暡型数据
│   │   ├── hooks/          # 自定义React Hooks
│   │   │   ├── useAppState/ # 应甚状态管理Hook
│   │   │   ├── useModels/  # 暡型管理Hook
│   │   │   └── ... # 其他自定义Hook
│   │   ├── middlewares/    # Redux䞭闎件目圕
│   │   ├── prompts/        # 提瀺词暡板目圕
│   │   ├── providers/      # 提䟛商盞关代码目圕
│   │   ├── services/       # 䞚务服务层
│   │   │   ├── APIService.ts # API服务倄理暡型获取和消息发送
│   │   │   ├── AssistantService.ts # 助手服务管理AI助手配眮
│   │   │   ├── LoggerService.ts # 日志记圕服务统䞀日志管理
│   │   │   ├── SystemPromptService.ts # 系统提瀺词服务
│   │   │   ├── ThinkingService.ts # AI思考过皋倄理服务
│   │   │   ├── TopicService.ts # 话题管理服务
│   │   │   ├── TTSService.ts # 文本到语音蜬换服务
│   │   │   ├── VoiceRecognitionService.ts # 语音识别服务
│   │   │   ├── VersionService.ts # 版本管理服务
│   │   │   ├── ImageUploadService.ts # 囟片䞊䌠服务倄理囟片选择和压猩
│   │   │   ├── assistant/  # 助手盞关服务目圕
│   │   │   ├── mcpServers/ # MCP服务噚集成目圕

│   │   │   └── storageService.ts # 存傚服务(IndexedDB/localStorage)
│   │   ├── store/          # Redux状态管理
│   │   │   ├── messagesSlice.ts # 消息状态管理
│   │   │   ├── settingsSlice.ts # 讟眮状态管理
│   │   │   ├── slices/     # 其他状态切片
│   │   │   │   ├── groupsSlice.ts # 分组状态管理
│   │   │   │   └── ... # 其他状态切片
│   │   │   └── index.ts    # Store配眮和富出
│   │   ├── styles/         # 样匏文件目圕
│   │   ├── types/          # TypeScript类型定义
│   │   │   ├── Assistant.ts # 助手类型定义
│   │   │   └── index.ts    # 栞心类型定义包含消息、暡型等类型
│   │   └── utils/          # 工具凜数和蟅助方法
│   │       ├── api/        # API盞关工具凜数
│   │       ├── format/     # 栌匏化工具凜数
│   │       ├── storage/    # 本地存傚工具凜数
│   │       └── index.ts    # 通甚工具凜数劂ID生成、Token计算等
│   ├── App.tsx             # 应甚根组件包含䞻题和路由配眮
│   ├── main.tsx            # 应甚入口文件枲染根组件
│   └── index.css           # 党局样匏
├── capacitor.config.ts     # Capacitor移劚应甚配眮定义应甚ID和插件讟眮
├── index.html              # 应甚入口HTML文件
├── package.json            # 项目䟝赖和脚本配眮
├── tsconfig.json           # TypeScript猖译配眮(匕甚配眮)
├── tsconfig.app.json       # 应甚代码TypeScript配眮
├── tsconfig.node.json      # Node环境TypeScript配眮
├── vite.config.ts          # Vite构建工具配眮包含䌘化和分包策略
├── tailwind.config.js      # Tailwind CSS配眮
└── eslint.config.js        # ESLint代码规范配眮

About

AetherLink is a cross-platform AI assistant application that supports multiple mainstream AI models (OpenAI, Google Gemini, Anthropic Claude, Grok, etc.). Built with React, TypeScript, and Capacitor, it delivers a seamless conversational experience. Key features include customizable model configurations, multi-topic chat management, AI reasoning vi

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •