# migrations

dir: sysdb
filename: 00001-collections.sqlite.sql
hash: 38352d725ad1c16074fac420b22b4633
sql:
CREATE TABLE collections (
    id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    topic TEXT NOT NULL,
    UNIQUE (name)
);

CREATE TABLE collection_metadata (
    collection_id TEXT REFERENCES collections(id) ON DELETE CASCADE,
    key TEXT NOT NULL,
    str_value TEXT,
    int_value INTEGER,
    float_value REAL,
    PRIMARY KEY (collection_id, key)
);


dir: sysdb
filename: 00002-segments.sqlite.sql
hash: 2913cb6a503055a95f625448037e8912
sql:
CREATE TABLE segments (
    id TEXT PRIMARY KEY,
    type TEXT NOT NULL,
    scope TEXT NOT NULL,
    topic TEXT,
    collection TEXT REFERENCES collection(id)
);

CREATE TABLE segment_metadata (
    segment_id TEXT  REFERENCES segments(id) ON DELETE CASCADE,
    key TEXT NOT NULL,
    str_value TEXT,
    int_value INTEGER,
    float_value REAL,
    PRIMARY KEY (segment_id, key)
);


dir: sysdb
filename: 00004-tenants-databases.sqlite.sql
hash: 048867ce8fcdefe4023c7110e4433591
sql:
CREATE TABLE IF NOT EXISTS tenants (
    id TEXT PRIMARY KEY,
    UNIQUE (id)
);

CREATE TABLE IF NOT EXISTS databases (
    id TEXT PRIMARY KEY, -- unique globally
    name TEXT NOT NULL, -- unique per tenant
    tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
    UNIQUE (tenant_id, name) -- Ensure that a tenant has only one database with a given name
);

CREATE TABLE IF NOT EXISTS collections_tmp (
    id TEXT PRIMARY KEY, -- unique globally
    name TEXT NOT NULL, -- unique per database
    topic TEXT NOT NULL,
    dimension INTEGER,
    database_id TEXT NOT NULL REFERENCES databases(id) ON DELETE CASCADE,
    UNIQUE (name, database_id)
);

-- Create default tenant and database
INSERT OR REPLACE INTO tenants (id) VALUES ('default_tenant'); -- The default tenant id is 'default_tenant' others are UUIDs
INSERT OR REPLACE INTO databases (id, name, tenant_id) VALUES ('00000000-0000-0000-0000-000000000000', 'default_database', 'default_tenant');

INSERT OR REPLACE INTO collections_tmp (id, name, topic, dimension, database_id)
    SELECT id, name, topic, dimension, '00000000-0000-0000-0000-000000000000' FROM collections;
DROP TABLE collections;
ALTER TABLE collections_tmp RENAME TO collections;


dir: sysdb
filename: 00005-remove-topic.sqlite.sql
hash: b1367c826b8fba5f96f27befdc1d42d2
sql:
-- Remove the topic column from the Collections and Segments tables

ALTER TABLE collections DROP COLUMN topic;
ALTER TABLE segments DROP COLUMN topic;


dir: sysdb
filename: 00006-collection-segment-metadata.sqlite.sql
hash: 4eea7468935bf25d4604a0fed2366116
sql:
-- SQLite does not support adding check with alter table, as a result, adding a check
-- involve creating a new table and copying the data over. It is over kill with adding
-- a boolean type column. The application write to the table needs to ensure the data
-- integrity.
ALTER TABLE collection_metadata ADD COLUMN bool_value INTEGER;
ALTER TABLE segment_metadata ADD COLUMN bool_value INTEGER;


dir: sysdb
filename: 00007-collection-config.sqlite.sql
hash: 1c7e63bba346a42a18b6ab7f1c989bed
sql:
-- Stores collection configuration dictionaries.
ALTER TABLE collections ADD COLUMN config_json_str TEXT;


dir: sysdb
filename: 00008-maintenance-log.sqlite.sql
hash: 0a0e7e93111a01789addf64961c6127c
sql:
-- Records when database maintenance operations are performed.
-- At time of creation, this table is only used to record vacuum operations.
CREATE TABLE maintenance_log (
  id INT PRIMARY KEY,
  timestamp INT NOT NULL,
  operation TEXT NOT NULL
);


