Skip to main content

streaming-responses

Use when streaming tokens incrementally from an LLM via liter-llm over SSE or async iterators. Covers chat_stream, delta handling, and null-content chunks.

소스 정보

저장소
xberg-io/liter-llm
최근 소스 활동
2026년 9월 30일 16:23
감지된 SKILL.md 언어
영어
스타
260
포크
23

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
streaming-responses
description
Use when streaming tokens incrementally from an LLM via liter-llm over SSE or async iterators. Covers chat_stream, delta handling, and null-content chunks.
<!-- AI-RULEZ :: GENERATED FILE — DO NOT EDIT Content-Hash: blake3:13410510899be94ef40712ffcb27a284ef4ac4977b6e45b38b014d60e913f995 Source-Hash: blake3:651c31e789b5b3a98bbebecbda0ea4f0b6222b63c8264db7c677af355c5fe27b Schema-Version: v1 --> # Streaming Responses Use `chat_stream(...)` to receive tokens as they are produced instead of waiting for the full completion. The proxy streams over SSE; bindings expose async iterators. ## Python ```python import asyncio, os from liter_llm import create_client from liter_llm._internal_bindings import ChatCompletionRequest async def main() -> None: client = create_client(api_key=os.environ["OPENAI_API_KEY"]) request = ChatCompletionRequest.from_json( '{"model":"openai/gpt-4o","messages":[{"role":"user","content":"Tell me a story"}],"stream":true}' ) async for chunk in client.chat_stream(request): if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True) print() asyncio.run(main()) ``` ## TypeScript ```typescript import { createClient } from "@xberg-io/liter-llm"; const client = createClient(process.env.OPENAI_API_KEY!); const chunks = await client.chatStream({ model: "openai/gpt-4o", messages: [{ role: "user", content: "Tell me a story" }], }); for await (const chunk of chunks) { process.stdout.write(chunk.choices?.[0]?.delta?.content ?? ""); } ``` ## Notes - The first and last chunks often carry null content. Always null-check `chunk.choices[0].delta.content` (Python) or `chunk.choices[0]?.delta?.content` (TypeScript) before using it. - Tool-call deltas arrive in `delta.tool_calls` (Python) / `delta.toolCalls` (TypeScript); accumulate `function.arguments` fragments across chunks before parsing. - Through the proxy, request streaming with `"stream": true` on `/v1/chat/completions`.
GitHub에서 보기