Skip to content

Commit bc84564

Browse files
issues (#87)
1 parent 4aa292a commit bc84564

File tree

8 files changed

+58
-2
lines changed

8 files changed

+58
-2
lines changed

Sources/OpenAI/AIProxy/AIProxyService.swift

+9
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,15 @@ struct AIProxyService: OpenAIService {
406406
let request = try await OpenAIAPI.message(.modify(threadID: threadID, messageID: messageID)).request(aiproxyPartialKey: partialKey, serviceURL: serviceURL, clientID: clientID, organizationID: organizationID, method: .post, params: parameters, betaHeaderField: Self.assistantsBetaV2)
407407
return try await fetch(debugEnabled: debugEnabled, type: MessageObject.self, with: request)
408408
}
409+
410+
func deleteMessage(
411+
threadID: String,
412+
messageID: String)
413+
async throws -> DeletionStatus
414+
{
415+
let request = try await OpenAIAPI.message(.delete(threadID: threadID, messageID: messageID)).request(aiproxyPartialKey: partialKey, serviceURL: serviceURL, clientID: clientID, organizationID: organizationID, method: .delete, betaHeaderField: Self.assistantsBetaV2)
416+
return try await fetch(debugEnabled: debugEnabled, type: DeletionStatus.self, with: request)
417+
}
409418

410419
func listMessages(
411420
threadID: String,

Sources/OpenAI/Azure/AzureOpenAIAPI.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ enum AzureOpenAIAPI {
4343
case create(threadID: String)
4444
case retrieve(threadID: String, messageID: String)
4545
case modify(threadID: String, messageID: String)
46+
case delete(threadID: String, messageID: String)
4647
case list(threadID: String)
4748
}
4849

@@ -104,7 +105,7 @@ extension AzureOpenAIAPI: Endpoint {
104105
case .message(let category):
105106
switch category {
106107
case .create(let threadID), .list(let threadID): return "/openai/threads/\(threadID)/messages"
107-
case .retrieve(let threadID, let messageID), .modify(let threadID, let messageID): return "/openai/threads/\(threadID)/messages/\(messageID)"
108+
case .retrieve(let threadID, let messageID), .modify(let threadID, let messageID), .delete(let threadID, let messageID): return "/openai/threads/\(threadID)/messages/\(messageID)"
108109
}
109110
case .run(let category):
110111
switch category {

Sources/OpenAI/Azure/DefaultOpenAIAzureService.swift

+15
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,21 @@ final public class DefaultOpenAIAzureService: OpenAIService {
304304
return try await fetch(debugEnabled: debugEnabled, type: MessageObject.self, with: request)
305305
}
306306

307+
public func deleteMessage(
308+
threadID: String,
309+
messageID: String)
310+
async throws -> DeletionStatus
311+
{
312+
let request = try AzureOpenAIAPI.message(.delete(threadID: threadID, messageID: messageID)).request(
313+
apiKey: apiKey,
314+
organizationID: nil,
315+
method: .delete,
316+
queryItems: initialQueryItems,
317+
betaHeaderField: Self.assistantsBetaV2,
318+
extraHeaders: extraHeaders)
319+
return try await fetch(debugEnabled: debugEnabled, type: DeletionStatus.self, with: request)
320+
}
321+
307322
public func listMessages(threadID: String, limit: Int?, order: String?, after: String?, before: String?, runID: String?) async throws -> OpenAIResponse<MessageObject> {
308323
var queryItems: [URLQueryItem] = initialQueryItems
309324
if let limit {

Sources/OpenAI/LocalModelService/LocalModelService.swift

+4
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,10 @@ struct LocalModelService: OpenAIService {
187187
fatalError("Currently, this API is not supported. We welcome and encourage contributions to our open-source project. Please consider opening an issue or submitting a pull request to add support for this feature.")
188188
}
189189

190+
func deleteMessage(threadID: String, messageID: String) async throws -> DeletionStatus {
191+
fatalError("Currently, this API is not supported. We welcome and encourage contributions to our open-source project. Please consider opening an issue or submitting a pull request to add support for this feature.")
192+
}
193+
190194
func listMessages(threadID: String, limit: Int?, order: String?, after: String?, before: String?, runID: String?) async throws -> OpenAIResponse<MessageObject> {
191195
fatalError("Currently, this API is not supported. We welcome and encourage contributions to our open-source project. Please consider opening an issue or submitting a pull request to add support for this feature.")
192196
}

Sources/OpenAI/Private/Networking/OpenAIAPI.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ enum OpenAIAPI {
7171
case create(threadID: String)
7272
case retrieve(threadID: String, messageID: String)
7373
case modify(threadID: String, messageID: String)
74+
case delete(threadID: String, messageID: String)
7475
case list(threadID: String)
7576
}
7677

@@ -174,7 +175,7 @@ extension OpenAIAPI: Endpoint {
174175
case .message(let category):
175176
switch category {
176177
case .create(let threadID), .list(let threadID): return "/v1/threads/\(threadID)/messages"
177-
case .retrieve(let threadID, let messageID), .modify(let threadID, let messageID): return "/v1/threads/\(threadID)/messages/\(messageID)"
178+
case .retrieve(let threadID, let messageID), .modify(let threadID, let messageID), .delete(let threadID, let messageID): return "/v1/threads/\(threadID)/messages/\(messageID)"
178179
}
179180
case .model(let category):
180181
switch category {

Sources/OpenAI/Public/Service/DefaultOpenAIService.swift

+9
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,15 @@ struct DefaultOpenAIService: OpenAIService {
393393
return try await fetch(debugEnabled: debugEnabled, type: MessageObject.self, with: request)
394394
}
395395

396+
func deleteMessage(
397+
threadID: String,
398+
messageID: String)
399+
async throws -> DeletionStatus
400+
{
401+
let request = try OpenAIAPI.message(.delete(threadID: threadID, messageID: messageID)).request(apiKey: apiKey, organizationID: organizationID, method: .delete, betaHeaderField: Self.assistantsBetaV2)
402+
return try await fetch(debugEnabled: debugEnabled, type: DeletionStatus.self, with: request)
403+
}
404+
396405
func listMessages(
397406
threadID: String,
398407
limit: Int? = nil,

Sources/OpenAI/Public/Service/OpenAIService.swift

+12
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,18 @@ public protocol OpenAIService {
479479
parameters: ModifyMessageParameters)
480480
async throws -> MessageObject
481481

482+
/// Deletes a message.
483+
///
484+
/// - Parameter threadID: The ID of the thread to which this message belongs.
485+
/// - Parameter messageID: The ID of the message to modify.
486+
/// - Throws: An error if the request fails.
487+
///
488+
/// For more information, refer to [OpenAI's Message API documentation](https://platform.openai.com/docs/api-reference/messages/deleteMessage).
489+
func deleteMessage(
490+
threadID: String,
491+
messageID: String)
492+
async throws -> DeletionStatus
493+
482494
/// Returns a list of messages for a given thread.
483495
///
484496
/// - Parameter threadID: The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) the messages belong to.

Sources/OpenAI/Public/Shared/MessageAttachment.swift

+5
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@ public struct MessageAttachment: Codable {
1818
case fileID = "file_id"
1919
case tools
2020
}
21+
22+
public init(fileID: String, tools: [AssistantObject.Tool]) {
23+
self.fileID = fileID
24+
self.tools = tools
25+
}
2126
}

0 commit comments

Comments
 (0)