@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
JavaScript
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