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;" />

38 lines (36 loc) 1.38 kB
import "reflect-metadata"; import { __require } from "../../../_virtual/_rolldown/runtime.mjs"; import { randomId, randomUUID } from "@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 = 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 || randomUUID() }; } }; //#endregion export { ExperimentalOllamaAdapter }; //# sourceMappingURL=ollama-adapter.mjs.map