Skip to content
roj234Public

About

LLM Chat/Agent/RP/Game, all in one static frontend (Optional backend™) / 暂时不支持i18n只有中文版

Resources

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

Aint - Aichat Is Not a Toy

现代化的高性能纯 Web 多用途 AI 前端,基于 Unconscious 响应式框架。

Banner

为什么选它

大部分 LLM 前端都是臃肿的 SaaS 复制品,剩下那些基本又是脆弱的周末项目。
不仅如此,它们还

  • “专注一个功能”:只能聊天、只能做项目,或者只能角色扮演。
  • 硬盘杀手:喜欢两万个 py/js 还有比中子星更重的 node_modules 吗
  • 内存杀手:bun 对 Windows 的支持还是实验性,issues 里挂着好几个没修的内存泄漏,甚至没法在 cmd.exe 里运行 —— 直接卡死

这是我,一个重度依赖洁癖,内存洁癖,代码体积洁癖,写给自己的项目。

  • 功能没有边界:你可以在RP会话中调用MCP,在Coding Task中进行对话分支,以及各种工具
    • 产品用途不应决定能力上限,它们生来可以组合,应该组合,将会组合。
    • 尽管有的组合可能不尽如人意,但它可以。
  • 前端 2MB,后端加依赖约 600 KB
  • 只需要浏览器:Chrome (or WebView) 118+,提供有限的 Firefox 支持。
  • 不需要 Docker,不需要编译,不需要 node_modules 和数据库服务
    • 哪怕连后端都不想要,你的敌人也只有 CORS

为什么不选它

  • 功能很多,文档很少,上手可能困难。
  • 测试较少,可能存在 bug
  • 单人项目,可能随时破坏性更改
  • 纯前端,无法在无头环境运行,但支持手机远程控制(需后端)
  • 不支持主动缓存写入 —— 你不应该将它接入缓存需要主动写入的模型
    • 当然,你也可以通过插入下面的自定义请求体来实现,只不过这不会非常智能
    • 详见文档。
    {
      cache_control: {
        type: "ephemeral",
        ttl: "5m" // or 1h
      }
    }

特性

高性能,低内存

性能是一种尊重。 不信请找其他 Web 甚至 CLI 实现 profile 一下。
建议选 Svelte 做的,我担心 React 输的太惨
  • 流式 Markdown 渲染:自研增量解析器,性能优于 marked
    正确渲染**“中文引号加粗”**(不符合 CommonMark 规范,但 LLM 输出中很常见)
  • 语法高亮:比 shiki-stream 更快(的启发式非精确算法),足够在我显示器刷新率(120Hz)下流畅更新
  • 虚拟列表:对话和代码块均使用支持选区复制的虚拟列表
  • 按需加载:Chart.js、KaTeX、Mermaid、语法高亮等按需加载

Agent & 工具

  • 完全可编辑:事后甚至事前修改任何消息、工具调用参数、结果、思维链
  • 本地 Agent:完整的虚拟文件系统,不需要后端就能操作文件,执行 JS 脚本,创建子代理!
    • 完善且安全的本地 ESM 沙箱,联动文件系统,直接导入文件,还有 node:fs/promises 和 node:path 可用!
    • 在 OPFS 文件系统中交互式上传和下载文件(夹)
    • 从来没有人!没有人!!如此发挥浏览器的潜力!!!
  • 可选后端:命令执行、文件去重、工作区隔离(--workspace)
  • MCP 支持:接入任何 MCP 服务器
  • 记忆系统:一个符合作者哲学的记忆插件,不满意?反正有 MCP

角色扮演

  • 支持导入酒馆(SillyTavern)角色卡、世界书、预设(JSON / PNG)
    • 导入,而不是兼容,意味着会转换为自有格式,无法原样导出。
  • 基于工具调用的世界书:精度和省钱吊打正则匹配
  • RPG 管线(开发中):使用 JSON Schema 和约束采样,模型不可能格式错误,还有其它优点,这就是 Agent

