Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "common/json_serializable.h"

namespace api_response {
struct DeleteMessageResponse : JsonSerializable {
struct DeleteSuccessResponse : JsonSerializable {
std::string id;
std::string object;
bool deleted;
Expand Down
14 changes: 6 additions & 8 deletions engine/common/message.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,17 @@
#include "utils/logging_utils.h"
#include "utils/result.hpp"

namespace ThreadMessage {
namespace OpenAi {

// Represents a message within a thread.
struct Message : JsonSerializable {
Message() = default;

Message(Message&&) = default;

Message& operator=(Message&&) = default;

// Delete copy operations
Message(const Message&) = delete;

Message& operator=(const Message&) = delete;
// Allow move operations
Message(Message&&) = default;
Message& operator=(Message&&) = default;

// The identifier, which can be referenced in API endpoints.
std::string id;
Expand Down Expand Up @@ -210,4 +208,4 @@ struct Message : JsonSerializable {
}
}
};
}; // namespace ThreadMessage
}; // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_attachment.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <json/reader.h>
#include "common/json_serializable.h"

namespace ThreadMessage {
namespace OpenAi {

// The tools to add this file to.
struct Tool {
Expand Down Expand Up @@ -47,4 +47,4 @@ struct Attachment : JsonSerializable {
}
}
};
}; // namespace ThreadMessage
}; // namespace OpenAi
6 changes: 4 additions & 2 deletions engine/common/message_attachment_factory.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#pragma once

#include <optional>
#include "common/message_attachment.h"
#include "utils/result.hpp"

namespace ThreadMessage {
namespace OpenAi {
inline cpp::result<Attachment, std::string> ParseAttachment(
Json::Value&& json) {
if (json.empty()) {
Expand Down Expand Up @@ -45,4 +47,4 @@ ParseAttachments(Json::Value&& json) {

return attachments;
}
}; // namespace ThreadMessage
}; // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_content.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <string>
#include "common/json_serializable.h"

namespace ThreadMessage {
namespace OpenAi {

struct Content : JsonSerializable {
std::string type;
Expand All @@ -20,4 +20,4 @@ struct Content : JsonSerializable {

virtual ~Content() = default;
};
}; // namespace ThreadMessage
}; // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_content_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "utils/logging_utils.h"
#include "utils/result.hpp"

namespace ThreadMessage {
namespace OpenAi {
inline cpp::result<std::unique_ptr<Content>, std::string> ParseContent(
Json::Value&& json) {
if (json.empty()) {
Expand Down Expand Up @@ -74,4 +74,4 @@ ParseContents(Json::Value&& json) {
}
return contents;
}
} // namespace ThreadMessage
} // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_content_image_file.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "common/message_content.h"

namespace ThreadMessage {
namespace OpenAi {
struct ImageFile {
// The File ID of the image in the message content. Set purpose="vision" when uploading the File if you need to later display the file content.
std::string file_id;
Expand Down Expand Up @@ -66,4 +66,4 @@ struct ImageFileContent : Content {
}
}
};
} // namespace ThreadMessage
} // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_content_image_url.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "common/message_content.h"

namespace ThreadMessage {
namespace OpenAi {

struct ImageUrl {
// The external URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp.
Expand Down Expand Up @@ -68,4 +68,4 @@ struct ImageUrlContent : Content {
}
}
};
} // namespace ThreadMessage
} // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_content_refusal.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "common/message_content.h"

namespace ThreadMessage {
namespace OpenAi {
// The refusal content generated by the assistant.
struct Refusal : Content {

Expand Down Expand Up @@ -43,4 +43,4 @@ struct Refusal : Content {
}
}
};
} // namespace ThreadMessage
} // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_content_text.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "common/message_content.h"
#include "utils/logging_utils.h"

namespace ThreadMessage {
namespace OpenAi {

struct Annotation : JsonSerializable {
std::string type;
Expand Down Expand Up @@ -239,4 +239,4 @@ struct TextContent : Content {
}
}
};
} // namespace ThreadMessage
} // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_incomplete_detail.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "common/json_serializable.h"

namespace ThreadMessage {
namespace OpenAi {

// On an incomplete message, details about why the message is incomplete.
struct IncompleteDetail : JsonSerializable {
Expand All @@ -29,4 +29,4 @@ struct IncompleteDetail : JsonSerializable {
}
}
};
} // namespace ThreadMessage
} // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_role.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <string>
#include "utils/string_utils.h"

namespace ThreadMessage {
namespace OpenAi {
// The entity that produced the message. One of user or assistant.
enum class Role { USER, ASSISTANT };

Expand All @@ -27,4 +27,4 @@ inline Role RoleFromString(const std::string& input) {
return Role::ASSISTANT;
}
}
}; // namespace ThreadMessage
}; // namespace OpenAi
4 changes: 2 additions & 2 deletions engine/common/message_status.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <string>
#include "utils/string_utils.h"

namespace ThreadMessage {
namespace OpenAi {
// The status of the message, which can be either in_progress, incomplete, or completed.
enum class Status { IN_PROGRESS, INCOMPLETE, COMPLETED };

Expand Down Expand Up @@ -31,4 +31,4 @@ inline Status StatusFromString(const std::string& input) {
return Status::COMPLETED;
}
}
}; // namespace ThreadMessage
}; // namespace OpenAi
19 changes: 11 additions & 8 deletions engine/common/repository/message_repository.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,25 @@
class MessageRepository {
public:
virtual cpp::result<void, std::string> CreateMessage(
ThreadMessage::Message& message) = 0;
OpenAi::Message& message) = 0;

virtual cpp::result<std::vector<ThreadMessage::Message>, std::string>
ListMessages(const std::string& thread_id, uint8_t limit = 20,
const std::string& order = "desc", const std::string& after = "",
const std::string& before = "",
const std::string& run_id = "") const = 0;
virtual cpp::result<std::vector<OpenAi::Message>, std::string> ListMessages(
const std::string& thread_id, uint8_t limit, const std::string& order,
const std::string& after, const std::string& before,
const std::string& run_id) const = 0;

virtual cpp::result<ThreadMessage::Message, std::string> RetrieveMessage(
virtual cpp::result<OpenAi::Message, std::string> RetrieveMessage(
const std::string& thread_id, const std::string& message_id) const = 0;

virtual cpp::result<void, std::string> ModifyMessage(
ThreadMessage::Message& message) = 0;
OpenAi::Message& message) = 0;

virtual cpp::result<void, std::string> DeleteMessage(
const std::string& thread_id, const std::string& message_id) = 0;

virtual cpp::result<void, std::string> InitializeMessages(
const std::string& thread_id,
std::optional<std::vector<OpenAi::Message>> messages) = 0;

virtual ~MessageRepository() = default;
};
25 changes: 25 additions & 0 deletions engine/common/repository/thread_repository.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once

#include "common/thread.h"
#include "utils/result.hpp"

class ThreadRepository {
public:
virtual cpp::result<void, std::string> CreateThread(
OpenAi::Thread& thread) = 0;

virtual cpp::result<std::vector<OpenAi::Thread>, std::string> ListThreads(
uint8_t limit, const std::string& order, const std::string&,
const std::string& before) const = 0;

virtual cpp::result<OpenAi::Thread, std::string> RetrieveThread(
const std::string& thread_id) const = 0;

virtual cpp::result<void, std::string> ModifyThread(
OpenAi::Thread& thread) = 0;

virtual cpp::result<void, std::string> DeleteThread(
const std::string& thread_id) = 0;

virtual ~ThreadRepository() = default;
};
Loading