# 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: 49dd2ff2-57ae-408b-833f-537787b83132
name: langchain
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":"l2","hnsw":{"ef_construction":100,"max_neighbors":16,"ef_search":100,"num_threads":4,"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":{}}}},"source":{"string":{"fts_index":{"enabled":false,"config":{}},"string_inverted_index":{"enabled":true,"config":{}}}},"#embedding":{"float_list":{"vector_index":{"enabled":true,"config":{"space":"l2","source_key":"#document","hnsw":{"ef_construction":100,"max_neighbors":16,"ef_search":100,"num_threads":4,"batch_size":100,"sync_threshold":1000,"resize_factor":1.2}}}}}}}


# embedding_metadata

key: chroma:document
string_value:
상담사: 안녕하세요. 인터넷 서비스 고객센터입니다. 성함과 PIN 번호를 알려주시겠습니까?

고객: 홍길동이고 PIN은 1234입니다.

상담사: 감사합니다. 어떤 문제로 연락주셨나요?

고객: 어제부터 인터넷 속도가 너무 느립니다.

상담사: 불편을 드려 죄송합니다. 연결 상태를 확인해보겠습니다.

(확인 중)

상담사: 현재 고객님 지역의 회선 장애가 의심됩니다. 관련 부서에 장애 내용을 접수하겠습니다.

고객: 네, 빨리 해결되면 좋겠네요.

상담사: 최대한 신속히 처리하겠습니다. 신고해 주셔서 감사합니다.


key: chroma:document
string_value:
상담사: 안녕하세요. 고객센터입니다. 무엇을 도와드릴까요?

고객: 몇 시간 전부터 인터넷 속도가 너무 느려서 답답합니다.

상담사: 고객 확인을 위해 성함을 알려주시겠습니까?

고객: 네, 홍길동입니다.

상담사: 감사합니다. 본인 확인을 위해 PIN 번호도 알려주시겠습니까?

고객: 지금은 PIN 번호를 가지고 있지 않습니다.

상담사: 괜찮습니다. 우선 제가 회선 상태를 확인하고 조정해보겠습니다. 잠시만 기다려 주세요.

(잠시 후)

상담사: 회선 설정을 일부 조정했습니다. 현재 인터넷 속도를 다시 확인해보시겠습니까?


key: chroma:document
string_value:
고객: 잠시만요... 네, 훨씬 빨라졌네요.

상담사: 다행입니다. 상담 종료 후 설문조사가 발송될 예정입니다. 설문은 인터넷 서비스 품질이 아니라 상담 서비스에 대한 평가입니다.

고객: 네, 알겠습니다.

상담사: 이용해 주셔서 감사합니다. 좋은 하루 보내세요.

고객: 감사합니다.


key: chroma:document
string_value:
상담사: 안녕하세요. 고객센터입니다. 무엇을 도와드릴까요?\n고객: 몇 시간 전부터 인터넷 속도가 너무 느려서 답답합니다.\n상담사: 고객 확인을 위해 성함을 알려주시겠습니까?\n고객: 네, 홍길동입니다.\n상담사: 감사합니다. 본인 확인을 위해 PIN 번호도 알려주시겠습니까?\n고객: 지금은 PIN 번호를 가지고 있지 않습니다.\n상담사: 괜찮습니다. 우선 제가 회선 상태를 확인하고 조정해보겠습니다. 잠시만 기다려 주세요.\n(잠시 후)\n상담사: 회선 설정을 일부 조정했습니다. 현재 인터넷 속도를 다시


key: chroma:document
string_value:
설정을 일부 조정했습니다. 현재 인터넷 속도를 다시 확인해보시겠습니까?\n고객: 잠시만요... 네, 훨씬 빨라졌네요.\n상담사: 다행입니다. 상담 종료 후 설문조사가 발송될 예정입니다. 설문은 인터넷 서비스 품질이 아니라 상담 서비스에 대한 평가입니다.\n고객: 네, 알겠습니다.\n상담사: 이용해 주셔서 감사합니다. 좋은 하루 보내세요.\n고객: 감사합니다.


