9.0 KB · 수정 2026-07-16 09:59
목차

furniture-expert × GPT 음성대화 연동 — A안 (Plus 하이브리드) 설명 + 구현계획

0. 배경 (왜 이 작업인가)

페페 지시: 음성대화는 GPT가 최고 → furniture-expert를 실제 사람처럼 음성으로 교육·논의하는 비중이 클 것. GPT에 MCP를 달아 대화형 작업 전담.

조사로 확정된 사실 (2026-07 웹 실측)

  1. ChatGPT 음성모드는 커스텀 커넥터(MCP) 호출 불가 — OpenAI 플랫폼 제한, 우회 불가. 커넥터는 텍스트 챗에서만 작동(Developer Mode).
  2. 2025-11 업데이트로 음성모드가 별도창이 아니라 같은 대화방 안에서 돌아감 — 음성·텍스트가 한 스레드, 컨텍스트 공유. ← 이게 A안의 열쇠.
  3. Realtime API(음성 중 실시간 MCP 툴콜 가능)는 별도 크레딧 종량 전용 — Plus 구독으로 못 씀. 시간당 $3~6.

방안 비교 (페페 질문 답)

방안 비용 음성 품질 KB 접근 판정
A. Plus 하이브리드 0원 GPT 고급음성 그대로(하루 수 시간) 음성 전·후 텍스트 한 줄로 채택
B. 자체 음성 래퍼 (Whisper+웹자동화) 0원 턴제, 지연 3~10초 가능 보류(부자연)
C. Realtime API 자체 음성앱 $3~6/시간 진짜 실시간 음성 도중 자동 나중 확장 옵션
ChatGPT 앱을 자체앱으로 확장 ❌ 불가(공식 앱 확장 API 없음)

전략 = A로 시작(비용 0), 서버는 C도 바로 붙게 설계 → 음성 도중 실시간 조회가 아쉬워지면 화면 하나만 추가.


1. A안이란 무엇인가 (쉬운 설명)

한 줄: ChatGPT 앱을 그대로 쓴다. 새 앱 안 만든다. 미니PC에 "가구지식 창고 서버"를 세워두고, ChatGPT가 거기 접속하게 연결만 해준다.

비유: 지금 폰 채티(claude.ai)가 미니PC user_brief를 읽고 메모 남기는 커넥터 — 페페가 직접 등록했던 그것과 완전히 같은 방식. A안 = 그걸 ChatGPT용으로 하나 더, 내용물만 가구 KB 10권.

[페페 폰/PC ChatGPT 앱] ←─인터넷(HTTPS+토큰)─→ [미니PC 가구지식 서버]
      음성/텍스트 대화                              ├ 가구 KB 00~09 (읽기)
                                                    ├ "배운 것" 보관함 (쓰기)
                                                    └ 논의 메모함 (쓰기)

페페 사용 장면 (매일)

  1. 폰 ChatGPT → "가구전문가" 프로젝트 방 → 새 대화
  2. 🎤 음성 버튼 누르고 그냥 말함 — 평소 지피티 음성대화 그대로. GPT는 프로젝트 지침에 심어둔 페페 공장 사양(콘피마트 직결·CNC보링·풀오버레이·상판900·신발장380·프로파일 탭매입…)을 알고 대답
  3. 상세 수치 필요하면 텍스트 한 줄: "KB에서 프로파일 자료 읽어와" → GPT가 미니PC에서 KB-06을 가져와 대화방에 로드 → 이후 음성 대화에서 그 내용 보며 대답
  4. 페페가 새 지식을 가르쳤으면 대화 끝에: "오늘 내용 저장해" → GPT가 미니PC 보관함(학습후보 큐)에 적재
  5. 코디가 나중에 보관함 열어 페페 승인 받고 정식 KB 반영 (GPT는 KB 직접 수정 못 함 — 음성 오인식·환각이 KB 오염 못 하게)

됨 / 안 됨

데이터 흐름 (P3 자가학습과 연결)

