Entropic 2.3.8
Local-first agentic inference engine
Loading...
Searching...
No Matches
conversation_state.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
12#pragma once
13
15#include <string>
16#include <vector>
17
28 std::string system_prompt;
29 std::vector<entropic::Message> messages;
30
42 std::vector<entropic::Message> append_user(const char* input) {
43 if (messages.empty()) {
45 sys.role = "system";
47 messages.push_back(std::move(sys));
48 }
50 usr.role = "user";
51 usr.content = input;
52 messages.push_back(std::move(usr));
53 return messages; // copy
54 }
55
63 void append_result(const std::vector<entropic::Message>& result,
64 size_t sent_len) {
65 for (size_t i = sent_len; i < result.size(); i++) {
66 messages.push_back(result[i]);
67 }
68 }
69
75 void clear() { messages.clear(); }
76
83 size_t count() const { return messages.size(); }
84};
Message struct for conversation history.
Conversation state owned by the engine handle.
size_t count() const
Get message count.
void append_result(const std::vector< entropic::Message > &result, size_t sent_len)
Append new messages from engine result.
std::vector< entropic::Message > append_user(const char *input)
Append user message and return snapshot for engine.
void clear()
Clear all messages (new session).
std::vector< entropic::Message > messages
Full conversation history.
std::string system_prompt
Cached system prompt.
A message in a conversation.
Definition message.h:35
std::string content
Message text content (always populated)
Definition message.h:37
std::string role
Message role.
Definition message.h:36