跳到本文

模型与应用

Yaoledge Chat

持久对话、附件与历史管理

Yaoledge Chat 将一次实时回答保存为可重读的会话。用户发送文本、图片或文档后,服务先发布输入,再请求模型,并逐段发布回答检查点。Chat 管理内容、会话与容量,Yaoledge 管理会员和费用;浏览器显示、历史保存与实际入账分别确认。

网络中断后,继续理解同一段对话 用户看到生成文字时,服务同步发布可恢复的检查点。断开后重新打开会话,展示已确定保存的前缀和真实结束状态;继续提问需要新的明确发送,不自动重放上一轮。

从第一条消息开始,把输入保存完整

用户选择模型并显式发送一轮消息。服务核对当前身份、会员和历史容量,再从服务器已有历史与新消息组装请求。支持文本、PNG/JPEG 图片及 PDF、TXT、Markdown、CSV、XLSX、DOCX、PPTX 原格式内联附件,不先提取或转换文件。

首次发送会同时绑定新会话、轮次和输入。内容写入完成并发布到当前历史之后,才向模型发出请求。这样,已接受的输入有明确保存位置;尚未发布就失败的首次发送不会留下空会话。每次明确发送都有独立轮次标识,同一会话同一时刻只生成一轮。

浏览器、Chat、历史记录与 YaoDel 的时序:先写入并发布输入,再调用模型;回答增量显示与检查点保存位于独立推进区域。
输入发布完成后,才发起模型请求从上到下读到输入发布确认后,才进入模型调用。输出区的临时显示与检查点发布可交错推进;浏览器收到文字不等于历史已经保存。历史一列合并表示对象写入与事务发布。
用户可以完成的历史任务
任务获得的结果
发送与继续对话保存本轮输入,使用已提交历史调用模型
重开与翻页读取固定提交上界内的内容和轮次状态
导出下载包含原附件的已提交 JSONL 历史
停止、选择删除或清空分别结束生成、撤下选中会话或清空当前历史

先确认正在为哪个账户执行动作

界面先读取当前身份和历史容量,再让用户明确发送。首次发送、历史列表、选择删除和清空等动作携带界面已经观察到的账户标识;服务仍独立验证真实会话,并核对两者一致。这个标识是目标一致性检查,不能代替认证。

这样,当另一个标签页更换了登录 Cookie,旧页面不会把原本面向账户 A 的动作悄悄执行到账户 B。已经接纳的轮次也保留原账户和目的地。身份读取失败应显示暂不可用,而不是假装用户已退出或当前历史为空。

  1. 读取当前身份与权益

    区分已退出、读取失败与已登录但无新生成权益;已有历史仍按真实身份提供相应操作。

  2. 明确发送当前输入

    将所选模型、消息和附件作为一次新轮次;先完整保存并发布输入,再发出模型请求。

  3. 分别展示生成与保存进度

    浏览器可以看到尚未发布的增量,重新打开历史时只恢复已经确定提交的内容。

屏幕上的进度,可能早于保存进度

服务可以立即把文字增量交给浏览器,同时把输出整理成每份不超过 1 MiB 的检查点。检查点的内容写到私有对象存储,再以事务发布有序引用。只有发布完成的内容才属于可重新读取的历史,屏幕最后一个字符不是保存确认。

数据库保存容量、会话顺序和发布记录,大段正文留在不可变对象中。每次发布都检查已使用与已预留容量之和,防止多个会话共同超出当轮获准容量。每轮另预留 512 字节用于结束记录,即使正文耗尽空间,也有位置记录中断原因。

上方显示 A、B、C 与临时的 D,下方仅保存 A、B、C;两行逐段对齐,区分可见进度和可重读历史。
屏幕已显示的内容,可能还未进入历史上下对齐同一段内容:浏览器已显示 A–D,已提交历史只有 A–C。D 的虚线表示临时进度;重新打开时,只能从已提交的确定前缀继续阅读。字母表示顺序,不表示时间或性能。

中断后读取确定前缀,保留真实结束状态

显式停止会结束上游读取,并在原期限与容量内尝试保存当前尾段。浏览器断开则保留已确定提交的前缀,不额外保存未提交尾段。重开会话只恢复本地历史,不续接供应商流,也不自动重新发送原请求。

供应商终态、内容保存与费用确认分别归属不同记录。只有必需内容和结束记录均确定发布后,Chat 才呈现完成、失败或未完成。停止、删除或清空都不能撤销已发生的远端执行,费用仍以原请求的最终账本为准。

历史中的结束状态如何理解
状态说明下一步
完成/失败/未完成模型终态与所需内容已保存阅读对应结果与历史
中断连接、容量、存储或期限等结束了本轮读取已保存前缀与具体原因
结果未知尚不能确定原调用或结束记录的结果重新观察原轮次,不自动重发

统一计算历史容量,明确导出的完整性

历史容量计算实际保存的规范化内容,包括文字、原附件的 Base64 数据和轮次元数据。模型请求另受完整 JSON 的 64 MiB 限制,历史还有空间并不代表下一次请求一定能装下。会员过期或降低容量后,现有历史仍可阅读、导出、删除,新的生成重新检查当前权益。

导出固定当时的提交上界,按顺序流式写出消息与各轮状态,不把整段历史装进内存,也不套用模型请求的总大小限制。文件只有写出最后的完整性记录才算结束;途中对象不可读或历史被撤下,下载会保留失败含义,不能把已有部分当作完整备份。

读取、导出和清空各自有完成条件

导出捕获一份确定的历史上界,之后新增的内容不加入这份下载。JSONL 文件末尾的 complete 记录会核对截取上界、源记录数量和实际输出记录;没有这条记录的截断文件,不能作为完整备份。导出只读取服务已保存的历史,不重新调用模型或生成费用。

删除选中的会话时,结果确认的是这些 ID 在当前账户中已不可访问。未确认的剩余 ID 不证明仍然存在,也不能把其他批次当作已完成。清空则是面向整个账户的新决定:回复丢失后先重新观察,若要再次清空,必须由用户重新明确确认当前账户的全部历史。

  • 可以确认:导出保留完整终结记录

    只有捕获范围内的全部源记录和输出均成功完成,才形成这份历史导出的完成结果。

  • 不能推断:屏幕已显示即重新打开后一定存在

    显示增量可能早于检查点发布;保存事实来自已提交历史,而不是浏览器最后看见的字符。

  • 继续核对:清空后的晚到内容

    原代次已撤下的轮次不能恢复旧内容或改变新代次计数;物理对象回收仍由原责任继续完成。

删除先改变可见性,回收继续保留责任

选择删除会在账户范围内撤下指定会话并释放其逻辑容量。清空则在一次事务中切换当前历史代次、归零已用与预留容量,无需先遍历全部消息。新会话可正常准入,旧代次迟到的写入不能把旧内容带回,也不能改变新历史的计数。

后台按已有对象记录继续回收,未确认的写入或删除保留原处理责任。逻辑删除不承诺某个固定时刻完成物理擦除。设计核对重点是首次输入未发布就失败、显示后尚未保存即断线、导出中途缺失内容,以及清空后迟到的发布;每种情况都需要独立检查可读历史、容量与上游调用次数。