@cogniformai/instructor-stream
Version:
Streaming-first structured data extraction from LLMs with real-time updates
69 lines (53 loc) • 2.09 kB
Markdown
Streaming-first structured data extraction from LLMs with real-time updates.
```typescript
import { instructor } from '@cogniformai/instructor-stream'
import { z } from 'zod'
const schema = z.object({
name: z.string(),
age: z.number(),
})
for await (const result of instructor({
model: 'gpt-4o-mini',
response_model: { schema },
messages: [{ role: 'user', content: 'Extract: John is 25 years old' }],
})) {
console.log('Streaming data:', result.data)
console.log('Metadata:', result._meta)
}
```
- **Real-time Updates**: Get structured data as it streams from LLMs
- **Clean API**: Separate data from metadata with `{ data: T[], _meta }` format
- **Performance Optimized**: Built for production streaming applications
- **Provider Agnostic**: Works with OpenAI, Anthropic, and more
Need to consume LangGraph’s multi-node streams and hydrate different UI surfaces at once? The `langgraph` adapter extracts fragments by `langgraph_node`, feeds them through your Zod schemas, and emits instructor-style snapshots on every chunk.
```typescript
import {
consumeLanggraphChannels,
iterableToReadableStream,
} from '@cogniformai/instructor-stream/adapters/langgraph'
import { z } from 'zod'
const Schemas = {
profile_llm_call: z.object({
business_name: z.string().nullable().optional(),
website_url: z.string().nullable().optional(),
}),
style_guide_llm_call: z.object({
tone: z.string().nullable().optional(),
palette: z.array(z.string()).nullable().optional(),
}),
} as const
await consumeLanggraphChannels({
upstream: iterableToReadableStream(langGraphStream), // async iterable of parsed envelopes
schemas: Schemas,
onSnapshot: async (node, partial, meta) => {
console.log(`[${node}]`, partial, meta)
},
})
```
See `src/adapters/langgraph/README.md` for background, helper utilities, and testing tips.
Visit our [documentation](https://github.com/cogniformai/instructor-stream-js) for complete guides and examples.