Interface: StreamDurability<TOffset>
정의 위치: packages/ai/src/stream-durability.ts:10
플러그인 방식으로 연결할 수 있는 전달 내구성 백엔드입니다.
오프셋은 어댑터가 소유하며 전송 계층에는 불투명합니다. 제네릭 매개변수를 사용하면 코어가 커서 형식을 이해하지 않아도 어댑터가 append, read, resume 전반에서 브랜드가 지정된 문자열 타입을 유지할 수 있습니다.
확장됨
타입 매개변수
TOffset
TOffset extends string = string
속성
append
append: (chunks) => Promise<TOffset[]>;
정의 위치: packages/ai/src/stream-durability.ts:17
배치를 전달하기 전에 영속화하고 각 청크에 대해 재개 가능한 오프셋을 정확히 하나씩 같은 순서로 반환합니다.
매개변수
chunks
반환값
Promise<TOffset[]>
close
close: () => Promise<void>;
정의 위치: packages/ai/src/stream-durability.ts:27
생산자 로그를 종료 상태로 만들고 실시간 리더의 차단을 해제합니다. 코어는 완료, 취소, 실패를 포함한 모든 생산자 종료 시 이 작업을 기다립니다.
반환값
Promise<void>
read
read: (offset, signal?) => AsyncIterable<{
chunk: AGUIEvent;
offset: TOffset;
}>;
정의 위치: packages/ai/src/stream-durability.ts:19
제공된 어댑터 소유 오프셋보다 엄격히 이후의 청크를 재생합니다.
매개변수
offset
TOffset
signal?
AbortSignal
반환값
AsyncIterable<{
chunk: AGUIEvent;
offset: TOffset;
}>
resumeFrom
resumeFrom: () => TOffset | null;
정의 위치: packages/ai/src/stream-durability.ts:12
요청에서 캡처한 어댑터 오프셋을 반환하며, 생산자인 경우 null을 반환합니다.
반환값
TOffset | null
snapshot
snapshot: () => Promise<object[]>;
정의 위치: packages/ai/src/stream-durability.ts:57
호출 시점에 이 실행에 저장된 모든 항목을 append 순서로 반환한 후 resolve합니다.
이는 StreamDurability.read에 대응하는 제한된 읽기입니다. read는
로그가 종료되거나 호출자가 중단할 때까지 대기하므로, close를 호출하지
않고 생산자가 종료된 로그를 검사하는 데 사용할 수 없습니다. 해당 로그는
영원히 열린 상태로 남아 그 위의 for await가 끝나지 않습니다.
snapshot은 바로 이 경우를 위해 존재합니다. 실행을 재개하는 생산자는
이전 호스트가 이미 저장한 접두사를 확인하여 자신의 출력을 그에 맞춰야
하며, 해당 읽기가 반환되어야 합니다.
구현은 반드시 다음을 충족해야 합니다.
- 더 많은 항목을 절대 기다리지 않고, 로그가 아직 열려 있고 계속 append되는 중인 경우를 포함하여 저장된 내용으로 resolve해야 합니다.
- 저장된 내용이 없는 실행에서는 예외를 발생시키지 말고 빈 배열로
resolve해야 합니다. 특히 구현은 처음부터 시작하는
read참여가 사용하는 알 수 없는 실행 실패 경로를 재사용해서는 안 됩니다(빈 로그의read('-1')는 실패할 수 있지만snapshot()은 실패해서는 안 됩니다). 네트워크를 사용하는 백엔드는 전송, 프로토콜 또는 인증 실패 시 거부할 수 있습니다. 이는 빈 실행이 아니라 실패한 호출입니다. - 호출자가 보관하거나 변경해도 이를 통해 저장된 로그에 접근할 수 없는 새로운 배열을 반환해야 합니다.
결과는 특정 시점의 뷰이며 잠금을 포함하지 않습니다. 동시 실행 중인
append가 스냅샷 직후 반영될 수 있으므로 호출자는 마지막으로 반환된
오프셋을 영구적인 끝으로 간주해서는 안 됩니다.
반환값
Promise<object[]>