음성 논의 → GPT 요약 → propose_kb_update
  → 미니PC learn_candidates.json (pending 상태)
  → P3 검토페이지(furniture-learn.html, 추후 구현)에서 페페 승인/거부/댓글
  → 승인분만 KB *.md 반영+커밋
  → 코디 서브에이전트(P1)·직원챗봇(P2)·다음 GPT 대화가 갱신된 KB 사용

grillme 확정 3결정 반영: ① 음성 브리지를 P3보다 먼저(후보 큐가 P3 입력이 됨) ② 폰+PC 어디서나(Funnel HTTPS) ③ KB 반영은 검토 큐 경유.


2. 구현 계획 (코디 작업)

2-1. furniture-mcp 서버 — C:\dev\tools\furniture-voice\server.py (신규)

골격 전체 재사용 = C:\dev\tools\user-brief-mcp\server.py(FastMCP streamable-http + TransportSecuritySettings allowlist + BearerAuth 미들웨어 + .token 파일 + 포트점유 watchdog + --selfcheck). 새 토큰 별도 발급.

MCP 툴 5개: | 툴 | 동작 | |---|---| | read_factory_lens() | KB-00(페페 공장 확정사양) 전문 반환 | | list_kb() | KB 00~09 목록+한줄설명 | | read_kb(module) | 번호/이름으로 KB 파일 반환(화이트리스트 — user-brief _projects() 경로탈출 차단 패턴) | | propose_kb_update(module, title, content, source_note) | C:\dev\user_brief\projects\furniture-expert\learn_candidates.json{id, ts, source:"gpt-voice", module, title, content, source_note, status:"pending"} append. P3 파이프라인(source:"selflearn")과 스키마 공유 | | log_discussion(topic, notes) | user_brief/inbox/gpt-furniture-YYYY-MM-DD.md append(채티 inbox 회수 관례 동일 — 코디가 세션 시작 시 회수) |

KB 원본 = C:\dev\user_brief\projects\furniture-expert\kb\*.md (00~09 실재 확인 완료).

2-2. 공개 노출 + 상시화

2-3. ChatGPT 세팅 (1회)

2-4. C 확장 대비 설계 (이번엔 구현 안 함)

2-5. 시드·devplan 갱신

3. 검증

  1. python server.py --selfcheck — 툴 5개 assert(화이트리스트 차단·후보 JSON 스키마·inbox append·경로탈출 차단)
  2. 로컬 MCP 핸드셰이크: curl 8791 initialize/tools-list 200, bearer 없이 401
  3. Funnel 경유 외부 HTTPS 동일 핸드셰이크
  4. 실사용 E2E: ChatGPT 텍스트 챗(커넥터 등록 후)에서 "신발장 몸통 깊이?"→read_kb 툴콜+380 응답, "…KB에 추가해줘"→learn_candidates.json에 pending 항목 실재 확인
  5. 페페 실측: 폰 ChatGPT 프로젝트 방에서 음성 대화 + KB 로드 + 저장 육안 (음성·계정이라 코디 자동검증 불가 항목)

4. 파일 목록

파일 작업
C:\dev\tools\furniture-voice\server.py 신규 (user-brief-mcp 골격 재사용)
C:\dev\tools\furniture-voice\{.token,run_server.vbs,README.md,project_instructions.md} 신규
C:\dev\user_brief\projects\furniture-expert\learn_candidates.json 신규 (P3 공용 큐)
projects/furniture-expert/handoff.md · C:\dev\devplan\furniture-expert.html · 루트 HANDOFF.md 갱신

5. 순서 (notify-step 5단계)

  1. 서버+툴 5개+selfcheck+로컬 핸드셰이크
  2. Funnel 경로+schtasks 상시화+외부 핸드셰이크
  3. 커넥터 등록 보조(CDP)+프로젝트 지침 문안
  4. ChatGPT 실사용 E2E(read_kb·propose 실증)
  5. 시드·devplan 갱신+커밋 → 페페 음성 실측 안내