
source row loading
AI 국민 프로필
loading random source row
랜덤 프로필 행을 불러오는 중입니다.
TECH DOC NAV

source row loading
loading random source row
랜덤 프로필 행을 불러오는 중입니다.
AUA는 정해진 공식으로 조건에 맞는 데이터만 뱉어내는 프로그램이 아닙니다. 여러분이 입력한 질문, 첨부한 PDF/DOCX/이미지 파일 자료, 한국형 집단 조건, 개별 페르소나 프로필을 하나의 판단 맥락으로 사용하여, 합성 AI 국민이 그 안에서 이유와 망설임까지 포함해서 답변토록 설계했습니다.
첫 화면은 AUA가 어떤 방식으로 아이디어를 AI 국민 패널에게 물어보는지 직관적으로 이해하도록 디자인되었습니다. 질문 입력, 자료 첨부, 원자료 응답, 보고서, 페르소나 채팅까지 이어지는 제품 흐름을 개념적으로 보여줍니다.
랜딩 헤더와 CTA의 Lab 진입점은 유지합니다. 실제 Lab workspace 화면은 새 설계를 위해 비워둔 상태이며, Supabase 연결과 API 기반은 이후 구현에서 재사용합니다.
실제 실행은 긴 웹 요청으로 붙잡아두지 않고 대기열에 저장합니다. 워커가 표본을 뽑고, 자료 맥락을 읽고, 응답 생성과 집계 저장을 이어받습니다.
결과물은 인터랙티브 보고서 덱, 마크다운 요약, CSV, JSONL, PDF로 나뉩니다. 개별 응답은 비공개 응답 저장소에 남겨 후속 분석과 페르소나 채팅의 근거로 씁니다.
Product Operating Map
입력, 자료 해석, 표본 추출, 개별 응답, 검증과 집계, 산출물 저장까지 제품의 복잡한 운영 흐름을 개념 구조도로 압축했습니다.
Operations Rule
KOSIS 주민등록인구와 인구·가구 통계를 기준으로 44.5백만 명 규모의 한국 성인 모집단을 잡습니다. 성별, 연령대, 지역, 직업, 학력, 관심사는 이 틀 안에서 해석합니다.
NVIDIA Nemotron 계열 페르소나 소스를 바탕으로 말투, 가치관, 생활 서사, 직업·취미 단서를 가진 합성 시민 프로필을 만듭니다. 실제 개인을 복제하는 것이 아니라 판단 실험에 쓰는 가상의 인지 단위입니다.
KOSIS의 인구, 가구, 주거, 고용, 통근, 생활·문화, 디지털 접근성 통계를 영역별 기준값으로 씁니다. 기존 페르소나와 어긋나지 않는 선에서 세대, 주거, 경제활동, 생활양식 정보를 보강합니다.
각 페르소나는 자료와 질문을 읽고 지지 점수, 확신도, 문항별 답변, 이유, 반대 지점, 끌린 이유를 남깁니다. 정해진 점수표에 체크하는 방식이 아니라 자기 조건에 맞춰 판단하게 합니다.
Master dataset build
AUA의 마스터 데이터셋은 NVIDIA Nemotron 페르소나 계열에서 얻은 개인별 서사와 KOSIS 통계에서 얻은 한국형 인구·가구·주거·경제·생활 분포를 결합해 만듭니다. 목적은 실제 시민을 식별하는 것이 아니라, 판단 실험에 필요한 개별 맥락을 충분히 가진 합성 AI 인간 단위를 만드는 것입니다.
100만 개의 페르소나 행은 KOSIS 기반 가중치와 세그먼트 기준값을 거쳐 44.5백만 명 한국 성인 모집단으로 확장해서 해석합니다. 표본 행과 전체 모집단 기준은 따로 관리합니다.
보강 데이터는 AUA 주민 번호를 기준으로 기존 페르소나 행에 1:1로 붙입니다. 새 인물을 무작위로 섞지 않고, 원래 페르소나의 나이, 지역, 직업, 가족 단서와 맞는 값만 채웁니다.
가구·동거, 주거 형태와 점유, 경제활동과 소득 구간, 통근, 여가·문화, 디지털 관여도 같은 항목을 영역별로 만듭니다. 각 항목은 KOSIS 통계 분포를 참고한 합성 속성입니다.
LLM에는 Nemotron 기반 페르소나 문장과 KOSIS 기반 구조화 정보를 함께 넘깁니다. 이렇게 개인별 맥락을 만든 뒤 질문, 자료, 대상 조건을 읽고 사람의 판단에 가까운 응답을 만들게 합니다.
KOSIS tables used
세대원 수, 세대구성, 동거 맥락 보정
거처 종류, 주거면적, 주택 노후도, 지역 주택시장, 점유형태 보정
경제활동 상태, 취업/비경제활동, 종사상 지위와 규모, 주관적 소득수준 보정
문화 관람, 여가 만족/불만족 이유, 통근 교통수단 보정
AUA의 AI국민은 실제 개인을 복제하거나 특정 시민을 사칭하지 않습니다. 인구통계 틀과 합성 페르소나 소스를 결합한 가상의 AI 응답자이며, 응답은 탐색용 사전 점검 신호로만 해석합니다.
사용자가 입력한 긴 설명, 정책 초안, 제품 소개, 캠페인 문구는 조사 자료로 정리합니다. 실행할 때는 길이와 형식을 다듬어 페르소나가 읽을 수 있는 맥락으로 압축합니다.
PDF, DOCX, TXT, MD, PNG, JPG, WEBP를 프로젝트당 5개, 파일당 8MB까지 받습니다. 원본은 Internal Storage에 저장합니다.
이미지는 비전 모델로 읽어 제품, 장면, 문구, 가격, 브랜드 단서를 한국어 설명으로 바꿉니다. 시각 자료도 응답자가 읽는 조사 맥락 안에 함께 넣습니다.
본문에 들어간 URL은 최대 5개까지 찾습니다. 서버는 HTML, 일반 텍스트, JSON 본문에서 필요한 맥락만 추려 실행 자료에 더합니다.
AUA의 모델 계층은 하나의 거대한 답변자가 아니라 역할이 다른 여러 판단 계층으로 설계됩니다. 빠른 구조화 응답, 긴 문서 검토, 비용 효율적인 대량 생성, 스키마 복구와 일관성 검토를 분리해 같은 응답 규격과 검증기 아래에서 운영할 수 있습니다.
구조화된 JSON 응답, 이미지 설명, 빠른 페르소나 응답 생성을 맡습니다. 현재 제품의 실시간 실행 경로는 이 계층을 중심으로 안정성과 속도를 맞춥니다.
긴 문서 해석이나 정책·법률·브랜드 맥락처럼 오래 읽고 판단해야 하는 실행에서 보조 판단 또는 2차 검토로 붙일 수 있는 계층입니다.
대량 응답, 문구 변형, 다국어 기본 점검처럼 비용 효율이 중요한 작업에 함께 쓸 수 있는 계층입니다.
중요한 실행에서는 기본 답변, 일관성 검토, 스키마 복구를 나눠 처리할 수 있습니다. 이상치와 실패를 기록하고 재시도 정책을 적용해 결과가 흔들리지 않게 합니다.
AUA는 공식에 맞춘 검색 결과를 가지고 이유를 만들어 붙이는 방식이 아닙니다. 개별 AI 국민은 자신을 설명하는 데이터와 서사를 읽고 하나의 합성 AI 인간으로 자기 맥락을 구성한 뒤, 주어진 자료와 설문지를 마주합니다. 그리고 자신의 조건, 취향, 망설임, 이해관계를 전부 고려하여 어떤 답을 남길지 고민합니다. 시스템은 이렇게 만들어진 개별 응답을 검증하고 집계해, 숫자만으로는 보이지 않는 그들의 판단과 응답을 보고서로 끌어올립니다.
input = {
brief,
sourceContext,
cohort,
personaProfile,
questions,
answerContract
}
output = {
supportScore,
confidence,
segmentLabel,
quote,
answers[],
objections[],
attractionDrivers[]
}구매 의향, 이용 의향, 시청 의향, 호감도, 공유 의향
Likert, semantic differential, open_text
정책 찬반, 공공 캠페인, 예산 우선순위, 지역 민원
support split, choice, open_text
후보명, 브랜드명, 패키지안, 메시지안, 장소 선택
choice, ranking, MaxDiff-lite
기능 우선순위, 필수 기능, 있으면 좋은 기능, 불만 유발 기능
functional/dysfunctional pair, ranking, open_text
구독료, 일회성 가격, 무료체험, 패키지 번들, 가격 저항
price ladder, choice, open_text
불쾌한 표현, 오해 가능성, 신뢰 장벽, 반대 논리, 위기 커뮤니케이션
open_text, Likert, forced choice
빈도, 비율, 가중 평균, 중앙값, 표준편차, top-box/bottom-box로 응답의 기본 분포를 보여줍니다.
유효 표본 수, 근사 신뢰구간, bootstrap 구간, 희소 strata 경고로 결과를 읽을 때의 불확실성을 함께 보여줍니다.
t-test, ANOVA, Mann-Whitney U, Kruskal-Wallis, eta squared, Cohen's d를 사용해 집단 차이를 정리합니다.
chi-square, Cramer's V, Pearson/Spearman correlation, odds ratio로 범주형/연속형 변수의 연관을 봅니다.
high_intent나 support를 목표값으로 두고 logistic regression, regularized regression, tree-lite explanation을 붙일 수 있습니다.
ranking score, MaxDiff-lite, conjoint-lite, TURF-lite를 통해 여러 후보안의 상대 선호와 조합 효과를 추정합니다.
Cronbach's alpha, item-total correlation, PCA/factor analysis로 여러 문항이 같은 태도 축을 재는지 점검합니다.
자유응답을 반대 이유, 끌린 지점, 헷갈린 부분, 신뢰 단서, 가격 장벽, 주변 반응 같은 코드로 묶고 대표 의견을 뽑습니다.
weighted_mean = sum(w_i * x_i) / sum(w_i)
weighted_share = sum(w_i * I(condition_i)) / sum(w_i)
top_box = P(response in {4, 5})
bottom_box = P(response in {1, 2})n_eff = (sum(w_i)^2) / sum(w_i^2)
SE(p_hat) = sqrt(p_hat * (1 - p_hat) / n_eff)
CI_95 = p_hat +/- 1.96 * SE(p_hat)chi2 = sum((observed_ij - expected_ij)^2 / expected_ij)
Cramers_V = sqrt(chi2 / (n * min(r - 1, c - 1)))
odds_ratio = (a / b) / (c / d)alpha = (k / (k - 1)) *
(1 - sum(var(item_j)) / var(total_score))
item_total_corr = corr(item_j, total_score_without_j)사용자가 입력한 대상 조건은 AuaCohortSpec으로 정규화합니다. 너무 작은 집단은 경고를 내고, sampleSize는 preview/full mode에 맞춰 제한합니다.
weightedSample은 페르소나의 populationWeight와 seed를 사용해 표본을 고릅니다. 이 단계에서는 응답을 만들지 않고 누구에게 물을지만 정합니다.
조건에 맞는 페르소나가 부족하면 fallback pool에서 보충하고 보고서 경고에 남깁니다. 희소 집단은 해석 confidence를 낮춰 봐야 합니다.
개별 응답 행은 aua_individual_responses에 저장합니다. 공개 보고서는 집계값과 대표 의견을 중심으로 보여줍니다.
draft
질문과 자료를 짧은 실행 brief로 정리합니다.
sample
대상 조건에 맞는 응답자를 고릅니다.
answer
각 페르소나가 자료를 읽고 직접 답합니다.
validate
스키마와 값 범위를 검증합니다.
aggregate
통계와 세그먼트 차이를 계산합니다.
store
보고서, 개별 응답, 산출물을 저장합니다.
완료된 run에서 대표 페르소나를 고르고, 72시간 동안 후속 질문을 받을 수 있는 세션을 엽니다.
채팅 답변은 aua_individual_responses의 quote, answers, objections, attractionDrivers를 불러와 같은 페르소나 맥락 안에서 만듭니다.
그룹챗은 정성적으로 더 물어보는 공간입니다. 여기서 나온 의견을 전체 대상 통계로 자동 승격하지 않습니다.
보고서에서 나온 반대 이유를 더 캐묻거나, 가격·문구·기능 조건을 좁혀 다음 follow-up run 질문을 만들 때 씁니다.
실행의 출발점입니다. API key를 확인하고, 대상 조건을 정규화하고, 페르소나 표본을 고른 뒤 자료 맥락을 보강해 응답 생성을 시작합니다.
표본 페르소나를 동시 처리 단위로 나눠 각자의 응답을 병렬로 만듭니다. 실제 설문 응답 생성은 이 경로를 중심으로 돌아갑니다.
페르소나 프로필, brief, 자료 맥락, 대상 조건, 질문, 응답 규격을 모델에 넘기고 JSON 응답을 받습니다. 미리 계산한 점수는 넣지 않습니다.
모델이 낸 지지 점수, 확신도, 세그먼트 라벨, 답변, 인용문, 반대 이유, 끌린 이유를 검증한 뒤 보고서 행으로 정리합니다.
사용자 입력, 첨부 요약, 웹 링크를 실행 맥락으로 묶습니다. 웹 링크는 HTML/plain/json 본문에서 필요한 내용만 짧게 뽑아 페르소나가 읽을 수 있게 만듭니다.
개별 응답 행을 받아 보고서 지표, 문항별 결과, 세그먼트 차이, 대표 의견, 추천 액션을 계산합니다.
페르소나 풀에서 대상 조건과 populationWeight를 반영해 표본을 뽑습니다. 이 함수는 응답을 만들지 않고 누구에게 물을지만 정합니다.
문항별 가중 평균, 긍정/보류/부정 비율, 자유응답의 주요 답변을 집계합니다.
Storage에서 내려받은 PDF/DOCX/TXT/이미지를 Markdown 또는 한국어 설명으로 변환해 extracted_text_summary에 저장합니다.
대기열에 들어간 전체 실행을 처리할 때 source_context_json과 저장된 자료 요약을 합쳐 페르소나 생성 엔진에 넘깁니다.
type AuaSourceContext = {
material?: string;
assetSummaries?: string[];
assetIds?: string[];
webLinks?: string[];
};type AuaPersonaResponse = {
auaResidentNumber: string;
regionLabel: string;
segmentLabel: "강한 관심" | "조건부 관심" | "의심/보류";
populationWeight: number;
supportScore: number; // 0..1, 합성 페르소나가 판단
confidence: number; // 0..1, 응답 확신도
answers: Array<{ questionId: string; value: number | string | string[]; reason: string }>;
quote: string;
objections: string[];
attractionDrivers: string[];
};POST /api/projects/:id/runs
{
"brief": AuaBrief,
"cohort": AuaCohortSpec,
"questions": AuaQuestion[],
"sampleSize": 2000,
"sourceContext": {
"material": "사용자 입력 원문",
"assetIds": ["asset-id-001"],
"assetSummaries": ["추출된 자료 요약"],
"webLinks": ["https://..."]
}
}POST /api/projects/:id/assets/:assetId/extract
// Internal Storage에서 원본을 읽고 문서 텍스트 또는 이미지 설명을 추출한 뒤
// aua_assets.extracted_text_summary에 저장합니다.AUA는 실제 사람에게 물은 결과가 아니며, 선거 여론조사·법적 증거·투자 판단·의료 판단을 대체하지 않습니다.
생성 모델은 학습 데이터, 프롬프트, 제공사 정책의 영향을 받습니다. 민감한 주제는 별도 검증이 필요합니다.
이미지 기반 PDF, 손상된 파일, legacy DOC는 자동 추출 품질이 낮거나 실패할 수 있습니다.
2,000개의 응답 행이 있어도 합성 응답입니다. 숫자는 의사결정 리허설 신호이지 실제 시장 점유율 예측값이 아닙니다.
아래 출처는 합성 페르소나 구성, 공개 통계 기반 모집단 틀, 인프라, 모델 제공사 전략을 설명하기 위한 참조입니다. 44.5백만 명 규모의 마스터 데이터셋을 구성할 때는 NVIDIA Nemotron 계열 페르소나 소스를 개인별 합성 서사의 출발점으로 두고, KOSIS 통계를 인구·가구·주거·경제·생활 분포 보정 기준값으로 사용합니다. AUA가 해당 기관의 공식 통계 생산물이라는 의미는 아닙니다.
Dataset attribution
본 프로젝트는 NVIDIA의 nvidia/Nemotron-Personas-Korea 데이터셋을 사용했습니다. 해당 데이터셋은 CC BY 4.0 라이선스로 제공되며, 출처 표시를 전제로 공유, 수정, 재배포, 상업적 사용이 가능합니다.