(
&self,
messages: Vec<JsMessage>,
scope: Option<JsScope>,
)
| 221 | /// Extract and store facts from conversation messages. |
| 222 | #[napi] |
| 223 | pub async fn add( |
| 224 | &self, |
| 225 | messages: Vec<JsMessage>, |
| 226 | scope: Option<JsScope>, |
| 227 | ) -> Result<Vec<JsMemory>> { |
| 228 | let llm_messages: Vec<graphbit_core::llm::LlmMessage> = messages |
| 229 | .into_iter() |
| 230 | .map(|m| match m.role.as_str() { |
| 231 | "system" => graphbit_core::llm::LlmMessage::system(m.content), |
| 232 | "assistant" => graphbit_core::llm::LlmMessage::assistant(m.content), |
| 233 | _ => graphbit_core::llm::LlmMessage::user(m.content), |
| 234 | }) |
| 235 | .collect(); |
| 236 | |
| 237 | let core_scope = js_scope_to_core(scope); |
| 238 | let memories = self |
| 239 | .service |
| 240 | .add(&llm_messages, &core_scope) |
| 241 | .await |
| 242 | .map_err(to_napi_error)?; |
| 243 | |
| 244 | Ok(memories.into_iter().map(core_memory_to_js).collect()) |
| 245 | } |
| 246 | |
| 247 | /// Search for memories similar to a query. |
| 248 | #[napi] |
no test coverage detected