From 562dd0dd1298297b3425bdb7f8d166bd3245b418 Mon Sep 17 00:00:00 2001 From: Rajaniraiyn R <72294760+Rajaniraiyn@users.noreply.github.com> Date: Sat, 5 Oct 2024 17:53:43 +0530 Subject: [PATCH] feat(types): add system, assistant, user, and tool response message interfaces --- src/browser.ts | 2 +- src/interfaces.ts | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/browser.ts b/src/browser.ts index 7fa23cd..45987d0 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -157,7 +157,7 @@ async encodeImage(image: Uint8Array | string): Promise { ): Promise> { if (request.messages) { for (const message of request.messages) { - if (message.images) { + if ("images" in message && message.images) { message.images = await Promise.all( message.images.map(this.encodeImage.bind(this)), ) diff --git a/src/interfaces.ts b/src/interfaces.ts index 5b7b115..450bc00 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -60,13 +60,30 @@ export interface GenerateRequest { options?: Partial } -export interface Message { - role: string +export type Message = SystemMessage | AssistantMessage | UserMessage | ToolResponseMessage + +export interface SystemMessage { + role: "system", + content: string +} + +export interface AssistantMessage { + role: "assistant" content: string - images?: Uint8Array[] | string[] tool_calls?: ToolCall[] } +export interface UserMessage { + role: "user", + content: string, + images?: Uint8Array[] | string[] +} + +export interface ToolResponseMessage { + role: "tool", + content: string +} + export interface ToolCall { function: { name: string;