用户体验

  • AntiSlop 采样器:从 token 层面概率拒绝"AI 八股"
  • ZIP 导出:多媒体不使用 Base64,体积小,便于查看、编辑
  • 请求日志:每条消息可追溯计费信息,并提供按日期聚合的统计图表
  • TTS & 文生图:内置工具,BYOEndpoint,TTS为实验性功能,文生图已稳定可用(需手动开启插件)
  • 暗色主题 & 移动端适配:手机能用,手机好用,还有安卓版
  • 多端同步(需后端):对话和其它数据无缝同步,甚至还能多端同时流式生成,stream.tee()!
  • 断线重连(需后端):无线连接断开了?后端替你缓存,像大厂 App 一样后台生成!
  • 远程控制(需后端):手机控制PC,当然,其他PC也可以;需要在设置中允许远程

快速开始

preview

截图版本 4.0.0-alpha

在线体验 静态版本,或从 Release 页面下载构建产物:

文件 说明
full_release.zip PC 完整版,含前端和后端,解压后运行 launch.sh / launch.bat
dist.zip 前端文件压缩包,需要自行部署
AiChat_<版本>.apk 安卓版,最低系统版本 Android 12

PC 版默认端口为 3000,可通过 -p <端口> --data <数据目录> 参数修改。
默认不允许命令执行,安全责任属于你,请在容器中运行专用文件访问服务

  • 尽管如此,回落的JS沙箱也有相当多的API可用

静态部署

把解压后的 dist/ 扔进任何静态文件服务器:

# nginx
cp -r dist/* /var/www/html/

# llama-server
llama-server --path ./dist

使用后端

./launch.sh

或在 windows 上双击 bat
使用前需要编辑后端配置文件 config.js

开发环境搭建详见构建指南。

文档

文档 内容
使用指南 命令、界面、设置、多模态输入
构建与部署 开发、生产构建、CORS 解决方案
Agent 与文件系统 完全编辑模式、文件访问、安全建议
高级功能 AntiSlop、对话分支、角色扮演基础、思考模式
RPG 管线 约束采样、流式 JSON 解析
插件开发 工具注册、命令、后端插件
API 参考 SSE 代理、批量请求、WebSocket 同步
后端配置 代理路由、内容审核
设计哲学 设计理念
路线图 已知问题和计划中的功能
TTS & 生图 端点配置与 API 规范

依赖

unconscious/common 的设计目标: smaller, faster, or both

  • Unconscious — 8KB 的无 VDOM 响应式框架,以及大量公共代码。
    • qr.js:大概最快的JavaScript二维码生成库 - 6KB
    • msgpack.js:性能很好的Msgpack编解码库 - 8KB
    • Zip-IO:比JSZip快三十倍的Zip读写库。在Node上支持Brotli,另有JSZip-兼容API shim - 8KB
    • safe-worker:基于语法解析/转换和原型锁定的安全WebWorker沙箱。支持权限控制、ESM/CJS模块、异步RPC和文件系统shim - 24KB
    • Json.js:流式JSON5解析器。支持JSONL以及增量回调 - 4KB
    • ws2:比 ws 快 10% 的 WebSocket 服务器/客户端 - 41KB
  • streaming-markdown — 流式 Markdown 解析器
  • KaTeX
  • Remix Icon
  • Modern Normalize

后端

  • iconv-lite
  • remove-markdown

浏览器需求:Chrome 118+
在 118-124 上测试
最低需求最近大概不会改变,新版 Chrome 的 MD3 巨丑

按需加载

前端沙箱模块

具体有哪些模块详询 AI

鸣谢

  • DsChat:可编辑工具调用和 Human-as-tool 的灵感来源
  • RipGrep: 后端支持但不默认的 Grep 二进制
  • Busybox for Windows: 在 Windows 上用它实现 bash,当然 cygwin(git) 的也可以
  • V8引擎:让原生JS比(poorly written的)WASM和Emscripten更快!

推荐项目 (See also)

  • 我的 llama.cpp 分支:兼容 OpenAI 规范的思考开关/预算、JSON Schema 预填充
  • RojLib:让你看看什么叫造轮子狂魔

许可证

LGPL——详见 LICENSE 和为什么选LGPL。

About

LLM Chat/Agent/RP/Game, all in one static frontend (Optional backend™) / 暂时不支持i18n只有中文版

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages