Skip to content

Commit d235702

Browse files
Fixing function call parameter (#27)
1 parent ecedc79 commit d235702

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

Sources/OpenAI/Public/Parameters/Chat/ChatCompletionParameters.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,13 +208,17 @@ public struct ChatCompletionParameters: Encodable {
208208
public enum ToolChoice: Encodable, Equatable {
209209
case none
210210
case auto
211-
case function(type: String?, name: String)
211+
case function(type: String = "function", name: String)
212212

213213
enum CodingKeys: String, CodingKey {
214214
case none = "none"
215215
case auto = "auto"
216-
case name = "name"
217216
case type = "type"
217+
case function = "function"
218+
}
219+
220+
enum FunctionCodingKeys: String, CodingKey {
221+
case name = "name"
218222
}
219223

220224
public func encode(to encoder: Encoder) throws {
@@ -227,10 +231,9 @@ public struct ChatCompletionParameters: Encodable {
227231
try container.encode(CodingKeys.auto.rawValue)
228232
case .function(let type, let name):
229233
var container = encoder.container(keyedBy: CodingKeys.self)
230-
try container.encode(name, forKey: .name)
231-
if let type {
232-
try container.encode(type, forKey: .type)
233-
}
234+
try container.encode(type, forKey: .type)
235+
var functionContainer = container.nestedContainer(keyedBy: FunctionCodingKeys.self, forKey: .function)
236+
try functionContainer.encode(name, forKey: .name)
234237
}
235238
}
236239
}

0 commit comments

Comments
 (0)