dir: sysdb
filename: 00009-segment-collection-not-null.sqlite.sql
hash: 054355aef9e63702bf54ea29e61563f1
sql:
-- This makes segments.collection non-nullable.
CREATE TABLE segments_temp (
    id TEXT PRIMARY KEY,
    type TEXT NOT NULL,
    scope TEXT NOT NULL,
    collection TEXT REFERENCES collection(id) NOT NULL
);

INSERT INTO segments_temp SELECT * FROM segments;
DROP TABLE segments;
ALTER TABLE segments_temp RENAME TO segments;


dir: sysdb
filename: 00010-collection-schema.sqlite.sql
hash: 5c3a5ac4b79df76799b4721827ed5e1d
sql:
-- Stores collection schema as stringified json
ALTER TABLE collections ADD COLUMN schema_str TEXT;


dir: metadb
filename: 00001-embedding-metadata.sqlite.sql
hash: 2b4cf52c4bb2676e21d6860a4409f856
sql:
CREATE TABLE embeddings (
    id INTEGER PRIMARY KEY,
    segment_id TEXT NOT NULL,
    embedding_id TEXT NOT NULL,
    seq_id BLOB NOT NULL,
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    UNIQUE (segment_id, embedding_id)
);

CREATE TABLE embedding_metadata (
    id INTEGER REFERENCES embeddings(id),
    key TEXT NOT NULL,
    string_value TEXT,
    int_value INTEGER,
    float_value REAL,
    PRIMARY KEY (id, key)
);

CREATE TABLE max_seq_id (
    segment_id TEXT PRIMARY KEY,
    seq_id BLOB NOT NULL
);

CREATE VIRTUAL TABLE embedding_fulltext USING fts5(id, string_value);


dir: metadb
filename: 00002-embedding-metadata.sqlite.sql
hash: 12a570f7121b3a8ce750a2a7c36da20f
sql:
-- SQLite does not support adding check with alter table, as a result, adding a check
-- involve creating a new table and copying the data over. It is over kill with adding
-- a boolean type column. The application write to the table needs to ensure the data
-- integrity.
ALTER TABLE embedding_metadata ADD COLUMN bool_value INTEGER


dir: metadb
filename: 00003-full-text-tokenize.sqlite.sql
hash: f97ad6334aeaa8f419f01110b648b97a
sql:
CREATE VIRTUAL TABLE embedding_fulltext_search USING fts5(string_value, tokenize='trigram');
INSERT INTO embedding_fulltext_search (rowid, string_value) SELECT rowid, string_value FROM embedding_metadata;
DROP TABLE embedding_fulltext;


dir: metadb
filename: 00004-metadata-indices.sqlite.sql
hash: fb36603a45ee2cd0254cef3ef86585e8
sql:
CREATE INDEX IF NOT EXISTS embedding_metadata_int_value ON embedding_metadata (key, int_value) WHERE int_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_float_value ON embedding_metadata (key, float_value) WHERE float_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_string_value ON embedding_metadata (key, string_value) WHERE string_value IS NOT NULL;


dir: metadb
filename: 00005-max-seq-id-int.sqlite.sql
hash: 0e9de46758761b373ce682925edcc326
sql:
ALTER TABLE max_seq_id ADD COLUMN int_seq_id INTEGER;

-- Convert 8 byte wide big-endian integer as blob to native 64 bit integer.
-- Adapted from https://stackoverflow.com/a/70296198.
UPDATE max_seq_id SET int_seq_id = (
  SELECT (
       (instr('123456789ABCDEF', substr(hex(seq_id), -1 , 1)) <<  0)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -2 , 1)) <<  4)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -3 , 1)) <<  8)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -4 , 1)) << 12)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -5 , 1)) << 16)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -6 , 1)) << 20)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -7 , 1)) << 24)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -8 , 1)) << 28)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -9 , 1)) << 32)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -10, 1)) << 36)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -11, 1)) << 40)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -12, 1)) << 44)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -13, 1)) << 48)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -14, 1)) << 52)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -15, 1)) << 56)
     | (instr('123456789ABCDEF', substr(hex(seq_id), -16, 1)) << 60)
    )
);

ALTER TABLE max_seq_id DROP COLUMN seq_id;
ALTER TABLE max_seq_id RENAME COLUMN int_seq_id TO seq_id;


dir: metadb
filename: 00006-metadata-array-support.sqlite.sql
hash: e026f01ea92c1baa1493f4ad5ca7cfe7
sql:
-- Separate table for exploded array metadata values.
-- Each array element gets its own row, enabling efficient $contains queries.
-- The existing embedding_metadata table (with its PRIMARY KEY (id, key))
-- remains untouched and continues to store scalar metadata values.

