@@ -299,7 +299,9 @@ actor OpenAIChatCompletionsService: ChatCompletionsStreamAPI, ChatCompletionsAPI
299299 requestBody,
300300 endpoint: endpoint,
301301 enforceMessageOrder: model. info. openAICompatibleInfo. enforceMessageOrder,
302- canUseTool: model. info. supportsFunctionCalling
302+ canUseTool: model. info. supportsFunctionCalling,
303+ supportsImage: model. info. supportsImage,
304+ supportsAudio: model. info. supportsAudio
303305 )
304306 self . model = model
305307 }
@@ -676,7 +678,9 @@ extension OpenAIChatCompletionsService.RequestBody {
676678 _ body: ChatCompletionsRequestBody ,
677679 endpoint: URL ,
678680 enforceMessageOrder: Bool ,
679- canUseTool: Bool
681+ canUseTool: Bool ,
682+ supportsImage: Bool ,
683+ supportsAudio: Bool
680684 ) {
681685 temperature = body. temperature
682686 stream = body. stream
@@ -739,24 +743,24 @@ extension OpenAIChatCompletionsService.RequestBody {
739743 case ( . system, _) :
740744 systemPrompts. append ( contentsOf: Self . convertContentPart (
741745 content: message. content,
742- images: message. images,
743- audios: message. audios
746+ images: supportsImage ? message. images : [ ] ,
747+ audios: supportsAudio ? message. audios : [ ]
744748 ) )
745749 case ( . tool, true ) :
746750 if let last = nonSystemMessages. last, last. role == . tool {
747751 Self . joinMessageContent (
748752 & nonSystemMessages[ nonSystemMessages. endIndex - 1 ] ,
749753 content: message. content,
750- images: message. images,
751- audios: message. audios
754+ images: supportsImage ? message. images : [ ] ,
755+ audios: supportsAudio ? message. audios : [ ]
752756 )
753757 } else {
754758 nonSystemMessages. append ( . init(
755759 role: . tool,
756760 content: . contentParts( Self . convertContentPart (
757761 content: message. content,
758- images: message. images,
759- audios: message. audios
762+ images: supportsImage ? message. images : [ ] ,
763+ audios: supportsAudio ? message. audios : [ ]
760764 ) ) ,
761765 tool_calls: message. toolCalls? . map { tool in
762766 MessageToolCall (
@@ -775,16 +779,16 @@ extension OpenAIChatCompletionsService.RequestBody {
775779 Self . joinMessageContent (
776780 & nonSystemMessages[ nonSystemMessages. endIndex - 1 ] ,
777781 content: message. content,
778- images: message. images,
779- audios: message. audios
782+ images: supportsImage ? message. images : [ ] ,
783+ audios: supportsAudio ? message. audios : [ ]
780784 )
781785 } else {
782786 nonSystemMessages. append ( . init(
783787 role: . assistant,
784788 content: . contentParts( Self . convertContentPart (
785789 content: message. content,
786- images: message. images,
787- audios: message. audios
790+ images: supportsImage ? message. images : [ ] ,
791+ audios: supportsAudio ? message. audios : [ ]
788792 ) )
789793 ) )
790794 }
@@ -793,16 +797,16 @@ extension OpenAIChatCompletionsService.RequestBody {
793797 Self . joinMessageContent (
794798 & nonSystemMessages[ nonSystemMessages. endIndex - 1 ] ,
795799 content: message. content,
796- images: message. images,
797- audios: message. audios
800+ images: supportsImage ? message. images : [ ] ,
801+ audios: supportsAudio ? message. audios : [ ]
798802 )
799803 } else {
800804 nonSystemMessages. append ( . init(
801805 role: . user,
802806 content: . contentParts( Self . convertContentPart (
803807 content: message. content,
804- images: message. images,
805- audios: message. audios
808+ images: supportsImage ? message. images : [ ] ,
809+ audios: supportsAudio ? message. audios : [ ]
806810 ) ) ,
807811 name: message. name,
808812 tool_call_id: message. toolCallId
@@ -838,8 +842,8 @@ extension OpenAIChatCompletionsService.RequestBody {
838842 } ( ) ,
839843 content: . contentParts( Self . convertContentPart (
840844 content: message. content,
841- images: message. images,
842- audios: message. audios
845+ images: supportsImage ? message. images : [ ] ,
846+ audios: supportsAudio ? message. audios : [ ]
843847 ) ) ,
844848 name: message. name,
845849 tool_calls: message. toolCalls? . map { tool in
0 commit comments