@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;" />
38 lines (36 loc) • 1.46 kB
JavaScript
require("reflect-metadata");
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
let _copilotkit_shared = require("@copilotkit/shared");
//#region src/service-adapters/experimental/ollama/ollama-adapter.ts
const DEFAULT_MODEL = "llama3:latest";
var ExperimentalOllamaAdapter = class {
get name() {
return "OllamaAdapter";
}
constructor(options) {
this.provider = "ollama";
if (options?.model) this.model = options.model;
else this.model = DEFAULT_MODEL;
}
async process(request) {
const { messages, actions, eventSource } = request;
const { Ollama } = require("@langchain/community/llms/ollama");
const ollama = new Ollama({ model: this.model });
const contents = messages.filter((m) => m.isTextMessage()).map((m) => m.content);
const _stream = await ollama.stream(contents);
eventSource.stream(async (eventStream$) => {
const currentMessageId = (0, _copilotkit_shared.randomId)();
eventStream$.sendTextMessageStart({ messageId: currentMessageId });
for await (const chunkText of _stream) eventStream$.sendTextMessageContent({
messageId: currentMessageId,
content: chunkText
});
eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
eventStream$.complete();
});
return { threadId: request.threadId || (0, _copilotkit_shared.randomUUID)() };
}
};
//#endregion
exports.ExperimentalOllamaAdapter = ExperimentalOllamaAdapter;
//# sourceMappingURL=ollama-adapter.cjs.map