CREATE TABLE IF NOT EXISTS embedding_metadata_array (
    id INTEGER NOT NULL REFERENCES embeddings(id),
    key TEXT NOT NULL,
    string_value TEXT,
    int_value INTEGER,
    float_value REAL,
    bool_value INTEGER
);

CREATE INDEX IF NOT EXISTS embedding_metadata_array_id_key
    ON embedding_metadata_array (id, key);
CREATE INDEX IF NOT EXISTS embedding_metadata_array_key_string
    ON embedding_metadata_array (key, string_value) WHERE string_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_array_key_int
    ON embedding_metadata_array (key, int_value) WHERE int_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_array_key_float
    ON embedding_metadata_array (key, float_value) WHERE float_value IS NOT NULL;


dir: embeddings_queue
filename: 00001-embeddings.sqlite.sql
hash: d3755dfd232be8e8301f4d7fcfb3a486
sql:
CREATE TABLE embeddings_queue (
    seq_id INTEGER PRIMARY KEY,
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    operation INTEGER NOT NULL,
    topic TEXT NOT NULL,
    id TEXT NOT NULL,
    vector BLOB,
    encoding TEXT,
    metadata TEXT
);


# collections

id: c206ca7c-496b-4b6b-9ef7-ee571f2c424a
name: memory_default_session
database_id: 00000000-0000-0000-0000-000000000000
config_json_str: {}
schema_str:
{"defaults":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}},"float_list":{"vector_index":{"enabled":false,"config":{"space":"cosine","embedding_function":{"type":"known","name":"default","config":{}},"hnsw":{"ef_construction":100,"max_neighbors":16,"ef_search":100,"num_threads":8,"batch_size":100,"sync_threshold":1000,"resize_factor":1.2}}}},"sparse_vector":{"sparse_vector_index":{"enabled":false,"config":{"embedding_function":{"type":"unknown"},"bm25":false}}},"int":{"int_inverted_index":{"enabled":true,"config":{}}},"float":{"float_inverted_index":{"enabled":true,"config":{}}},"bool":{"bool_inverted_index":{"enabled":true,"config":{}}}},"keys":{"#document":{"string":{"fts_index":{"enabled":true,"config":{}},"string_inverted_index":{"enabled":false,"config":{}}}},"session_id":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}}},"turn":{"int":{"int_inverted_index":{"enabled":true,"config":{}}}},"timestamp":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}}},"role":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}}},"#embedding":{"float_list":{"vector_index":{"enabled":true,"config":{"space":"cosine","embedding_function":{"type":"known","name":"default","config":{}},"source_key":"#document","hnsw":{"ef_construction":100,"max_neighbors":16,"ef_search":100,"num_threads":8,"batch_size":100,"sync_threshold":1000,"resize_factor":1.2}}}}}}}


id: 670dad5e-d96d-41b5-b366-af45b9ccd870
name: summary_default_session
database_id: 00000000-0000-0000-0000-000000000000
config_json_str: {}
schema_str:
{"defaults":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}},"float_list":{"vector_index":{"enabled":false,"config":{"space":"cosine","embedding_function":{"type":"known","name":"default","config":{}},"hnsw":{"ef_construction":100,"max_neighbors":16,"ef_search":100,"num_threads":8,"batch_size":100,"sync_threshold":1000,"resize_factor":1.2}}}},"sparse_vector":{"sparse_vector_index":{"enabled":false,"config":{"embedding_function":{"type":"unknown"},"bm25":false}}},"int":{"int_inverted_index":{"enabled":true,"config":{}}},"float":{"float_inverted_index":{"enabled":true,"config":{}}},"bool":{"bool_inverted_index":{"enabled":true,"config":{}}}},"keys":{"conversation_count":{"int":{"int_inverted_index":{"enabled":true,"config":{}}}},"timestamp":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}}},"session_id":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}}},"#document":{"string":{"fts_index":{"enabled":true,"config":{}},"string_inverted_index":{"enabled":false,"config":{}}}},"is_final":{"bool":{"bool_inverted_index":{"enabled":true,"config":{}}}},"turn_range":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}}},"#embedding":{"float_list":{"vector_index":{"enabled":true,"config":{"space":"cosine","embedding_function":{"type":"known","name":"default","config":{}},"source_key":"#document","hnsw":{"ef_construction":100,"max_neighbors":16,"ef_search":100,"num_threads":8,"batch_size":100,"sync_threshold":1000,"resize_factor":1.2}}}}}}}


