def stream.raw

bend-kit-llm@0.13.0.1 · llm.bend:506

import bend-kit-llm@0.13.0.1/llm.bend as Llm
import Base
import bend-kit-hairpin@0.13.0.1/hairpin.bend as Hairpin
import bend-kit-retry@0.2.0.0/retry.bend as Retry
import bend-kit-http@0.38.1.1/http.bend as Http
import bend-kit-json@0.7.0.0/json.bend as Json

506# Any request body that asks for SSE, as for tools. The open retries as call does, on a budget of n + 1.
507# A stream opens on the client's pool. Close it with stream.close to give its connection back.
508def stream.raw(c: Client, v: Json.Val) -> IO(Client & Result<&1, &1, Err, Stream>):
509  Client{+api, +base, +headers, +ms, +n, h} = c
510  do IO<Client & Result<&1, &1, Err, Stream>>:
511    y : Hairpin.Client & Retry.Budget <- Hairpin.budget(Hairpin.retry(h, n))
512    x : Hairpin.Client & Retry.Budget & Result<&1, &1, Hairpin.Err, Http.Stream> <- open.budget(api, base, headers, Json.encode.bytes(v), y)
513    stream.done(api, base, headers, ms, n, x)

Uses (17)

Used by (1)