key: chroma:document
string_value:
----

상담사: 안녕하세요. 인터넷 서비스 고객센터입니다. 성함과 PIN 번호를 알려주시겠습니까?\n고객: 홍길동이고 PIN은 1234입니다.\n상담사: 감사합니다. 어떤 문제로 연락주셨나요?\n고객: 어제부터 인터넷 속도가 너무 느립니다.\n상담사: 불편을 드려 죄송합니다. 연결 상태를 확인해보겠습니다.\n(확인 중)\n상담사: 현재 고객님 지역의 회선 장애가 의심됩니다. 관련 부서에 장애 내용을 접수하겠습니다.\n고객: 네, 빨리 해결되면 좋겠네요.\n상담사: 최대한 신속히 처리하겠습니다. 신고해 주셔서 감사합니다.


key: chroma:document
string_value:
상담사: 안녕하세요. 무엇을 도와드릴까요?

고객: 어제부터 인터넷이 계속 끊어집니다.

상담사: 공유기를 재부팅해 보셨나요?

고객: 네. 이미 해봤는데 똑같습니다.

상담사: 현재 공유기 상태 표시등은 어떻게 되어 있나요?

고객: 전원등은 켜져 있고 인터넷 표시등은 깜빡입니다.

상담사: 공유기 케이블 연결 상태를 확인해 주시겠습니까?

고객: 네. 확인했는데 이상 없습니다.

상담사: 그렇다면 공유기 초기화를 진행해보겠습니다. 초기화 방법을 알고 계신가요?

고객: 아니요.


key: chroma:document
string_value:
고객: 아니요.

상담사: 공유기 뒷면의 리셋 버튼을 10~15초 정도 눌러주세요.

고객: 네. 지금 재시작 중입니다.

(몇 분 후)

고객: 이제 정상적으로 작동하는 것 같습니다.

상담사: 다행입니다. 다른 문제가 있으시면 언제든 연락 주세요.


key: chroma:document
string_value:
상담사: 안녕하세요. 고객센터입니다. 성함과 PIN 번호를 확인하겠습니다.

고객: 홍길동이며 PIN은 1234입니다.

상담사: 감사합니다. 어떤 문제가 있으신가요?

고객: 인터넷이 느리고 가끔 끊깁니다.

상담사: 불편을 드려 죄송합니다. 연결 상태를 확인하겠습니다.

(잠시 후)

상담사: 회선에 일시적인 문제가 있었으며 현재 초기화 처리를 완료했습니다. 다시 확인해보시겠습니까?

고객: 네. 정상적으로 작동합니다.

상담사: 다행입니다. 상담 후 설문조사가 발송될 예정이며 상담 서비스에 대한 평가입니다.


key: chroma:document
string_value:
Q. 비밀번호를 재설정하려면?

A. 고객 포털의 비밀번호 찾기 메뉴를 이용하세요.

Q. 서비스 장애가 발생하면?

A. 홈페이지 또는 앱에서 장애 공지를 확인하세요.

Q. 요금제를 변경하려면?

A. 고객 포털 > 내 요금제 메뉴에서 변경 가능합니다.

Q. 데이터 사용량은 어디서 확인하나요?

A. 고객 포털 > 데이터 사용량 메뉴에서 확인 가능합니다.


# embeddings_queue

