Skip to content

聊天与模型

ETOS LLM Studio 的核心功能不是"能发消息"——市面上每个 LLM 客户端都能发。它的真正价值在于:会话能不能当成长期资产管理模型参数能不能调到合手阅读 AI 长输出时眼睛是否舒服。这一页系统讲这三件事。

如果你想知道一条消息发出前 ETOS 是怎么把上下文拼起来的,直接去 提示词与上下文拼装

新手必读

会话治理:把聊天当成长期资产

「会话」是一组连续的消息。但 ETOS 不止把它当"聊天记录",而是当成可以分类、搜索、跨端、分支的资产。

会话列表(顶部菜单图标)

聊天页左上角点开后,看到的是完整的会话列表:

  • 搜索框:占位文字「搜索会话标题或消息」。支持全文消息内容搜索——你能直接搜某条历史消息里的关键词,点搜索结果会跳到那条消息所在位置。
  • 新建对话按钮
  • 文件夹分组:可以把同主题的会话归到一起(比如"工作"、"学习"、"测试")。长按某条会话即可选「移动到文件夹」。
  • 会话列表:每条显示标题(自动命名或你手动改的)+ 最后一条消息预览。

长按一条消息能做什么

整个聊天功能的"二级菜单"全在长按上:

操作用处
复制复制消息文本
引用把这条消息作为下条输入的引用
编辑改自己的输入或改 AI 的输出(对 AI 的输出做改写)
删除删这一条消息
Token 信息看这条消息消耗了多少 Token,包括思考 Token
思考耗时仅推理模型,看 AI 在这条上"想了多久"
导出整个会话把整条会话导出
导出到此消息(含上文)导出到这条为止
创建提示词分支从此处开新会话,详见下文

创建分支

长按某条 → 「创建提示词分支」会弹「创建分支选项」,二选一:

  • 仅分支提示词:只复制系统提示词,不带消息历史
  • 仅复制消息历史:复制到此为止的全部内容(含 AI 回答)

新分支是完全独立的会话,原会话不变。用途:

  • "我想让 AI 用不同语气重写这一段"
  • "我要从这里岔开尝试另一种方案,但不污染主线"
  • "我要把这段对话作为模板,下次重新开始"

多提供商与多模型

ETOS 的核心兼容 4 种 API 格式(不是 4 个厂商——一个格式可以对应无数厂商):

API 格式内部标识谁在用
OpenAI 兼容(Chat Completions)openai-compatibleOpenAI 官方传统接口 + 几乎所有第三方中转 / 国产兼容服务
OpenAI Responsesopenai-responsesOpenAI 官方 GPT-4.1 / GPT-5 系列推荐的新接口
AnthropicanthropicClaude 官方
GeminigeminiGoogle 官方

关键概念

  • 一个提供商只有一个 API 格式——比如你接 Claude 就选 Anthropic 格式。
  • 一个提供商可以挂任意多个模型——同一个 OpenAI Key 可以同时用 GPT-4o、GPT-4o-mini、text-embedding-3-largewhisper-1tts-1
  • 模型按**能力(Capability)**分槽:聊天模型 / 图像生成模型 / 嵌入模型 / 重排序模型 / 语音转文字模型 / 文本转语音模型。一个模型可以兼具多种能力。

按能力分配专用模型

设置 → 提供商与模型管理 → 「专用模型」入口,可以为不同能力单独指定模型:

槽位干什么典型选择
聊天模型默认对话用GPT-4o / Claude 3.5 Sonnet / Gemini 2.5 Pro
嵌入模型记忆系统检索用的向量化text-embedding-3-large
TTS 模型朗读 AI 回答OpenAI tts-1 或兼容
语音转文字模型语音输入whisper-1
图片生成模型设置 → 图片生成 单独配gpt-image-1 / Gemini Imagen / DALL·E
每日脉冲模型每日脉冲生成选一个性价比高的,详见 每日脉冲

各能力互相独立——你完全可以让 GPT-4o 当聊天模型、Whisper 当语音输入、用 Anthropic 的 Claude 做 Daily Pulse。

多模态:图片 / 语音 / 文件

「多模态」就是 AI 不止能处理文字,还能看图、听音、读文件。前提:你选的模型必须支持对应模态。

图片输入

  • 从相册选:聊天页 + → 「选择图片」,可多选
  • 现拍+ → 「拍照」
  • 支持的格式:JPG / PNG / HEIC / WebP(系统自动转码)
  • 能用的模型:GPT-4o 系列、Claude 3.5/4 系列、Gemini 1.5/2.5 系列

语音输入(两种模式)

设置 → 语音输入 配置后,输入框附近会出现麦克风按钮。

两种发送方式:

模式行为适用模型
转文字后发送用 STT 模型(Whisper 等)把语音转成文字,发文本给聊天模型任何聊天模型都能用
作为音频附件发送把音频文件原封不动作为附件给 AI,让 AI 直接"听"仅 GPT-4o Audio / Gemini 等原生支持音频的模型

文件附件

+ → 「选择文件」可以发任意类型文件。注意

  • 文本类(TXT / Markdown / JSON / Swift / Python 等)会被直接读出来作为上下文
  • PDF:会尝试提取文字
  • 二进制文件:发送前会提示模型可能无法解析

TTS:让 AI 的回答读出来

第一次配 TTS

设置 → 对话行为 → 语音朗读(TTS) → 选 TTS 模型

TTS 模型必须是你已经在某个提供商下添加并启用的 TTS 类模型(tts-1tts-1-hd 等)。

怎么用

  • 长按任意 AI 气泡 → 「朗读」
  • 或在 AI 回答出来时自动播放(设置里有开关)
  • 播放期间会出现浮动控制器(暂停 / 停止 / 调速)