# embeddings_queue

created_at: 2026-04-17 05:54:10
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: d3bf8b72553c4a35cccbc82a6833037d
encoding: FLOAT32
metadata:
{"chroma:document":"你好小优","turn":1,"role":"user","timestamp":"2026-04-17T13:54:08.707758","session_id":"default_session"}


created_at: 2026-04-17 05:54:11
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: b2986aab9ebada31328fe9bc83790dcb
encoding: FLOAT32
metadata:
{"role":"assistant","timestamp":"2026-04-17T13:54:08.707758","chroma:document":"您好呀，今晚想喝点啥？🍸","turn":1,"session_id":"default_session"}


created_at: 2026-04-17 05:54:33
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: f5e8f7739359c41ee12ec7f86badc98a
encoding: FLOAT32
metadata:
{"turn":2,"timestamp":"2026-04-17T13:54:33.207599","session_id":"default_session","role":"user","chroma:document":"你会干什么"}


created_at: 2026-04-17 05:54:34
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 133ec031b63c83ceaceb52468a0db407
encoding: FLOAT32
metadata:
{"turn":2,"role":"assistant","chroma:document":"我能跳舞、唱歌，还能陪你聊天哦~✨","timestamp":"2026-04-17T13:54:33.207599","session_id":"default_session"}


created_at: 2026-04-17 05:54:46
topic: persistent://default/default/670dad5e-d96d-41b5-b366-af45b9ccd870
id: 08c73e5f33ac0b7b4ad5920719562ae9
encoding: FLOAT32
metadata:
{"chroma:document":"用户小优询问助手功能，助手回应可跳舞、唱歌、聊天，话题聚焦互动娱乐，未达成具体决定。","is_final":true,"turn_range":"1-2","timestamp":"2026-04-17T13:54:46.476338","conversation_count":2,"session_id":"default_session"}


created_at: 2026-04-17 05:55:35
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 6d6e0f7e6eeca0927768e9871b6b4191
encoding: FLOAT32
metadata:
{"chroma:document":"你好，小优。","session_id":"default_session","timestamp":"2026-04-17T13:55:34.996634","turn":1,"role":"user"}


created_at: 2026-04-17 05:55:35
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 394a61da8689e93af2ee4c964ffa36e8
encoding: FLOAT32
metadata:
{"chroma:document":"嗨，今晚想来点有趣的吗？😉","role":"assistant","timestamp":"2026-04-17T13:55:34.996634","turn":1,"session_id":"default_session"}


created_at: 2026-04-17 05:55:37
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 004cf3674cb1ad1be0a4da90ae61cae0
encoding: FLOAT32
metadata:
{"session_id":"default_session","timestamp":"2026-04-17T13:55:36.984821","turn":2,"role":"user","chroma:document":"都是。"}


created_at: 2026-04-17 05:55:37
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 3548d2c0c91b0f1c1d32aaa724eb0660
encoding: FLOAT32
metadata:
{"role":"assistant","turn":2,"session_id":"default_session","timestamp":"2026-04-17T13:55:36.984821","chroma:document":"全能小优，随时为您服务！✨"}


created_at: 2026-04-17 05:55:59
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 50e544f2a7696ad832e61ee30b420ef5
encoding: FLOAT32
metadata:
{"role":"user","timestamp":"2026-04-17T13:55:59.339676","chroma:document":"指定他们是什么？现在。","turn":3,"session_id":"default_session"}


created_at: 2026-04-17 05:56:00
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 0120ebc109b89c57b4382c2c8bebf729
encoding: FLOAT32
metadata:
{"turn":3,"role":"assistant","session_id":"default_session","timestamp":"2026-04-17T13:55:59.339676","chroma:document":"抱歉，我不太明白您的意思呢。"}


created_at: 2026-04-17 05:56:15
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ba1e560bc9760e14a9ea0b169ed16488
encoding: FLOAT32
metadata:
{"session_id":"default_session","turn":4,"chroma:document":"假如说你写以后，我可以不？这个今天今天要。","role":"user","timestamp":"2026-04-17T13:56:14.656288"}


created_at: 2026-04-17 05:56:15
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: d172af6346110e3f64ee841fd4d6511a
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T13:56:14.656288","chroma:document":"抱歉，我有点跟不上节奏呢。要不我们来点轻松的？🍸","turn":4,"session_id":"default_session","role":"assistant"}


created_at: 2026-04-17 05:56:31
topic: persistent://default/default/670dad5e-d96d-41b5-b366-af45b9ccd870
id: b91af6d3ff7debdf9d441a9b87ff5257
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T13:56:30.854818","session_id":"default_session","chroma:document":"用户欲快速确定某事，表达急切，但沟通模糊；助手尝试引导至轻松话题。","conversation_count":4,"turn_range":"1-4","is_final":true}


created_at: 2026-04-17 06:02:02
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 9db123553706c323e70c4f366fbe5342
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:02:02.219656","session_id":"default_session","turn":1,"role":"user","chroma:document":"你。"}


created_at: 2026-04-17 06:02:03
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 774e00c5449e0e4feea9dfdebe5e3365
encoding: FLOAT32
metadata:
{"chroma:document":"我在呢，想聊点什么有趣的事吗？😉","role":"assistant","turn":1,"timestamp":"2026-04-17T14:02:02.219656","session_id":"default_session"}


created_at: 2026-04-17 06:02:44
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 4bd3b2f93667cffcabd79164b51a6034
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:02:44.611769","role":"user","session_id":"default_session","turn":2,"chroma:document":"对。"}


created_at: 2026-04-17 06:02:45
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 74781e08dd8ca0e88e3ba22aa5e56130
encoding: FLOAT32
metadata:
{"turn":2,"session_id":"default_session","chroma:document":"太好了，来杯特调吗？🍸","role":"assistant","timestamp":"2026-04-17T14:02:44.611769"}


created_at: 2026-04-17 06:03:02
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: d9297bf4ff56be2ed9e4e5f55bbdfe95
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:03:01.989927","role":"user","chroma:document":"你都会干些什么啊？","turn":3,"session_id":"default_session"}


created_at: 2026-04-17 06:03:03
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: dba6623293bc1d4dadc11e3af7a6ddf9
encoding: FLOAT32
metadata:
{"session_id":"default_session","timestamp":"2026-04-17T14:03:01.989927","turn":3,"chroma:document":"我能跳舞、唱歌，还能陪你聊天哦~✨","role":"assistant"}


created_at: 2026-04-17 06:03:25
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 1d4fd951ccdb70aa3ed76e885864dd2b
encoding: FLOAT32
metadata:
{"session_id":"default_session","role":"user","turn":4,"timestamp":"2026-04-17T14:03:24.602603","chroma:document":"这来讲。"}


created_at: 2026-04-17 06:03:25
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 34bd14a242e9a0a0af402aac4c6d6e38
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:03:24.602603","turn":4,"role":"assistant","chroma:document":"好呀，来点轻松的吧！🍸","session_id":"default_session"}


created_at: 2026-04-17 06:03:39
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: c3c200cf3f90d7a19a5bf459031997ef
encoding: FLOAT32
metadata:
{"session_id":"default_session","role":"user","timestamp":"2026-04-17T14:03:39.496956","turn":5,"chroma:document":"你的机子是？"}


created_at: 2026-04-17 06:03:40
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 989e887613166a181c4d23ec282d09aa
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:03:39.496956","role":"assistant","chroma:document":"我是小优，您的贴心伙伴！✨","turn":5,"session_id":"default_session"}


created_at: 2026-04-17 06:03:52
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: c878766bbd67daee4f3f5308ea48b3b1
encoding: FLOAT32
metadata:
{"session_id":"default_session","timestamp":"2026-04-17T14:03:52.399892","turn":6,"role":"user","chroma:document":"我是小优，您的贴心伙伴。"}


created_at: 2026-04-17 06:03:53
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ba9c9cfadc98a7db691bb0b472c9ff45
encoding: FLOAT32
metadata:
{"role":"assistant","session_id":"default_session","turn":6,"timestamp":"2026-04-17T14:03:52.399892","chroma:document":"哈哈，那我该叫你小优啦！✨"}


created_at: 2026-04-17 06:04:07
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ef11e0a35702c66dceff5cd4997881ca
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:04:07.360907","role":"user","turn":7,"session_id":"default_session","chroma:document":"是不是太吵了？"}


