@anvia/ 服务器
服务安维亚完成和特工运行过HTTP。 这些框架中立的应对帮助者转向
将事件同步到流中 Response anvia客户端的对象,有JSONL,SSE,并重放支持.
安装
pnpm add @anvia/server @anvia/client @anvia/core @anvia/openai
快速启动使用 OpenAI; 在需要时选择另一个提供者适配器 .
快速启动
设定 OPENAI_API_KEY 在您的服务器上挂载此处理器, 在接受 Web 的框架内挂载
Request 财务报告和审定财务报表 Response 对象 :
import { completionToClientStream, parseClientStreamRequest } from "@anvia/client";
import { streamCompletion } from "@anvia/core";
import { OpenAIClient } from "@anvia/openai";
import { createClientStreamResponse } from "@anvia/server";
const apiKey = process.env.OPENAI_API_KEY;
if (!apiKey) throw new Error("Set OPENAI_API_KEY.");
const model = new OpenAIClient({ apiKey }).completionModel({
modelId: "gpt-5",
api: "responses",
});
export async function POST(request: Request): Promise<Response> {
const body = parseClientStreamRequest(await request.json());
if (body.type !== "messages") {
return new Response("This endpoint accepts messages only.", { status: 400 });
}
const events = completionToClientStream({
events: streamCompletion({ model, messages: body.messages, abortSignal: request.signal }),
});
return createClientStreamResponse({ events });
}
连接 createHttpClientTransport 从 @anvia/client,或与 @anvia/react
钩子. 添加 format: "sse" 的响应选项,而不是默认的 JSONL.
能力
- 用协议头设定客户端响应并命令事件ID.
- 由您提供的一个商店支持的可续生的溪流,以及一个供本地使用的内存商店.
createMemoryResumableStreamStore({ closedStreamTtlMs, maxClosedStreams })默认为 将封闭的溪流保留了10分钟,可达1000道封闭的溪流. - 单独的通用事件响应,用于应用程序定义的协议.
- 下层JSONL和SSE流帮助.
您的应用程序拥有路由、 认证、 请求错误处理和持久存储 .
需要恢复两个响应助手 after 作为非负安全整数; 省略值
默认为零。 无效值返回带有错误代码的 HTTP 400 JSON invalid_resumable_after。 。 。 .
下级 resumeStreamEvents() 掷出 InvalidResumableAfterError 在放弃之前.
学多点
持久执行路线
可选 @anvia/server/durable 进口 createDurableHandler 页:1
@anvia/durable 运行时间。 它提供呈文,会话范围运行列表,快照,
SSE事件带有持续的ID,排队引导,批准响应,重试,取消和对账.
POST /durable/runs/:id/steer 接受 { input: { prompt } } 或者说 { input: { messages } }, (中文(简体) ),
加上可选 requestId,并用 HTTP 202 返回持续收据。 这需要
授权行动 steer 和匹配的持久释放(在支持的对等区域内0.8或更新).
一个 authorize(request, resource) 所有读取和写作都需要回调 。 东道主
拥有运行时间启动( n)resume)和关闭(close) (中文(简体) ). 客户端断开分离观察器 .
需要提交任务 @anvia/durable 0.6或较新的,每项授权均有效
代理ID,包括目标默认和保存绑定. 旧运行时间返回 HTTP 503 任务
提交; 现有的运行路径仍然可用。 当代理访问被拒绝时,没有创建任何工作,
并更改了授权时的绑定值返回 HTTP 409 供呼叫者重试 .
客户端无法发送 trace选项 trace(request, resource) 回调设置观察者追踪
上下文,例如授权运行和任务提交的用户ID。 这需要
@anvia/durable 0.11或较新.
安装 @anvia/durable 当使用此子路径时 。 见
耐用 HTTP 指南。 。 。 .
常规 SseStreamOptions 也支持 eventId(event) 本地SSE 身份证和
onCancel() 以中断正在读取的生产者,然后返回其执行者.
下的持久图表路线 /durable/graphs 暴露呈报、分层发现、地貌
快照,任务SSE事件,和取消. 全图业务授权每一项任务;
由儿童经营的个别路线授权与图的自有会话相对应。 见
任务图表指南。 。 。 .