From 21dded5698c0a8667f4ff199bf90cc9b1c88a78c Mon Sep 17 00:00:00 2001 From: Heng Zhong Date: Mon, 24 Apr 2023 23:25:10 +0800 Subject: [PATCH] feat: support multiple system message --- src/chatgpt-api.ts | 13 +++++++++++-- src/types.ts | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/chatgpt-api.ts b/src/chatgpt-api.ts index 2165956..1ad70f8 100644 --- a/src/chatgpt-api.ts +++ b/src/chatgpt-api.ts @@ -19,7 +19,7 @@ export class ChatGPTAPI { protected _apiOrg?: string protected _debug: boolean - protected _systemMessage: string + protected _systemMessage: string | string[] protected _completionParams: Omit< types.openai.CreateChatCompletionRequest, 'messages' | 'n' @@ -368,13 +368,22 @@ export class ChatGPTAPI { const maxNumTokens = this._maxModelTokens - this._maxResponseTokens let messages: types.openai.ChatCompletionRequestMessage[] = [] - if (systemMessage) { + if (typeof systemMessage === 'string') { messages.push({ role: 'system', content: systemMessage }) } + if (Array.isArray(systemMessage)) { + messages = messages.concat( + systemMessage.map((content) => ({ + role: 'system', + content + })) + ) + } + const systemMessageOffset = messages.length let nextMessages = text ? messages.concat([ diff --git a/src/types.ts b/src/types.ts index 2328584..b6bac59 100644 --- a/src/types.ts +++ b/src/types.ts @@ -19,7 +19,7 @@ export type ChatGPTAPIOptions = { Omit > - systemMessage?: string + systemMessage?: string | string[] /** @defaultValue `4096` **/ maxModelTokens?: number @@ -41,7 +41,7 @@ export type SendMessageOptions = { conversationId?: string messageId?: string stream?: boolean - systemMessage?: string + systemMessage?: string | string[] timeoutMs?: number onProgress?: (partialResponse: ChatMessage) => void abortSignal?: AbortSignal