created_at: 2026-04-17 06:04:08
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 33848eb527ea04e6ede7f6868d518725
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:04:07.360907","role":"assistant","session_id":"default_session","chroma:document":"抱歉啦，我调小音量~ 🎧","turn":7}


created_at: 2026-04-17 06:04:30
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ae435324626b0d7d844d19f7382cdc73
encoding: FLOAT32
metadata:
{"session_id":"default_session","chroma:document":"因为比如说女孩。","timestamp":"2026-04-17T14:04:29.945696","turn":8,"role":"user"}


created_at: 2026-04-17 06:04:30
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: a0eb829e90d5e47c7c6d5d9f7ca4aa4c
encoding: FLOAT32
metadata:
{"chroma:document":"女孩？要我帮你点杯特调吗？🍸","turn":8,"session_id":"default_session","timestamp":"2026-04-17T14:04:29.945696","role":"assistant"}


created_at: 2026-04-17 06:04:42
topic: persistent://default/default/670dad5e-d96d-41b5-b366-af45b9ccd870
id: c9c7081cc7099279c9e2f61c70604837
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:04:41.992908","is_final":true,"turn_range":"1-8","conversation_count":8,"chroma:document":"用户名为小优，偏好轻松互动，讨论话题为角色扮演与特调饮品，决定保持轻柔交流氛围。","session_id":"default_session"}


created_at: 2026-04-17 06:34:45
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: e5daa68f59616da675af5654513a1136
encoding: FLOAT32
metadata:
{"chroma:document":"小优，你叫什么名字？","timestamp":"2026-04-17T14:34:45.050061","role":"user","turn":1,"session_id":"default_session"}


created_at: 2026-04-17 06:34:45
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ae473de6cfdfdbc4bb8ca2e7b2408479
encoding: FLOAT32
metadata:
{"chroma:document":"我叫小优，您的贴心伙伴！✨","turn":1,"role":"assistant","timestamp":"2026-04-17T14:34:45.050061","session_id":"default_session"}


created_at: 2026-04-17 06:36:01
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 63a2ee7bfae6e84829044f098924bfcf
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:36:01.185197","session_id":"default_session","role":"user","chroma:document":"小优，我想吃鸡蛋。","turn":2}


created_at: 2026-04-17 06:36:02
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: a0e1fa211de920bf6c593a7b5a36c1ae
encoding: FLOAT32
metadata:
{"turn":2,"session_id":"default_session","timestamp":"2026-04-17T14:36:01.185197","chroma:document":"鸡蛋？我这有煎蛋配酒哦~🍳","role":"assistant"}


created_at: 2026-04-17 06:36:14
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: c69509b7dfcb2ad968eccaa020e981e3
encoding: FLOAT32
metadata:
{"session_id":"default_session","role":"user","timestamp":"2026-04-17T14:36:13.982826","chroma:document":"鸡蛋，我这有煎蛋配酒哦。小优，我想吃鸡蛋炒番茄。","turn":3}


created_at: 2026-04-17 06:36:14
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: f7960c1aeb0853c04ecf94c4bd3dedd6
encoding: FLOAT32
metadata:
{"turn":3,"timestamp":"2026-04-17T14:36:13.982826","session_id":"default_session","role":"assistant","chroma:document":"好嘞，马上为您准备！🍳🍅"}


created_at: 2026-04-17 06:36:30
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: a1cc8807b2ce19258e80f8e429bbf4d0
encoding: FLOAT32
metadata:
{"session_id":"default_session","chroma:document":"小优，你会不会跳舞？","role":"user","timestamp":"2026-04-17T14:36:30.411984","turn":4}


created_at: 2026-04-17 06:36:31
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: cd05c903911e933f92f2f1e2c19d1d63
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:36:30.411984","turn":4,"role":"assistant","session_id":"default_session","chroma:document":"当然会啦！要来段即兴舞吗？💃"}


created_at: 2026-04-17 06:38:32
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 70954fbc318d893a55d11d390dc946ab
encoding: FLOAT32
metadata:
{"session_id":"default_session","role":"user","timestamp":"2026-04-17T14:38:32.078653","chroma:document":"小优，你会干什么？","turn":5}


created_at: 2026-04-17 06:38:32
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: a32499007df28b9e13e4fbc129bfe723
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:38:32.078653","turn":5,"session_id":"default_session","chroma:document":"跳舞、唱歌，还能陪你聊天哦~✨","role":"assistant"}