TTS 不需要联网?

错——TTS 调用模型的 API,所以需要联网。但音频流是流式的,听上去会几乎和系统 TTS 一样流畅。

如果你想完全离线,可以使用 iOS 系统自带的 AVSpeechSynthesizer 替代(在拓展功能里),但音质会差一截。

阅读体验:把 AI 长输出渲染成"好读的文档"

ETOS 的阅读渲染层不是简单的 Markdown,下面这些都默认开启:

Markdown 增强(设置 → 显示与体验 → 背景与视觉)

开关默认作用
启用 Markdown关掉后所有内容显示纯文本
启用高级渲染器支持代码高亮、数学公式、Mermaid 图
自动预览思考过程推理模型的思考区是否默认展开
启用毛玻璃iOS 26 Liquid Glass 风格
顶部模糊渐变滚动时顶部柔化效果

代码块特性

  • 语法高亮:自动识别 100+ 种语言
  • 复制按钮:右上角 📋,复制后会有反馈动画
  • iOS 代码预览:包含 Swift / SwiftUI 代码时,长按代码块可以拉起 iOS 代码预览面板(带语法树)
  • 可折叠:超过 50 行的代码块自动折叠,点击展开

数学公式 / Mermaid 图

  • LaTeX 公式:$inline$$$display$$ 都支持
  • Mermaid 图:用 ```mermaid 围栏包起来,会自动渲染

显示系统:把视觉细节调到合手

字体自定义

设置 → 显示与体验 → 背景与视觉 → 「字体回退」可以:

  • 导入自定义字体文件(WOFF / WOFF2 / TTF / OTF)
  • 设字体槽位优先级(中文字体 / 英文字体 / 等宽字体)
  • 设字体回退策略(找不到字形时回退到哪个字体)

适合:

背景图与气泡

  • 启用背景图 → 上传图片 → 配模糊度和透明度
  • 自动换背景:每次新对话或定时切换
  • 关闭助手气泡:让 AI 的回答直接显示在背景上(更像"阅读文档")

进阶选项

偏好设置(全局默认参数)

设置 → 对话行为 → 偏好设置 里能调:

字段干什么
全局系统提示词每次新会话默认带上的系统提示词。可以建多个,每条独立命名。
AI 温度(Temperature)0~2,越高越发散,越低越确定。0.7 是均衡值。
AI Top-P0~1,与 Temperature 类似但是 Nucleus Sampling 方法。一般两者只调一个。
启用流式响应关掉后会等模型生成完才一次性显示。调试某些奇怪兼容服务时关一下
启用响应速度指标显示每条回答的字符/秒、首字延迟
OpenAI 流包含 UsageOpenAI 兼容服务流式响应是否带 usage 字段。某些中转不带需要关。
启用自动会话命名第一条回答后自动给会话起名
启用思考摘要推理模型是否生成思考摘要展示
最大历史消息数每次请求发给模型的历史消息条数上限。详见下文。
懒加载消息数打开会话时一次加载多少条历史

「最大历史消息数」怎么调

这是个关键值:

  • 设小(10 以内):省 Token,但 AI 容易"失忆"
  • 设大(50+):AI 记得多,但每次请求体大很多、模型可能丢早期消息
  • 推荐:先用默认值 30 左右,根据你的实际使用调整

全局系统提示词

最常用的玩法:

  1. 创建多条:"默认助手"、"代码助手"、"翻译助手"、"角色扮演"……
  2. 每条独立内容:写好你想要的人设、风格、约束
  3. 每个会话切换:在聊天页或新建会话时选择当前会话用哪条

系统时间注入

偏好设置里的「发送系统时间」开关:开启后,每次请求会自动注入当前系统时间到提示词里。再开「周期时间地标」可以每 N 分钟在对话流里插入一次时间锚点,让 AI 知道时间在流逝(适用于长对话不让 AI"穿越")。

模型级高级参数

进入 设置 → 提供商与模型管理 → 某个具体模型 → 「模型设置」可以:

  • 给单个模型覆盖默认参数(temperature、top_p、max_tokens 等)
  • 参数表达式:模板语法动态计算参数值
  • 编辑原始 JSON 请求体:在请求发出前最后插手

参数表达式举例

不需要真的复制粘贴,仅说明它能做什么。比如:

max_tokens = clamp(messages.last.content.length * 2, 512, 8192)

这条意思是:让 max_tokens 随最后一条消息的长度变化,但不低于 512 也不超过 8192。

原始 JSON 请求体

某些非标准接口需要在请求 body 里多塞字段(比如某些中转要求 extra_body.thinking.budget_tokens = 32000 给 Claude 思考预算)。这是最终修改请求 body 的地方。普通用户用不到——只有当你遇到"标准字段都对,但接口拒收"时才会需要。

会话导入导出

ETOS 不锁数据。

导入(设置 → 同步与备份 → 第三方导入):

  • Cherry Studio 完整备份
  • RikkaHub 导出
  • Kelivo 导出
  • ChatGPT 官方 conversations.json
  • ETOS 自己的数据包(含全部配置)

导出(聊天页长按某条消息):

  • PDF(带格式、可分享)
  • Markdown(纯文本,方便二次处理)
  • TXT(最简单的文本)

用量统计

设置 → 拓展能力 → 用量统计 可以按提供商、模型、日期看你的 Token 用量和花费。前提是你在提供商里给每个模型配了单价

设置 → 提供商与模型管理 → 某个模型 → 「定价」配 prompt / completion 单价(按厂商官网定价填)。配好后 ETOS 会自动按用量算钱。

下一步