created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: 6e69462f-0a5b-43c4-8199-b1ea6a4a8a5f
encoding: FLOAT32
metadata:
{"source":"transcript2.txt","chroma:document":"상담사: 안녕하세요. 인터넷 서비스 고객센터입니다. 성함과 PIN 번호를 알려주시겠습니까?\n\n고객: 홍길동이고 PIN은 1234입니다.\n\n상담사: 감사합니다. 어떤 문제로 연락주셨나요?\n\n고객: 어제부터 인터넷 속도가 너무 느립니다.\n\n상담사: 불편을 드려 죄송합니다. 연결 상태를 확인해보겠습니다.\n\n(확인 중)\n\n상담사: 현재 고객님 지역의 회선 장애가 의심됩니다. 관련 부서에 장애 내용을 접수하겠습니다.\n\n고객: 네, 빨리 해결되면 좋겠네요.\n\n상담사: 최대한 신속히 처리하겠습니다. 신고해 주셔서 감사합니다."}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: 8179bd41-c017-462f-91ab-489f7017e9bb
encoding: FLOAT32
metadata:
{"chroma:document":"상담사: 안녕하세요. 고객센터입니다. 무엇을 도와드릴까요?\n\n고객: 몇 시간 전부터 인터넷 속도가 너무 느려서 답답합니다.\n\n상담사: 고객 확인을 위해 성함을 알려주시겠습니까?\n\n고객: 네, 홍길동입니다.\n\n상담사: 감사합니다. 본인 확인을 위해 PIN 번호도 알려주시겠습니까?\n\n고객: 지금은 PIN 번호를 가지고 있지 않습니다.\n\n상담사: 괜찮습니다. 우선 제가 회선 상태를 확인하고 조정해보겠습니다. 잠시만 기다려 주세요.\n\n(잠시 후)\n\n상담사: 회선 설정을 일부 조정했습니다. 현재 인터넷 속도를 다시 확인해보시겠습니까?","source":"transcript1.txt"}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: c6f8ea2c-9684-4cb8-90af-5ecdbac38ed5
encoding: FLOAT32
metadata:
{"source":"transcript1.txt","chroma:document":"고객: 잠시만요... 네, 훨씬 빨라졌네요.\n\n상담사: 다행입니다. 상담 종료 후 설문조사가 발송될 예정입니다. 설문은 인터넷 서비스 품질이 아니라 상담 서비스에 대한 평가입니다.\n\n고객: 네, 알겠습니다.\n\n상담사: 이용해 주셔서 감사합니다. 좋은 하루 보내세요.\n\n고객: 감사합니다."}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: 050bc150-0fd9-4bbd-b93d-c20fae67c778
encoding: FLOAT32
metadata:
{"chroma:document":"상담사: 안녕하세요. 고객센터입니다. 무엇을 도와드릴까요?\\n고객: 몇 시간 전부터 인터넷 속도가 너무 느려서 답답합니다.\\n상담사: 고객 확인을 위해 성함을 알려주시겠습니까?\\n고객: 네, 홍길동입니다.\\n상담사: 감사합니다. 본인 확인을 위해 PIN 번호도 알려주시겠습니까?\\n고객: 지금은 PIN 번호를 가지고 있지 않습니다.\\n상담사: 괜찮습니다. 우선 제가 회선 상태를 확인하고 조정해보겠습니다. 잠시만 기다려 주세요.\\n(잠시 후)\\n상담사: 회선 설정을 일부 조정했습니다. 현재 인터넷 속도를 다시","source":"transcript.txt"}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: 22c3ed93-7020-4258-81ac-b295032843f7
encoding: FLOAT32
metadata:
{"source":"transcript.txt","chroma:document":"설정을 일부 조정했습니다. 현재 인터넷 속도를 다시 확인해보시겠습니까?\\n고객: 잠시만요... 네, 훨씬 빨라졌네요.\\n상담사: 다행입니다. 상담 종료 후 설문조사가 발송될 예정입니다. 설문은 인터넷 서비스 품질이 아니라 상담 서비스에 대한 평가입니다.\\n고객: 네, 알겠습니다.\\n상담사: 이용해 주셔서 감사합니다. 좋은 하루 보내세요.\\n고객: 감사합니다."}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: bab787f6-10cd-410d-bdef-367c47af13ec
encoding: FLOAT32
metadata:
{"chroma:document":"----\n\n상담사: 안녕하세요. 인터넷 서비스 고객센터입니다. 성함과 PIN 번호를 알려주시겠습니까?\\n고객: 홍길동이고 PIN은 1234입니다.\\n상담사: 감사합니다. 어떤 문제로 연락주셨나요?\\n고객: 어제부터 인터넷 속도가 너무 느립니다.\\n상담사: 불편을 드려 죄송합니다. 연결 상태를 확인해보겠습니다.\\n(확인 중)\\n상담사: 현재 고객님 지역의 회선 장애가 의심됩니다. 관련 부서에 장애 내용을 접수하겠습니다.\\n고객: 네, 빨리 해결되면 좋겠네요.\\n상담사: 최대한 신속히 처리하겠습니다. 신고해 주셔서 감사합니다.","source":"transcript.txt"}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: 119dadd0-e347-442c-8a9c-0c69951a8c01
encoding: FLOAT32
metadata:
{"chroma:document":"상담사: 안녕하세요. 무엇을 도와드릴까요?\n\n고객: 어제부터 인터넷이 계속 끊어집니다.\n\n상담사: 공유기를 재부팅해 보셨나요?\n\n고객: 네. 이미 해봤는데 똑같습니다.\n\n상담사: 현재 공유기 상태 표시등은 어떻게 되어 있나요?\n\n고객: 전원등은 켜져 있고 인터넷 표시등은 깜빡입니다.\n\n상담사: 공유기 케이블 연결 상태를 확인해 주시겠습니까?\n\n고객: 네. 확인했는데 이상 없습니다.\n\n상담사: 그렇다면 공유기 초기화를 진행해보겠습니다. 초기화 방법을 알고 계신가요?\n\n고객: 아니요.","source":"transcript3.txt"}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: eef53fc0-d86c-4fef-b741-52577c3aaa7e
encoding: FLOAT32
metadata:
{"chroma:document":"고객: 아니요.\n\n상담사: 공유기 뒷면의 리셋 버튼을 10~15초 정도 눌러주세요.\n\n고객: 네. 지금 재시작 중입니다.\n\n(몇 분 후)\n\n고객: 이제 정상적으로 작동하는 것 같습니다.\n\n상담사: 다행입니다. 다른 문제가 있으시면 언제든 연락 주세요.","source":"transcript3.txt"}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: f8c37c4a-291e-49c2-830a-c991d9ca88d4
encoding: FLOAT32
metadata:
{"source":"transcript4.txt","chroma:document":"상담사: 안녕하세요. 고객센터입니다. 성함과 PIN 번호를 확인하겠습니다.\n\n고객: 홍길동이며 PIN은 1234입니다.\n\n상담사: 감사합니다. 어떤 문제가 있으신가요?\n\n고객: 인터넷이 느리고 가끔 끊깁니다.\n\n상담사: 불편을 드려 죄송합니다. 연결 상태를 확인하겠습니다.\n\n(잠시 후)\n\n상담사: 회선에 일시적인 문제가 있었으며 현재 초기화 처리를 완료했습니다. 다시 확인해보시겠습니까?\n\n고객: 네. 정상적으로 작동합니다.\n\n상담사: 다행입니다. 상담 후 설문조사가 발송될 예정이며 상담 서비스에 대한 평가입니다."}


created_at: 2026-06-17 08:58:24
topic: persistent://default/default/49dd2ff2-57ae-408b-833f-537787b83132
id: 0643aa33-f108-49bc-af33-ab6299a82a15
encoding: FLOAT32
metadata:
{"chroma:document":"Q. 비밀번호를 재설정하려면?\n\nA. 고객 포털의 비밀번호 찾기 메뉴를 이용하세요.\n\nQ. 서비스 장애가 발생하면?\n\nA. 홈페이지 또는 앱에서 장애 공지를 확인하세요.\n\nQ. 요금제를 변경하려면?\n\nA. 고객 포털 > 내 요금제 메뉴에서 변경 가능합니다.\n\nQ. 데이터 사용량은 어디서 확인하나요?\n\nA. 고객 포털 > 데이터 사용량 메뉴에서 확인 가능합니다.","source":"faq.txt"}


