Skip to content

Commit 7c69644

Browse files
committed
support mapping function role
1 parent 678182a commit 7c69644

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/helpers/openAi.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
ChatCompletionAssistantMessageParam,
33
ChatCompletionCreateParamsNonStreaming,
4+
ChatCompletionFunctionMessageParam,
45
ChatCompletionMessageParam,
56
ChatCompletionMessageToolCall,
67
ChatCompletionRole,
@@ -75,6 +76,10 @@ function isToolMessage(message: ChatCompletionMessageParam): message is ChatComp
7576
return message.role === 'tool'
7677
}
7778

79+
function isFunctionMessage(message: ChatCompletionMessageParam): message is ChatCompletionFunctionMessageParam {
80+
return message.role === 'tool'
81+
}
82+
7883
function isAssistantMessage(message: ChatCompletionMessageParam): message is ChatCompletionAssistantMessageParam {
7984
return message.role === 'assistant'
8085
}
@@ -99,6 +104,22 @@ export const mapOpenAIMessagesToMessages = (messages: ChatCompletionMessageParam
99104
}
100105
}
101106

107+
if (isFunctionMessage(message)) {
108+
if (!message.name) {
109+
throw new Error('Function call missing name')
110+
}
111+
112+
if (!message.content) {
113+
throw new Error('Tool message missing content')
114+
}
115+
return {
116+
role: 'TOOL',
117+
content: message.content,
118+
toolCallId: message.name,
119+
toolCalls: null
120+
}
121+
}
122+
102123
if (isAssistantMessage(message)) {
103124
const toolCalls: PromptMessage['toolCalls'] =
104125
message.tool_calls?.map((toolCall) => {

0 commit comments

Comments
 (0)