diff --git a/Sources/OpenAI/OpenAI.swift b/Sources/OpenAI/OpenAI.swift index 49715c8e..e91b33f5 100644 --- a/Sources/OpenAI/OpenAI.swift +++ b/Sources/OpenAI/OpenAI.swift @@ -57,7 +57,7 @@ final public class OpenAI: OpenAIProtocol { } public func completions(query: CompletionsQuery, completion: @escaping (Result) -> Void) { - performRequest(request: JSONRequest(body: query, url: buildURL(path: .completions)), completion: completion) + performRequest(request: JSONRequest(body: query.makeNonStreamable(), url: buildURL(path: .completions)), completion: completion) } public func completionsStream(query: CompletionsQuery, onResult: @escaping (Result) -> Void, completion: ((Error?) -> Void)?) { @@ -81,7 +81,7 @@ final public class OpenAI: OpenAIProtocol { } public func chats(query: ChatQuery, completion: @escaping (Result) -> Void) { - performRequest(request: JSONRequest(body: query, url: buildURL(path: .chats)), completion: completion) + performRequest(request: JSONRequest(body: query.makeNonStreamable(), url: buildURL(path: .chats)), completion: completion) } public func chatsStream(query: ChatQuery, onResult: @escaping (Result) -> Void, completion: ((Error?) -> Void)?) { diff --git a/Sources/OpenAI/Public/Models/StreamableQuery.swift b/Sources/OpenAI/Public/Protocols/StreamableQuery.swift similarity index 50% rename from Sources/OpenAI/Public/Models/StreamableQuery.swift rename to Sources/OpenAI/Public/Protocols/StreamableQuery.swift index 1210432f..fefa6fe4 100644 --- a/Sources/OpenAI/Public/Models/StreamableQuery.swift +++ b/Sources/OpenAI/Public/Protocols/StreamableQuery.swift @@ -1,6 +1,6 @@ // -// File.swift -// +// Streamable.swift +// // // Created by Sergii Kryvoblotskyi on 15/05/2023. // @@ -8,17 +8,29 @@ import Foundation protocol Streamable { - + var stream: Bool { get set } func makeStreamable() -> Self + func makeNonStreamable() -> Self } extension Streamable { - + func makeStreamable() -> Self { + guard !stream else { + return self + } var copy = self copy.stream = true return copy } + + func makeNonStreamable() -> Self { + guard stream else { + return self + } + var copy = self + copy.stream = false + return copy + } } -