---
title: "LangChainAdapter"
description: "CopilotKit Adapter for LangChain"
---
{/* GENERATE-DOCS path=packages/backend/src/lib/langchain-adapter.ts class=LangChainAdapter */}
Use this adapter to use LangChain as a backend.
```typescript
return copilotKit.response(
req,
new LangChainAdapter(async (forwardedProps) => {
const model = new ChatOpenAI({ modelName: "gpt-4o" });
return model.stream(forwardedProps.messages, {
tools: forwardedProps.tools,
});
})
);
```
The async handler function can return:
- a simple `string` response
- a LangChain stream `IterableReadableStream`
- a LangChain `BaseMessageChunk` object
- a LangChain `AIMessage` object
## Constructor
## constructor(private chainFn: (forwardedProps: any) => Promise<LangChainReturnType>)
To use LangChain as a backend, provide a handler function to the adapter with your custom LangChain logic.
## getResponse(forwardedProps: any)