Skip to content

Commit 4306ae5

Browse files
authored
Update ollama js plugin to support system message (#471)
1 parent 486880f commit 4306ae5

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

‎js/plugins/ollama/src/index.ts‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ function ollamaModel(
7171
configSchema: GenerationCommonConfigSchema,
7272
supports: {
7373
multiturn: !model.type || model.type === 'chat',
74+
systemRole: true,
7475
},
7576
},
7677
async (input, streamingCallback) => {
@@ -249,6 +250,7 @@ function toOllamaRequest(
249250
request.messages = messages;
250251
} else {
251252
request.prompt = getPrompt(input);
253+
request.system = getSystemMessage(input);
252254
}
253255
return request;
254256
}
@@ -279,8 +281,18 @@ function readChunks(reader) {
279281
};
280282
}
281283

282-
function getPrompt(input: GenerateRequest) {
283-
return input.messages.map((m) => m.content.map((c) => c.text).join()).join();
284+
function getPrompt(input: GenerateRequest): string {
285+
return input.messages
286+
.filter((m) => m.role !== 'system')
287+
.map((m) => m.content.map((c) => c.text).join())
288+
.join();
289+
}
290+
291+
function getSystemMessage(input: GenerateRequest): string {
292+
return input.messages
293+
.filter((m) => m.role === 'system')
294+
.map((m) => m.content.map((c) => c.text).join())
295+
.join();
284296
}
285297

286298
interface Message {

0 commit comments

Comments
 (0)