跳转至

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

Free Chat

Repo   ·   Home

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

Features

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

Implementation

项目基于 AstroSvelte 构建,利用了 Astro 的岛屿架构(Islands Architecture)来实现高性能的静态页面渲染,同时用 Svelte 处理复杂的交互逻辑。

My Clever Bits(我的巧思)

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

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

Deep Insight(深入洞见)

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

通过引入 promplate,我将原本硬编码在前端的 Prompt 逻辑解耦出来。前端只负责展示和用户输入,而复杂的对话策略(比如 System Prompt 的动态调整、Few-shot examples 的注入)都由后端的 Promplate 模板控制。

这种架构使得调整 AI 的“人设”或行为变得非常灵活,无需重新编译前端代码,只需更新后端的模板文件即可。

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