forgeant docs-test-0
Build LLM-powered agents in C++
Loading...
Searching...
No Matches
conversation.hpp
Go to the documentation of this file.
1#ifndef FORGEANT_TYPES_CONVERSATION_HPP
2#define FORGEANT_TYPES_CONVERSATION_HPP
3
5#include <optional>
6#include <span>
7#include <string>
8#include <vector>
9
10namespace forgeant {
11
13 public:
14 Conversation() = default;
15 explicit Conversation(std::string system_prompt) : system_prompt_(std::move(system_prompt)) {}
16
17 void set_system_prompt(std::string prompt) { system_prompt_ = std::move(prompt); }
18 [[nodiscard]] const std::optional<std::string>& system_prompt() const { return system_prompt_; }
19
20 void add(Message message) { messages_.push_back(std::move(message)); }
21 [[nodiscard]] std::span<const Message> messages() const { return messages_; }
22
23 void clear() { messages_.clear(); }
24
25 bool operator==(const Conversation&) const = default;
26
27 private:
28 std::optional<std::string> system_prompt_;
29 std::vector<Message> messages_;
30};
31
32void to_json(Json& j, const Conversation& conv);
33void from_json(const Json& j, Conversation& conv);
34
35} // namespace forgeant
36
37#endif // FORGEANT_TYPES_CONVERSATION_HPP
Definition conversation.hpp:12
void clear()
Definition conversation.hpp:23
bool operator==(const Conversation &) const =default
std::span< const Message > messages() const
Definition conversation.hpp:21
void set_system_prompt(std::string prompt)
Definition conversation.hpp:17
const std::optional< std::string > & system_prompt() const
Definition conversation.hpp:18
void add(Message message)
Definition conversation.hpp:20
Conversation(std::string system_prompt)
Definition conversation.hpp:15
Definition json.hpp:27
Definition agent.hpp:25
void to_json(Json &j, const TextBlock &block)
void from_json(const Json &j, TextBlock &block)
Definition message.hpp:11