Skip to main content

lance_context_core/
record.rs

1use chrono::{DateTime, Utc};
2
3/// Structured metadata captured alongside each context entry.
4#[derive(Debug, Clone, Default)]
5pub struct StateMetadata {
6    pub step: Option<i32>,
7    pub active_plan_id: Option<String>,
8    pub tokens_used: Option<i32>,
9    pub custom: Option<String>,
10}
11
12/// User-facing representation of a context entry written to storage.
13#[derive(Debug, Clone)]
14pub struct ContextRecord {
15    pub id: String,
16    pub run_id: String,
17    pub bot_id: Option<String>,
18    pub session_id: Option<String>,
19    pub created_at: DateTime<Utc>,
20    pub role: String,
21    pub state_metadata: Option<StateMetadata>,
22    pub content_type: String,
23    pub text_payload: Option<String>,
24    pub binary_payload: Option<Vec<u8>>,
25    pub embedding: Option<Vec<f32>>,
26}
27
28/// Result returned from a vector similarity search.
29#[derive(Debug, Clone)]
30pub struct SearchResult {
31    pub record: ContextRecord,
32    pub distance: f32,
33}