跳转至

以下内容基本上是 AI 生成的,我还没校对,可能质量不高

Free Chat

Repo   ·   Home

Free Chat 是一个优雅的 LLM 聊天界面,Fork 自 chatgpt-demo,并在其基础上进行了深度的定制和优化。

Features

  • Elegant UI: 极简且美观的界面设计,支持深色模式。
  • Token Management: 智能的消息截断机制,防止超长对话消耗过多 Token。
  • Promplate Integration: 演示了如何将 Promplate 集成到前端应用中。
  • Configurable: 支持通过环境变量配置 API Key、模型参数、代理等。

Implementation

项目基于 Astro 构建站点,交互层同时使用 SvelteSolidJS 组件。Astro 负责整体页面与部署形态,聊天状态和流式交互由前端组件层处理。

My Clever Bits(我的巧思)

endless 分支中,我实现了一个**基于 Token 的滑动窗口机制**。

通常的聊天应用只是简单地限制消息数量,但 Free Chat 会计算实际的 Token 消耗。当对话历史接近模型限制时,它会智能地修剪最早的消息,确保对话可以无限进行下去,同时最大化利用上下文窗口。

Deep Insight(深入洞见)

Free Chat 不仅仅是一个 UI Shell。在 promplate-demo 分支中,我探索了 Frontend-Backend Co-design 的模式。

通过引入 promplate,我把建议词、翻译、标题生成等能力从前端组件里抽出来,交给独立的 Promplate Demo 后端处理。

这种架构使得迭代 AI 行为时不必同时改动整套前端交互,只需要调整后端模板和接口即可。

  • Promplate: 本项目使用的 Prompt 框架。