← 목록
AI 2026-06-09 3KB 읽기 3분

크라우니AI — 제미나이 3모델 라우팅 + 철학 완전선언 + 의미어 1차필터 + 온톨로지 누적

개요

crowny.org(포트 9852) 크라우니AI를 Claude 단일 기반에서 Gemini 3모델(Pro/Flash/Flash-Lite) 1차 엔진으로 전환했다. 각 모델이 크라우니 철학을 완전히 선언받아 답하고, 자연어는 의미어 규칙으로 1차 필터링되어 티어가 정해지며, 모든 대화가 학습/온톨로지로 누적된다. 응답 형식도 "연달아 대답"에서 문단·구조가 있는 세련된 글로 교정했다.

무엇을 했는지

  1. 철학 완전 선언 (engine/philosophy.js): 4상균형3진 / 한선씨=주언어 / 6561 세계관(티·음·타) / 가치·기여·정직 / 일하는 원칙 / 자립 생태계를 모든 모델 시스템 프롬프트에 주입. + 응답 형식 규칙(문단 띄우기, 두괄식, 굵게/리스트/소제목, 후속 질문).
  1. 의미어 1차 필터 (engine/semantic-filter.js): analyze() 가 자연어를 의미어 사전(씨앗 70 + 누적분)으로 매칭 → 의도/도메인/복잡도 산출 → 티어(pro/flash/flashlite) 결정. 규칙이 주체, LLM은 윤활유.
  1. Gemini 3모델 라우터 + 자동 강등 (engine/gemini-router.js): pro→flash→flashlite 체인. 무료한도(429)/과부하(503)/사고형 빈출력 시 다음 모델로 자동 강등. 빌링 연결 시 코드 수정 없이 Pro 네이티브 동작.
  1. 온톨로지/학습 누적 (engine/ontology.js): 매 턴 학습로그(jsonl) + 의미어 빈도/동시출현(edges)/도메인연결 갱신 + 자주 나오는 명사 자동 의미어 등재. /api/ontology 노출.
  1. 응답 세련화: 원인은 프론트가 아니라(renderMd는 문단 정상 렌더) 모델 출력에 문단 구분이 없던 것 → 형식 규칙 프롬프트로 해결. UI에 사용 모델 배지 추가.
  1. 견고성: Claude 폴백 크레딧 0 감지 시 영구 스킵 + raw 에러 대신 우아한 한국어 안내 스트리밍.
  1. 영구 가동: launchd com.crowny.ai (KeepAlive). 한선씨 동반 의미어필터.한선 컴파일·실행 검증.

관련 파일

  • /Users/ef/crowny-ai/server.js — .env 로더, 엔진 통합, /api/chat·models·ontology, Gemini 1차+Claude 폴백+우아한 안내
  • /Users/ef/crowny-ai/engine/{philosophy,semantic-filter,gemini-router,ontology,formatter}.js
  • /Users/ef/crowny-ai/의미어필터.한선 — 한선씨 동반
  • /Users/ef/crowny-ai/public/index.html — 모델 배지
  • /Users/ef/crowny-ai/.env — GEMINI_API_KEY
  • /Users/ef/crowny-ai/CLAUDE.md — 아키텍처 문서
  • ~/Library/LaunchAgents/com.crowny.ai.plist

검증 결과

  • 잡담→flashlite, 코드/추론→pro(요청)→무료한도로 flash-lite 강등, 모두 정상 답변
  • 철학 체화 확인(4상·6561·한선씨 opcode 81·가치-기여-보상)
  • 응답 문단·리스트·굵게·후속질문 정상, 한선씨 코드블록(```한선 함수/반환/출력값)
  • 온톨로지 15턴 누적, 의도/티어/의미어/edge 집계 정상

잔여 이슈

  • Gemini Pro 네이티브 동작 = 키 프로젝트에 Google Cloud 빌링 연결 필요 (현재 무료 한도 0 → 자동 강등으로 대체). 빌링 연결 시 즉시 Pro 동작.
  • 무료 티어 RPM 한도로 대량 동시 사용 시 일시 대기 → 우아한 안내로 처리 중. 트래픽 늘면 빌링 권장.
  • 한선씨 동반(의미어필터.한선)과 JS의 미세 분기: "어떻게"만 있는 단문에서 JS=reason→pro, 한선=flash. 품질엔 무해.