mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-26 08:01:38 +00:00
27acbbf3d5
* docs: refine windmill ai refactor plan * refactor: move ai sse plumbing to windmill-ai * refactor: remove ai re-export shims * fix: update ee ai memory ref * chore: update ee-repo-ref to d3bc7fa85195b46b7a38d43c2f806520bf8b5454 This commit updates the EE repository reference after PR #560 was merged in windmill-ee-private. Previous ee-repo-ref: ff35bf7cc198e13884b33654e1d6dbd8a8b314d3 New ee-repo-ref: d3bc7fa85195b46b7a38d43c2f806520bf8b5454 Automated by sync-ee-ref workflow. --------- Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
55 lines
1.7 KiB
Rust
55 lines
1.7 KiB
Rust
#[cfg(all(feature = "private", feature = "enterprise"))]
|
|
#[allow(unused)]
|
|
pub use crate::memory_ee::*;
|
|
|
|
#[cfg(not(all(feature = "private", feature = "enterprise")))]
|
|
use {
|
|
crate::memory_common, uuid::Uuid, windmill_ai::types::OpenAIMessage, windmill_common::db::DB,
|
|
};
|
|
|
|
/// Read AI agent memory from storage
|
|
/// In OSS: always reads from database
|
|
#[cfg(not(all(feature = "private", feature = "enterprise")))]
|
|
pub async fn read_from_memory(
|
|
db: &DB,
|
|
workspace_id: &str,
|
|
conversation_id: Uuid,
|
|
step_id: &str,
|
|
) -> anyhow::Result<Option<Vec<OpenAIMessage>>> {
|
|
memory_common::read_from_db(db, workspace_id, conversation_id, step_id)
|
|
.await
|
|
.map_err(|e| anyhow::anyhow!("Database read failed: {e:?}"))
|
|
}
|
|
|
|
/// Write AI agent memory to storage
|
|
/// In OSS: always writes to database
|
|
#[cfg(not(all(feature = "private", feature = "enterprise")))]
|
|
pub async fn write_to_memory(
|
|
db: &DB,
|
|
workspace_id: &str,
|
|
conversation_id: Uuid,
|
|
step_id: &str,
|
|
messages: &[OpenAIMessage],
|
|
) -> anyhow::Result<()> {
|
|
if messages.is_empty() {
|
|
return Ok(());
|
|
}
|
|
|
|
memory_common::write_to_db(db, workspace_id, conversation_id, step_id, messages)
|
|
.await
|
|
.map_err(|e| anyhow::anyhow!("Database write failed: {e:?}"))
|
|
}
|
|
|
|
/// Delete all memory for a conversation from storage
|
|
/// In OSS: always deletes from database
|
|
#[cfg(not(all(feature = "private", feature = "enterprise")))]
|
|
pub async fn delete_conversation_memory(
|
|
db: &DB,
|
|
workspace_id: &str,
|
|
conversation_id: Uuid,
|
|
) -> anyhow::Result<()> {
|
|
memory_common::delete_conversation_from_db(db, workspace_id, conversation_id)
|
|
.await
|
|
.map_err(|e| anyhow::anyhow!("Database delete failed: {e:?}"))
|
|
}
|