跳转至

GitHub: CNSeniorious000/free-chat

Free Chat

自托管 ChatGPT UI。支持任意 OpenAI 兼容 API。

Warning

无后端限制,客户端流式。分支支持无限聊天和模板。

功能

  • 自定义 API 端点
  • 密码保护
  • 代理支持

实现

Astro/TSX,客户端 token 计算。分支增强历史管理。

深入洞见

free-chat 把前端作为智能代理的第一责任单元:客户端实现了基于 tiktoken 的本地 token 统计(src/utils/tiktoken.ts),并通过 TokenCounter 将实时 token 预算反馈给用户,这能减少不必要的 token 花费并允许在多模型/代理(promplateBaseUrl)场景下更精确地路由请求。流式渲染链路由来自 src/utils/streaming.ts(把 fetch body 转成 async iterator),允许前端在接收增量 delta 时即时渲染,从而显著改善交互延迟和用户体验。把 token 计算与 streaming 抽象为独立模块,使前端既能做精确预算也易于扩展多模型策略。

参考源码:

  • src/utils/tiktoken.ts(客户端 token 计算)
  • https://raw.githubusercontent.com/CNSeniorious000/free-chat/promplate-demo/src/utils/tiktoken.ts
  • src/utils/streaming.ts(流式响应处理)
  • https://raw.githubusercontent.com/CNSeniorious000/free-chat/promplate-demo/src/utils/streaming.ts

我的巧思

  • 客户端 token 化:WASM 计算,避免服务器开销。
  • Promplate 集成:动态提示模板。
  • 亚洲镜像:部署友好。

相关项目

部署:https://free-chat.asia

重要源码 / 文档