Stream HelpersLangChainAdapter
LangChainAdapter
The LangChainAdapter
module provides helper functions to transform LangChain output streams into data streams and data stream responses.
See the LangChain Adapter documentation for more information.
It supports:
- LangChain StringOutputParser streams
- LangChain AIMessageChunk streams
- LangChain StreamEvents v2 streams
Import
import { LangChainAdapter } from "ai"
API Signature
Methods
toDataStream:
(stream: ReadableStream<LangChainAIMessageChunk> | ReadableStream<string>, AIStreamCallbacksAndOptions) => AIStream
Converts LangChain output streams to data stream.
toDataStreamResponse:
(stream: ReadableStream<LangChainAIMessageChunk> | ReadableStream<string>, options?: {init?: ResponseInit, data?: StreamData, callbacks?: AIStreamCallbacksAndOptions}) => Response
Converts LangChain output streams to data stream response.
Examples
Convert LangChain Expression Language Stream
app/api/completion/route.ts
import { ChatOpenAI } from '@langchain/openai';import { LangChainAdapter } from 'ai';
export async function POST(req: Request) { const { prompt } = await req.json();
const model = new ChatOpenAI({ model: 'gpt-3.5-turbo-0125', temperature: 0, });
const stream = await model.stream(prompt);
return LangChainAdapter.toDataStreamResponse(stream);}
Convert StringOutputParser Stream
app/api/completion/route.ts
import { ChatOpenAI } from '@langchain/openai';import { LangChainAdapter } from 'ai';import { StringOutputParser } from '@langchain/core/output_parsers';
export async function POST(req: Request) { const { prompt } = await req.json();
const model = new ChatOpenAI({ model: 'gpt-3.5-turbo-0125', temperature: 0, });
const parser = new StringOutputParser(); const stream = await model.pipe(parser).stream(prompt);
return LangChainAdapter.toDataStreamResponse(stream);}