@anvia/客户端
用框架中性流线协议连接任何前端到安维亚. 此软件包提供 HTTP和直接传输,运行时间验证,以及用于文本,工具和交互的UI消息状态.
安装
pnpm add @anvia/client @anvia/core
快速启动
设定一个返回 Anvia 客户端流的聊天端点, 如创建的
@anvia/server数字 :
import {
applyClientStreamEvent,
createHttpClientTransport,
messagesToUIMessages,
type UIMessage,
} from "@anvia/client";
import type { Message } from "@anvia/core/completion";
const transport = createHttpClientTransport({ endpoint: "/api/chat" });
const messages: Message[] = [{ role: "user", content: "Hello!" }];
let uiMessages: readonly UIMessage[] = messagesToUIMessages(messages);
for await (const frame of transport.send({ request: { type: "messages", messages } })) {
if (frame.type === "stream_event") {
uiMessages = applyClientStreamEvent(uiMessages, frame.event);
console.log(uiMessages);
}
}
传输验证了框架、事件顺序和流特性。 发送核心 Message[] 页:1
服务器; 保存 UIMessage[] 作为应用程序中的演示文稿状态.
能力
- 用于JSONL或SSE的HTTP运输,外加用于过程内集成的直接运输.
- 服务器边界上的本地补全和代理事件的适应器 .
- 经验证的请求,事件,帧,以及坚持UI消息.
- 消息转换和减少,包括流化工具参数和生成用法.
- 已键入自定义流数据, Agent 交互,和 HTTP 恢复光标 .
对于反应, @anvia/react 通过 useChat 财务报告和审定财务报表 useCompletion通用JSONL/SSE
阅读器也可从下列网站获取: @anvia/client/transport 其他活动合同。 错误
框被跳过并报告到 onParseError (或与 strict: true),以及
readSseFrames 曝光 SSE 事件名称, 最后事件 ID, 并重试提示 .
学多点
持久 HTTP 客户端
可选 @anvia/client/durable 进口 DurableClient 财务报告和审定财务报表
DurableHttpError。安装 @anvia/durable 用来使用它。 它支持提交、列表、快照、,
SSE观察,排队引导,批准响应,再试,取消,以及工具调节.
使用 client.steer(runId, { prompt: "Focus on recovery" }, { requestId: "correction-123" })
(d) 继续收到收据。 重新使用可选请求ID来复制交付;
观察 steering_applied 以确认输入的对话。 指导要求
匹配持久发布(在支持的对等区域内为0.8或更新).
用绝对的构造它 endpoint选项 fetch, (中文(简体) ), credentials静态或
按请求数 headers从中恢复 UI 状态 snapshot(runId),然后观察
stream(runId, { after: snapshot.cursor })输入记录和事件命令
验证。 重新连接是明确的;中止观察不会取消执行.
这些承诺的进展活动与sid-delta聊天流是分开的.
见 耐用 HTTP 指南。 。 。 .
聊天UI 传输
可选 @anvia/client/durable-chat 进口 createDurableChatTransport,哪个
将持久终点调整到 ClientTransport 使用的合同 useChat 从 @anvia/react
编辑 @anvia/react-ui 原始的 原始的 原始的 每个聊天会话创建一个传送;代理、会话和
请求身份是住在那里,而不是在单个信息请求中.
const transport = createDurableChatTransport({ client, agentId, sessionId });
const chat = useChat({ transport });
适配器以 enqueue: true 默认情况下, 绘制持久日记
事件改为 anvia.client.v3 框架、路径对生成它们的运行的交互响应,以及
使用可持久运行的 id 和 顺序 { streamId, after } 简历。 中止订阅
仅解析; 使用 transport.controller.cancel(), (中文(简体) ), retry(), (中文(简体) ), resolveTool() 或者说
reattach(runId, after) 明确运行控制。 繁忙的会议被报告为
DurableBusyError {\fn黑体\fs20\shad2\2aH82\3aH20\4aH33\fscx95\3cH592001\be1}然后重新行动起来 {\fn黑体\fs20\shad2\2aH82\3aH20\4aH33\fscx95\3cH592001\be1}然后重新行动 客户端历史被丢弃,有利于
耐用记录,所以 regenerate() 财务报告和审定财务报表 reset() 粗略; 不包含线程列表.
DurableClient 还揭露 submitGraph, (中文(简体) ), listGraphs, (中文(简体) ), graphSnapshot, (中文(简体) ), streamGraph,以及
cancelGraph. 图示载有可变节点/网格和明确的等待理由.
使用每个节点 runId 使用现有的反应/重试/和解方法。 图表流
携带 graphId 财务报告和审定财务报表 taskId; 刷新快照以获取最新的全图状态 .
重新开始的世代
重复 generation_start 对于未完成的转弯 message_reset 在此之前
新内容。 简化器可以清除信件的部件、元数据和生成状态
在维护身份和作用的同时 已完成的转会和其他代理范围不受影响.
更新服务器和前端副本 @anvia/client 一起来,所以前端
校验器确认此事件 .