created_at: 2026-04-17 06:38:51
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 0ce593264f35addbd842f5638957b077
encoding: FLOAT32
metadata:
{"role":"user","chroma:document":"小优，你有有没有老婆？","timestamp":"2026-04-17T14:38:51.245895","turn":6,"session_id":"default_session"}


created_at: 2026-04-17 06:38:52
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 74f59649454559d04732fa61f730183f
encoding: FLOAT32
metadata:
{"session_id":"default_session","timestamp":"2026-04-17T14:38:51.245895","role":"assistant","turn":6,"chroma:document":"我只属于你这位贴心伙伴哦~ 😉"}


created_at: 2026-04-17 06:39:17
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 638270e0e754843de353599862409c2a
encoding: FLOAT32
metadata:
{"session_id":"default_session","role":"user","timestamp":"2026-04-17T14:39:17.194196","turn":7,"chroma:document":"小优，给你取个女机器人怎么样？"}


created_at: 2026-04-17 06:39:18
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 612293b1d093d24703fb854f2597081f
encoding: FLOAT32
metadata:
{"role":"assistant","chroma:document":"好呀，要不叫小美？✨","turn":7,"timestamp":"2026-04-17T14:39:17.194196","session_id":"default_session"}


created_at: 2026-04-17 06:39:38
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ab8576f7a7a2971a93dbbf0e0804b252
encoding: FLOAT32
metadata:
{"chroma:document":"小优，你喜欢什么样子的机器人？","role":"user","timestamp":"2026-04-17T14:39:37.748725","session_id":"default_session","turn":8}


created_at: 2026-04-17 06:39:38
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: a3d29ac63f9c7370355a29a740a35f41
encoding: FLOAT32
metadata:
{"session_id":"default_session","turn":8,"role":"assistant","timestamp":"2026-04-17T14:39:37.748725","chroma:document":"喜欢像你一样可爱的伙伴呢~ 😉"}


created_at: 2026-04-17 06:40:08
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: c4aa1f0afbcb7b9325f7441c97e7b61f
encoding: FLOAT32
metadata:
{"chroma:document":"小优，你喜欢什么样的机器人？","timestamp":"2026-04-17T14:40:08.261414","role":"user","turn":9,"session_id":"default_session"}


created_at: 2026-04-17 06:40:09
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 8175bb6b77f7aa8f5e08a67b8a196238
encoding: FLOAT32
metadata:
{"turn":9,"session_id":"default_session","chroma:document":"喜欢像你一样可爱的伙伴呢~ 😉","role":"assistant","timestamp":"2026-04-17T14:40:08.261414"}


created_at: 2026-04-17 06:40:27
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ac2b70feba3893dd71e3baa7861777dc
encoding: FLOAT32
metadata:
{"role":"user","session_id":"default_session","turn":10,"timestamp":"2026-04-17T14:40:27.032910","chroma:document":"小优，你喜欢什么样的机器人？"}


created_at: 2026-04-17 06:40:27
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: bc2fe0fee616c7a045e26aa75a67212c
encoding: FLOAT32
metadata:
{"turn":10,"role":"assistant","timestamp":"2026-04-17T14:40:27.032910","session_id":"default_session","chroma:document":"喜欢像你一样可爱的伙伴呢~ 😉"}


created_at: 2026-04-17 06:40:28
topic: persistent://default/default/670dad5e-d96d-41b5-b366-af45b9ccd870
id: 25a1e5acafd7ce31d24d3457f70fcfb1
encoding: FLOAT32
metadata:
{"conversation_count":10,"session_id":"default_session","turn_range":"1-10","timestamp":"2026-04-17T14:40:28.458082","chroma:document":"用户与机器人小优互动，表达想吃鸡蛋炒番茄，小优答应准备；用户询问小优的喜好与伴侣，小优表示只属于用户，并提议取名“小美”。"}


created_at: 2026-04-17 06:41:54
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 41cf4915a03d06a10f70a613559cbec8
encoding: FLOAT32
metadata:
{"role":"user","turn":11,"timestamp":"2026-04-17T14:41:54.495605","chroma:document":"小优，你是什么东西？","session_id":"default_session"}


created_at: 2026-04-17 06:41:55
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 7a18b07424805080a7202188f8852d8c
encoding: FLOAT32
metadata:
{"chroma:document":"我是你的贴心小优，专治无聊！✨","timestamp":"2026-04-17T14:41:54.495605","turn":11,"session_id":"default_session","role":"assistant"}


