feat: 添加带话题的消息追加功能,支持在会话中关联当前话题 ID
This commit is contained in:
parent
831832664d
commit
6a902b9ff9
@ -187,8 +187,10 @@ impl SessionHistory {
|
||||
message: ChatMessage,
|
||||
) -> Result<(), AgentError> {
|
||||
let session_id = self.persistent_session_id(chat_id);
|
||||
// 获取当前话题 ID,用于关联消息
|
||||
let topic_id = self.chat_topic_ids.get(chat_id).map(|s| s.as_str());
|
||||
self.conversations
|
||||
.append_message(&session_id, &message)
|
||||
.append_message_with_topic(&session_id, topic_id, &message)
|
||||
.map_err(|err| {
|
||||
AgentError::Other(format!("append message persistence error: {}", err))
|
||||
})?;
|
||||
|
||||
@ -15,6 +15,13 @@ pub trait ConversationRepository: Send + Sync + 'static {
|
||||
|
||||
fn append_message(&self, session_id: &str, message: &ChatMessage) -> Result<(), StorageError>;
|
||||
|
||||
fn append_message_with_topic(
|
||||
&self,
|
||||
session_id: &str,
|
||||
topic_id: Option<&str>,
|
||||
message: &ChatMessage,
|
||||
) -> Result<(), StorageError>;
|
||||
|
||||
fn clear_messages(&self, session_id: &str) -> Result<(), StorageError>;
|
||||
|
||||
fn reset_session(&self, session_id: &str) -> Result<(), StorageError>;
|
||||
@ -140,6 +147,15 @@ impl ConversationRepository for super::SessionStore {
|
||||
super::SessionStore::append_message(self, session_id, message)
|
||||
}
|
||||
|
||||
fn append_message_with_topic(
|
||||
&self,
|
||||
session_id: &str,
|
||||
topic_id: Option<&str>,
|
||||
message: &ChatMessage,
|
||||
) -> Result<(), StorageError> {
|
||||
super::SessionStore::append_message_with_topic(self, session_id, topic_id, message)
|
||||
}
|
||||
|
||||
fn clear_messages(&self, session_id: &str) -> Result<(), StorageError> {
|
||||
super::SessionStore::clear_messages(self, session_id)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user