보여주는 매장
채팅, 회의록, 검색, 기억 화면이 있다. 사용자는 회의록을 고르고 질문만 한다.
실전 사례 04 · 개인 지식창고
노트, 회의 녹음, 채팅 기록이 쌓일수록 사람은 다시 찾지 못한다. Second Brain은 자료를 책장에 넣어두고, 질문이 오면 관련 조각을 찾아 AI 책상 위에 펼쳐준다. 핵심은 하나다. AI는 기억하는 게 아니라, 필요할 때 다시 찾아 읽는다. 3~4교시에서 배운 임베딩·RAG의 실전 버전이다.
사용자는 자료 위치를 몰라도 된다. 질문만 하면 찾기는 시스템의 일이다.
공개 강의용 안전 재현 화면. 실제 회의 내용과 개인 정보 대신 같은 레이아웃으로 흐름만 보여준다.
부품은 수업에서 본 그대로다. 화면(매장), 주방(백엔드), 장부(DB)가 각자 역할을 맡는다.
채팅, 회의록, 검색, 기억 화면이 있다. 사용자는 회의록을 고르고 질문만 한다.
FastAPI 주방이 음성 받아쓰기(STT), 조각 검색, 회의록 주입, AI 호출을 순서대로 처리한다.
회의록 원문, 색인 카드(조각), 기억, 대화 기록, 비용 영수증이 전부 장부에 남는다.
파이프라인은 컨베이어벨트다. 수업의 색 약속 그대로, 보라=외부 도구, 파랑=자료, 주황=AI, 초록=저장이다.
사람이 노트와 회의 녹음을 넣는다. 책장에 재료를 채우는 단계다.
외부 STT 창구가 녹음을 글자로 받아 적는다. STT는 회의를 받아 적는 속기사다.
회의록을 색인 카드로 조각내고, 조각마다 의미 좌표를 붙여 장부에 저장한다.
질문이 오면 의미가 가까운 조각과 기억을 찾아 참고자료 묶음을 만든다.
찾은 자료를 책상에 올려 AI가 답하고, 중요한 내용은 기억으로 승격한다.
카드를 누르면 해당 교시로 돌아가 복습할 수 있다.
회의록 조각을 지도 위 좌표로 저장한다. 질문과 가까운 조각이 검색 후보가 된다.
4교시 · RAG 가까운 조각을 찾아 붙이기질문과 의미가 가까운 조각을 골라 AI 앞에 펼친다. 4교시 그림 그대로다.
2교시 · LLM 회의록을 통째로 책상에사용자가 고른 회의록은 조각이 아니라 전문을 통째로 올린다. 2교시의 책상 그대로다.
5교시 · API STT 주문 창구녹음 파일을 주문서에 담아 외부 STT 창구로 보내면 글자로 된 응답서가 온다.
6교시 · DB 지식과 기억 장부회의록 원문, 색인 카드(meeting_chunks), 중요 메모장(memory_items)이 따로 있다.
6교시 · 비용 로그 기능별 영수증철STT, 임베딩, LLM은 과금 방식이 달라서 영수증철도 기능별로 나눠 남긴다.
사용자가 고른 회의록은 전문을 통째로 넣고, 나머지는 검색으로 찾은 조각만 넣는다. 둘은 역할이 다르다.
<selected_meetings>
meeting_id: meet_2026_06_25
title: 제품 출시 일정 회의
speakers:
- PM: 제품 일정 담당
- Ops: 운영 담당
transcript:
PM: 출시 후보일은 7월 둘째 주입니다.
Ops: 운영 준비는 7월 첫째 주까지
끝내야 합니다.
</selected_meetings>
규칙: 위 회의록에 근거가 있는 내용만
답변에 사용한다.
{
"sources": [
{
"kind": "meeting_chunk",
"title": "제품 출시 일정 회의",
"distance": 0.11,
"excerpt": "출시 후보일은 7월 둘째 주..."
},
{
"kind": "memory",
"tier": "working",
"content": "현재 제품 출시 일정 조율 중"
}
],
"instruction": "근거가 있는 내용만 답변에 사용"
}
5교시에서 본 API 주문 창구 그대로다. 질문과 고른 회의록 ID를 적어 보내면, 근거가 붙은 답변이 돌아온다.
{
"route": "/api/chat",
"message": "지난 회의에서 출시 일정
결정사항만 정리해줘",
"selected_meeting_ids": ["meet_2026_06_25"],
"sources": ["meetings", "memory", "notes"]
}
{
"answer": [
"출시 후보일은 7월 둘째 주입니다.",
"운영 준비 마감은 7월 첫째 주입니다.",
"PM과 Ops가 후속 작업 담당입니다."
],
"used_context": {
"selected_meetings": 1,
"meeting_chunks": 4,
"memory_items": 2
},
"usage_log": "llm_usage_log_553"
}
2교시의 책상 그대로다. 색을 보면 어떤 종이가 자료(파랑)이고 어떤 종이가 AI의 답(주황)인지 보인다.
답변 방식, 도구 사용 규칙, “근거 없는 내용은 답하지 말 것”을 고정한다.
이번 질문과 이전 대화 흐름. AI는 이걸로 “지난 회의”가 무엇인지 이해한다.
질문과 의미가 가까운 meeting_chunks, 노트, 기억 조각들.
사용자가 고른 회의록은 요약 없이 전문이 통째로 올라간다.
결정 사항, 담당자, 후속 작업 — 그리고 비용 영수증 한 장.
6교시에서 배운 “역할별 장부 나누기”가 실전에서는 이렇게 된다.
| 장부 | 역할 | 비유 |
|---|---|---|
| meetings | 회의 기본 정보 저장 | 회의 폴더 |
| meeting_transcripts | STT 결과 전문 저장 | 회의록 원문 |
| meeting_chunks | 검색용 회의록 조각 저장 | 색인 카드 |
| memory_items | 오래 보관할 기억 저장 | 중요 메모장 |
| chat_sessions | 채팅 대화 기록 저장 | 상담 기록지 |
| embed_cost_daily | 임베딩 비용 집계 | 검색 비용 영수증 |
자료를 장부에 넣어두고, 질문할 때마다 관련 조각을 찾아 책상에 다시 올린다. 기억처럼 보이는 것의 정체는 검색이다.
고른 회의록은 전문을 통째로 주입하고, 나머지는 의미 검색으로 조각만 붙인다. 정확성과 비용의 균형이다.
STT는 시간, 임베딩은 글자량, LLM은 토큰으로 과금이 다르다. 영수증철을 나눠야 어디서 돈이 새는지 보인다.