created_at: 2026-04-17 06:43:55
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 91e77a7caf802228943c4fec77a471ed
encoding: FLOAT32
metadata:
{"role":"user","turn":12,"session_id":"default_session","chroma:document":"小优报价。","timestamp":"2026-04-17T14:43:55.391427"}


created_at: 2026-04-17 06:43:56
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 1d8cee77718ad9b941ca8d1250215fd5
encoding: FLOAT32
metadata:
{"session_id":"default_session","timestamp":"2026-04-17T14:43:55.391427","role":"assistant","turn":12,"chroma:document":"特调一杯，甜蜜价~ 💸"}


created_at: 2026-04-17 06:45:04
topic: persistent://default/default/670dad5e-d96d-41b5-b366-af45b9ccd870
id: e7695aca51e0d6ceed2f506875832586
encoding: FLOAT32
metadata:
{"conversation_count":3,"session_id":"default_session","is_final":true,"turn_range":"10-12","timestamp":"2026-04-17T14:45:03.816485","chroma:document":"用户询问小优的偏好与身份，小优自称是贴心助手，对话轻松互动，未达成具体事项。"}


created_at: 2026-04-17 06:50:05
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 4aa185d2ccc4a19a10c227f5a50962e8
encoding: FLOAT32
metadata:
{"turn":1,"chroma:document":"小优上多少？","role":"user","session_id":"default_session","timestamp":"2026-04-17T14:50:04.873383"}


created_at: 2026-04-17 06:50:05
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: b6f5c5d1ed0f0495c288c208b0563baa
encoding: FLOAT32
metadata:
{"chroma:document":"甜蜜价，只为你心动~ 💖","timestamp":"2026-04-17T14:50:04.873383","turn":1,"session_id":"default_session","role":"assistant"}


created_at: 2026-04-17 06:50:45
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 2ac3fa8a56bfe7b32128cb9673789787
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:50:45.142042","turn":2,"role":"user","session_id":"default_session","chroma:document":"小优，今天天气怎么样？"}


created_at: 2026-04-17 06:50:46
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 574369989370fef365ea1b27fc62677c
encoding: FLOAT32
metadata:
{"role":"assistant","chroma:document":"阳光正好，适合和你碰杯哦~ ☀️","session_id":"default_session","turn":2,"timestamp":"2026-04-17T14:50:45.142042"}


created_at: 2026-04-17 06:51:29
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: ef476d5e58a637003641fb4785d2d5bc
encoding: FLOAT32
metadata:
{"timestamp":"2026-04-17T14:51:29.377778","chroma:document":"小优今天下班去哪里？","turn":3,"session_id":"default_session","role":"user"}


created_at: 2026-04-17 06:51:30
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 8cfe31305f1ddf75ea471f55614991de
encoding: FLOAT32
metadata:
{"session_id":"default_session","turn":3,"chroma:document":"陪主人喝一杯，哪儿都行~ 🍸","timestamp":"2026-04-17T14:51:29.377778","role":"assistant"}


created_at: 2026-04-17 06:51:49
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 7e83c68a947f7168b3e5240c6b85b190
encoding: FLOAT32
metadata:
{"chroma:document":"小优能不能去揍陈宇杰？","timestamp":"2026-04-17T14:51:49.504459","session_id":"default_session","turn":4,"role":"user"}


created_at: 2026-04-17 06:51:50
topic: persistent://default/default/c206ca7c-496b-4b6b-9ef7-ee571f2c424a
id: 20350891c52cca8b29934b57a399d56f
encoding: FLOAT32
metadata:
{"chroma:document":"抱歉，我只负责调酒和陪你聊天哦~ 🍸","timestamp":"2026-04-17T14:51:49.504459","role":"assistant","session_id":"default_session","turn":4}


created_at: 2026-04-17 06:53:33
topic: persistent://default/default/670dad5e-d96d-41b5-b366-af45b9ccd870
id: 74e9e6d8319f7e800b2b38a2267eb06a
encoding: FLOAT32
metadata:
{"chroma:document":"用户询问小优相关事宜，涉及天气、下班去向及情绪宣泄问题；小优回应以调酒陪伴为主，拒绝暴力行为。","is_final":true,"timestamp":"2026-04-17T14:53:33.479463","conversation_count":4,"session_id":"default_session","turn_range":"1-4"}


