ReplyDeliveryOptions
KIT · interface · 类型合同
Host-controlled delivery of already validated text; not upstream model generation.
导入
ts
import type { ReplyDeliveryOptions } from '@jangts/agent-core/events';1
js
/** @typedef {import('@jangts/agent-core/events').ReplyDeliveryOptions} ReplyDeliveryOptions */1
其他公开入口:@jangts/agent-core、@jangts/agent-core/types、@jangts/agent-core/structs、@jangts/agent-core/events、@jangts/agent-core/kits/presentation、@jangts/agent-core/kits。
定义
ts
interface ReplyDeliveryOptions1
字段结构
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
chunkSize | number | undefined | 可省略 | Characters per emitted text event; defaults to 240 and must be a positive integer. |
intervalMs | number | undefined | 可省略 | Delay between chunks in milliseconds; defaults to 0. |
bubblePauseMs | number | undefined | 可省略 | Delay between bubbles in milliseconds; defaults to 0. |
maxDurationMs | number | undefined | 可省略 | Upper bound on intentional pacing time; backpressure and network time are independent. |
使用示例
- 答复事件:文本分片和气泡边界:把已经接受的答复变成可等待的文本/气泡事件,保留取消和交付背压。
先输出已经接受的答复
入门 · Node.js
ts
import { Presentation } from '@jangts/agent-core/kits/presentation';
const context = { signal: new AbortController().signal };
for await (const event of Presentation.publishReplyEvents({ text: '这是已经接受的答复。' }, context)) console.log(event);1
2
3
2
3
js
import { Presentation } from '@jangts/agent-core/kits/presentation';
const context = { signal: new AbortController().signal };
for await (const event of Presentation.publishReplyEvents({ text: '这是已经接受的答复。' }, context))
console.log(event);1
2
3
4
2
3
4
相同事件入口增加分片与气泡
配置 · Node.js
ts
import { Presentation } from '@jangts/agent-core/kits/presentation';
const text = Presentation.replyBubbleTexts({ text: '先说明定义。', bubbles: ['再解释输入输出。'] }).join(Presentation.REPLY_BUBBLE_BOUNDARY);
const events = Presentation.publishReplyEvents({ text, delivery: { chunkSize: 6, intervalMs: 10, bubblePauseMs: 30, maxDurationMs: 1000 } }, { signal: new AbortController().signal });
for await (const event of events) {
if (event.type === 'text') process.stdout.write(event.text);
else if (event.type === 'bubble') process.stdout.write('\n');
}1
2
3
4
5
6
7
2
3
4
5
6
7
js
import { Presentation } from '@jangts/agent-core/kits/presentation';
const text = Presentation.replyBubbleTexts({ text: '先说明定义。', bubbles: ['再解释输入输出。'] }).join(Presentation.REPLY_BUBBLE_BOUNDARY);
const events = Presentation.publishReplyEvents({ text, delivery: { chunkSize: 6, intervalMs: 10, bubblePauseMs: 30, maxDurationMs: 1000 } }, { signal: new AbortController().signal });
for await (const event of events) {
if (event.type === 'text')
process.stdout.write(event.text);
else if (event.type === 'bubble')
process.stdout.write('\n');
}1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9