UNPKG

@copilotkit/runtime

Version:

<img src="https://github.com/user-attachments/assets/0a6b64d9-e193-4940-a3f6-60334ac34084" alt="banner" style="border-radius: 12px; border: 2px solid #d6d4fa;" />

44 lines (42 loc) 1.36 kB
import "reflect-metadata"; import { __require } from "../../_virtual/_rolldown/runtime.mjs"; import { convertActionInputToLangChainTool, convertMessageToLangChainMessage, streamLangChainResponse } from "./utils.mjs"; import { randomUUID } from "@copilotkit/shared"; //#region src/service-adapters/langchain/langchain-adapter.ts var LangChainAdapter = class { /** * To use LangChain as a backend, provide a handler function to the adapter with your custom LangChain logic. */ get name() { return "LangChainAdapter"; } constructor(options) { this.options = options; } async process(request) { try { const { eventSource, model, actions, messages, runId, threadId: threadIdFromRequest } = request; const threadId = threadIdFromRequest ?? randomUUID(); const result = await this.options.chainFn({ messages: messages.map(convertMessageToLangChainMessage), tools: actions.map(convertActionInputToLangChainTool), model, threadId, runId }); eventSource.stream(async (eventStream$) => { await streamLangChainResponse({ result, eventStream$ }); }); return { threadId }; } finally { const { awaitAllCallbacks } = __require("@langchain/core/callbacks/promises"); await awaitAllCallbacks(); } } }; //#endregion export { LangChainAdapter }; //# sourceMappingURL=langchain-adapter.mjs.map