4450만 AI 국민 프로필 카드

source row loading

AI 국민 프로필

슬라이드 쇼 재생하기다음 AI 국민 프로필 카드

loading random source row

랜덤 프로필 행을 불러오는 중입니다.

Research intelligence architecture

AUA Korea는 당신의 아이디어를 한국형 AI 국민 패널들에게 먼저 물어보는 AI 합성 리서치 시스템입니다.

AUA는 정해진 공식으로 조건에 맞는 데이터만 뱉어내는 프로그램이 아닙니다. 여러분이 입력한 질문, 첨부한 PDF/DOCX/이미지 파일 자료, 한국형 집단 조건, 개별 페르소나 프로필을 하나의 판단 맥락으로 사용하여, 합성 AI 국민이 그 안에서 이유와 망설임까지 포함해서 답변토록 설계했습니다.

44,519,085
마스터 빌드 모집단 수
7,000,000
AI 페르소나 소스
16+ Datasets
KOSIS 공공데이터
Schema
AI 국민 응답 규격

Product Surface

Home Page

첫 화면은 AUA가 어떤 방식으로 아이디어를 AI 국민 패널에게 물어보는지 직관적으로 이해하도록 디자인되었습니다. 질문 입력, 자료 첨부, 원자료 응답, 보고서, 페르소나 채팅까지 이어지는 제품 흐름을 개념적으로 보여줍니다.

Lab Entry

랜딩 헤더와 CTA의 Lab 진입점은 유지합니다. 실제 Lab workspace 화면은 새 설계를 위해 비워둔 상태이며, Supabase 연결과 API 기반은 이후 구현에서 재사용합니다.

Run Worker

실제 실행은 긴 웹 요청으로 붙잡아두지 않고 대기열에 저장합니다. 워커가 표본을 뽑고, 자료 맥락을 읽고, 응답 생성과 집계 저장을 이어받습니다.

보고서와 아티팩트

결과물은 인터랙티브 보고서 덱, 마크다운 요약, CSV, JSONL, PDF로 나뉩니다. 개별 응답은 비공개 응답 저장소에 남겨 후속 분석과 페르소나 채팅의 근거로 씁니다.

Operation Architecture

Product Operating Map

제품 운영 흐름도

입력, 자료 해석, 표본 추출, 개별 응답, 검증과 집계, 산출물 저장까지 제품의 복잡한 운영 흐름을 개념 구조도로 압축했습니다.

FRONT OFFICEEXECUTION COREOUTPUT LAYERUSER입력 콘솔질문 · 자료 · 링크대상 조건 · 표본 수INTAKE자료 맥락화문서 · 이미지 추출맥락 압축 · 정규화SAMPLEAI국민 표본KOSIS 가중치페르소나 조건 매칭ENGINE인지 응답 생성개별 판단 생성점수 · 이유 · 답변OUTPUT보고서 산출인사이트 덱PDF · CSV · 채팅RUN실행 대기열credit · status · retryQA응답 검증 루프schema · range · repairSTORE응답 저장소private response rowsPERSISTENT EXECUTION LAYER개별 응답 rowsquote, objections, answers, confidence가중 통계와 세그먼트top-box, driver, contrast, warning보고서 아티팩트interactive deck, PDF, CSV, JSONL
Schema guardedWeighted analyticsRun ledger주 실행 흐름비동기/저장 흐름

Operations Rule

운영 규칙

  • 페르소나 응답 동시 처리 수로 실행 속도와 안정성을 함께 조절합니다. 기본값은 3, 상한은 8입니다.
  • AI 국민 생성에 실패하면 실제 응답 생성은 실행하지 않습니다. 데모 경로와 실제 실행 경로는 분리해 운영합니다.
  • source_context_json은 aua_runs에 저장해 워커와 보고서 재생성 과정이 같은 자료 맥락을 참조하게 합니다.
  • 자료 업로드는 signed upload URL로 진행하고, 추출 라우트가 원본을 다시 내려받아 요약을 저장합니다.
  • 전체 실행이 실패하면 잡아둔 credit reservation을 refund ledger로 되돌립니다.
  • AI 국민과의 그룹채팅은 완료된 run의 개별 응답을 불러와 72시간 활성 세션으로 작동합니다.

AI Citizen Build

1. Population frame

KOSIS 주민등록인구와 인구·가구 통계를 기준으로 44.5백만 명 규모의 한국 성인 모집단을 잡습니다. 성별, 연령대, 지역, 직업, 학력, 관심사는 이 틀 안에서 해석합니다.

2. Persona source

NVIDIA Nemotron 계열 페르소나 소스를 바탕으로 말투, 가치관, 생활 서사, 직업·취미 단서를 가진 합성 시민 프로필을 만듭니다. 실제 개인을 복제하는 것이 아니라 판단 실험에 쓰는 가상의 인지 단위입니다.

3. KOSIS enrichment

KOSIS의 인구, 가구, 주거, 고용, 통근, 생활·문화, 디지털 접근성 통계를 영역별 기준값으로 씁니다. 기존 페르소나와 어긋나지 않는 선에서 세대, 주거, 경제활동, 생활양식 정보를 보강합니다.

4. Persona cognition pass

각 페르소나는 자료와 질문을 읽고 지지 점수, 확신도, 문항별 답변, 이유, 반대 지점, 끌린 이유를 남깁니다. 정해진 점수표에 체크하는 방식이 아니라 자기 조건에 맞춰 판단하게 합니다.

Master dataset build

NVIDIA Nemotron + KOSIS 기반 44.5백만 AI국민 master dataset

AUA의 마스터 데이터셋은 NVIDIA Nemotron 페르소나 계열에서 얻은 개인별 서사와 KOSIS 통계에서 얻은 한국형 인구·가구·주거·경제·생활 분포를 결합해 만듭니다. 목적은 실제 시민을 식별하는 것이 아니라, 판단 실험에 필요한 개별 맥락을 충분히 가진 합성 AI 인간 단위를 만드는 것입니다.

44.5M master population

100만 개의 페르소나 행은 KOSIS 기반 가중치와 세그먼트 기준값을 거쳐 44.5백만 명 한국 성인 모집단으로 확장해서 해석합니다. 표본 행과 전체 모집단 기준은 따로 관리합니다.

AUA 주민 번호 기반 연결

보강 데이터는 AUA 주민 번호를 기준으로 기존 페르소나 행에 1:1로 붙입니다. 새 인물을 무작위로 섞지 않고, 원래 페르소나의 나이, 지역, 직업, 가족 단서와 맞는 값만 채웁니다.

Sector-specific columns

가구·동거, 주거 형태와 점유, 경제활동과 소득 구간, 통근, 여가·문화, 디지털 관여도 같은 항목을 영역별로 만듭니다. 각 항목은 KOSIS 통계 분포를 참고한 합성 속성입니다.

Human cognition simulation context

LLM에는 Nemotron 기반 페르소나 문장과 KOSIS 기반 구조화 정보를 함께 넘깁니다. 이렇게 개인별 맥락을 만든 뒤 질문, 자료, 대상 조건을 읽고 사람의 판단에 가까운 응답을 만들게 합니다.

KOSIS tables used

마스터 데이터셋 보강에 사용한 KOSIS 통계표

Household

세대원 수, 세대구성, 동거 맥락 보정

  • 101/DT_1JC1516세대구성 및 가구원수별 가구(일반가구) - 시군구

Residential

거처 종류, 주거면적, 주택 노후도, 지역 주택시장, 점유형태 보정

  • 101/DT_1JC1505거처의 종류 및 가구원수별 가구(일반가구) - 시군구
  • 101/DT_1JC1521주택(오피스텔 포함)의 종류 및 주거면적별 가구(일반가구) - 시군구
  • 101/DT_1JU1521주택의 종류 및 노후기간별 주택 - 시군구
  • 408/DT_KAB_11672_S5아파트 매매 실거래가격지수_시군구_분기별
  • 101/DT_1PE2010가구주의 연령별/점유형태별 가구(일반가구)-시군구

Socioeconomic

경제활동 상태, 취업/비경제활동, 종사상 지위와 규모, 주관적 소득수준 보정

  • 101/DT_1DA7016S행정구역(시도)/교육정도별 경제활동인구
  • 101/DT_1ES3B03J시도/성/연령/교육정도별 경제활동인구
  • 101/DT_1ES3B04J시도/성/연령/교육정도별 취업자
  • 101/DT_1ES3B14J시도/성/연령/교육정도별 비경제활동인구
  • 101/DT_1LC0005종사상지위별 종사상규모별 등록취업자 수_시도
  • 101/INH_1SSIC010R주관적소득수준(시도)

Lifestyle

문화 관람, 여가 만족/불만족 이유, 통근 교통수단 보정

  • 101/INH_1SSCL030R문화예술 및 스포츠관람현황(시도)
  • 101/INH_1SSCL091R여가활용 만족도(시도)
  • 101/INH_1SSCL093R여가활용 불만족 이유(시도)
  • 101/DT_1PA2015성, 종사상 지위 및 이용 교통수단별 통근 인구(15세 이상)-시도

AI국민의 의미

AUA의 AI국민은 실제 개인을 복제하거나 특정 시민을 사칭하지 않습니다. 인구통계 틀과 합성 페르소나 소스를 결합한 가상의 AI 응답자이며, 응답은 탐색용 사전 점검 신호로만 해석합니다.

Source Intake

Direct material

사용자가 입력한 긴 설명, 정책 초안, 제품 소개, 캠페인 문구는 조사 자료로 정리합니다. 실행할 때는 길이와 형식을 다듬어 페르소나가 읽을 수 있는 맥락으로 압축합니다.

Files

PDF, DOCX, TXT, MD, PNG, JPG, WEBP를 프로젝트당 5개, 파일당 8MB까지 받습니다. 원본은 Internal Storage에 저장합니다.

Images

이미지는 비전 모델로 읽어 제품, 장면, 문구, 가격, 브랜드 단서를 한국어 설명으로 바꿉니다. 시각 자료도 응답자가 읽는 조사 맥락 안에 함께 넣습니다.

Web links

본문에 들어간 URL은 최대 5개까지 찾습니다. 서버는 HTML, 일반 텍스트, JSON 본문에서 필요한 맥락만 추려 실행 자료에 더합니다.

Model Orchestration

AUA의 모델 계층은 하나의 거대한 답변자가 아니라 역할이 다른 여러 판단 계층으로 설계됩니다. 빠른 구조화 응답, 긴 문서 검토, 비용 효율적인 대량 생성, 스키마 복구와 일관성 검토를 분리해 같은 응답 규격과 검증기 아래에서 운영할 수 있습니다.

Primary reasoning layer

구조화된 JSON 응답, 이미지 설명, 빠른 페르소나 응답 생성을 맡습니다. 현재 제품의 실시간 실행 경로는 이 계층을 중심으로 안정성과 속도를 맞춥니다.

Long-context review

긴 문서 해석이나 정책·법률·브랜드 맥락처럼 오래 읽고 판단해야 하는 실행에서 보조 판단 또는 2차 검토로 붙일 수 있는 계층입니다.

Scale and variation layer

대량 응답, 문구 변형, 다국어 기본 점검처럼 비용 효율이 중요한 작업에 함께 쓸 수 있는 계층입니다.

Provider voting

중요한 실행에서는 기본 답변, 일관성 검토, 스키마 복구를 나눠 처리할 수 있습니다. 이상치와 실패를 기록하고 재시도 정책을 적용해 결과가 흔들리지 않게 합니다.

Cognitive Engine

Persona-first response generation

AUA는 공식에 맞춘 검색 결과를 가지고 이유를 만들어 붙이는 방식이 아닙니다. 개별 AI 국민은 자신을 설명하는 데이터와 서사를 읽고 하나의 합성 AI 인간으로 자기 맥락을 구성한 뒤, 주어진 자료와 설문지를 마주합니다. 그리고 자신의 조건, 취향, 망설임, 이해관계를 전부 고려하여 어떤 답을 남길지 고민합니다. 시스템은 이렇게 만들어진 개별 응답을 검증하고 집계해, 숫자만으로는 보이지 않는 그들의 판단과 응답을 보고서로 끌어올립니다.

Persona response contract

input = {
  brief,
  sourceContext,
  cohort,
  personaProfile,
  questions,
  answerContract
}

output = {
  supportScore,
  confidence,
  segmentLabel,
  quote,
  answers[],
  objections[],
  attractionDrivers[]
}

Survey Taxonomy

Intent and attitude

구매 의향, 이용 의향, 시청 의향, 호감도, 공유 의향

Likert, semantic differential, open_text

weighted meantop-boxbottom-boxconfidence banddriver model

Policy and public decision

정책 찬반, 공공 캠페인, 예산 우선순위, 지역 민원

support split, choice, open_text

support sharechi-squareCramer's Vobjection miningsegment contrast

Candidate and option choice

후보명, 브랜드명, 패키지안, 메시지안, 장소 선택

choice, ranking, MaxDiff-lite

choice shareranking scoreMaxDiffpreference clusterreason coding

Product feature and KANO

기능 우선순위, 필수 기능, 있으면 좋은 기능, 불만 유발 기능

functional/dysfunctional pair, ranking, open_text

KANO-liteimportance-performancefeature quadrantTURF-lite

Pricing and monetization

구독료, 일회성 가격, 무료체험, 패키지 번들, 가격 저항

price ladder, choice, open_text

Van WestendorpGabor-Grangerprice sensitivity meterwillingness-to-pay

Message and risk diagnosis

불쾌한 표현, 오해 가능성, 신뢰 장벽, 반대 논리, 위기 커뮤니케이션

open_text, Likert, forced choice

topic clusteringsentiment codingdisagreement miningrepresentative quote

Statistics

Descriptive

빈도, 비율, 가중 평균, 중앙값, 표준편차, top-box/bottom-box로 응답의 기본 분포를 보여줍니다.

Uncertainty

유효 표본 수, 근사 신뢰구간, bootstrap 구간, 희소 strata 경고로 결과를 읽을 때의 불확실성을 함께 보여줍니다.

Group difference

t-test, ANOVA, Mann-Whitney U, Kruskal-Wallis, eta squared, Cohen's d를 사용해 집단 차이를 정리합니다.

Association

chi-square, Cramer's V, Pearson/Spearman correlation, odds ratio로 범주형/연속형 변수의 연관을 봅니다.

Driver model

high_intent나 support를 목표값으로 두고 logistic regression, regularized regression, tree-lite explanation을 붙일 수 있습니다.

Preference

ranking score, MaxDiff-lite, conjoint-lite, TURF-lite를 통해 여러 후보안의 상대 선호와 조합 효과를 추정합니다.

Scale diagnostics

Cronbach's alpha, item-total correlation, PCA/factor analysis로 여러 문항이 같은 태도 축을 재는지 점검합니다.

Qualitative coding

자유응답을 반대 이유, 끌린 지점, 헷갈린 부분, 신뢰 단서, 가격 장벽, 주변 반응 같은 코드로 묶고 대표 의견을 뽑습니다.

Weighted mean and share

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})

Effective sample size

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)

Association

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)

Scale reliability

alpha = (k / (k - 1)) *
  (1 - sum(var(item_j)) / var(total_score))

item_total_corr = corr(item_j, total_score_without_j)

Sampling

Cohort normalization

사용자가 입력한 대상 조건은 AuaCohortSpec으로 정규화합니다. 너무 작은 집단은 경고를 내고, sampleSize는 preview/full mode에 맞춰 제한합니다.

Weighted sampling

weightedSample은 페르소나의 populationWeight와 seed를 사용해 표본을 고릅니다. 이 단계에서는 응답을 만들지 않고 누구에게 물을지만 정합니다.

Coverage warning

조건에 맞는 페르소나가 부족하면 fallback pool에서 보충하고 보고서 경고에 남깁니다. 희소 집단은 해석 confidence를 낮춰 봐야 합니다.

Private response rows

개별 응답 행은 aua_individual_responses에 저장합니다. 공개 보고서는 집계값과 대표 의견을 중심으로 보여줍니다.

Report Pipeline

1

draft

generateBrief

질문과 자료를 짧은 실행 brief로 정리합니다.

2

sample

personaMatches + weightedSample

대상 조건에 맞는 응답자를 고릅니다.

3

answer

generateOnePersonaResponse

각 페르소나가 자료를 읽고 직접 답합니다.

4

validate

normalizeLlmPersonaResponse

스키마와 값 범위를 검증합니다.

5

aggregate

aggregateQuestion + buildSegments

통계와 세그먼트 차이를 계산합니다.

6

store

storeResult

보고서, 개별 응답, 산출물을 저장합니다.

Persona Chat

72-hour session

완료된 run에서 대표 페르소나를 고르고, 72시간 동안 후속 질문을 받을 수 있는 세션을 엽니다.

Grounded in run response

채팅 답변은 aua_individual_responses의 quote, answers, objections, attractionDrivers를 불러와 같은 페르소나 맥락 안에서 만듭니다.

Not aggregate statistics

그룹챗은 정성적으로 더 물어보는 공간입니다. 여기서 나온 의견을 전체 대상 통계로 자동 승격하지 않습니다.

Recommended use

보고서에서 나온 반대 이유를 더 캐묻거나, 가격·문구·기능 조건을 좁혀 다음 follow-up run 질문을 만들 때 씁니다.

Core Functions

buildAuaReportAsync(args)

lib/persona-engine.ts

실행의 출발점입니다. API key를 확인하고, 대상 조건을 정규화하고, 페르소나 표본을 고른 뒤 자료 맥락을 보강해 응답 생성을 시작합니다.

generatePersonaResponses(...)

lib/persona-engine.ts

표본 페르소나를 동시 처리 단위로 나눠 각자의 응답을 병렬로 만듭니다. 실제 설문 응답 생성은 이 경로를 중심으로 돌아갑니다.

generateOnePersonaResponse(...)

lib/persona-engine.ts

페르소나 프로필, brief, 자료 맥락, 대상 조건, 질문, 응답 규격을 모델에 넘기고 JSON 응답을 받습니다. 미리 계산한 점수는 넣지 않습니다.

normalizeLlmPersonaResponse(...)

lib/persona-engine.ts

모델이 낸 지지 점수, 확신도, 세그먼트 라벨, 답변, 인용문, 반대 이유, 끌린 이유를 검증한 뒤 보고서 행으로 정리합니다.

enrichSourceContext(...)

lib/persona-engine.ts

사용자 입력, 첨부 요약, 웹 링크를 실행 맥락으로 묶습니다. 웹 링크는 HTML/plain/json 본문에서 필요한 내용만 짧게 뽑아 페르소나가 읽을 수 있게 만듭니다.

buildAuaReportFromResponses(...)

lib/persona-engine.ts

개별 응답 행을 받아 보고서 지표, 문항별 결과, 세그먼트 차이, 대표 의견, 추천 액션을 계산합니다.

weightedSample(...)

lib/persona-engine.ts

페르소나 풀에서 대상 조건과 populationWeight를 반영해 표본을 뽑습니다. 이 함수는 응답을 만들지 않고 누구에게 물을지만 정합니다.

aggregateQuestion(...)

lib/persona-engine.ts

문항별 가중 평균, 긍정/보류/부정 비율, 자유응답의 주요 답변을 집계합니다.

extractAssetText(...)

app/api/projects/[id]/assets/[assetId]/extract/route.ts

Storage에서 내려받은 PDF/DOCX/TXT/이미지를 Markdown 또는 한국어 설명으로 변환해 extracted_text_summary에 저장합니다.

loadRunSourceContext(...)

scripts/aua_run_worker.ts

대기열에 들어간 전체 실행을 처리할 때 source_context_json과 저장된 자료 요약을 합쳐 페르소나 생성 엔진에 넘깁니다.

API Contracts

Run source context

type AuaSourceContext = {
  material?: string;
  assetSummaries?: string[];
  assetIds?: string[];
  webLinks?: string[];
};

Persona answer row

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[];
};

Create full run

POST /api/projects/:id/runs

{
  "brief": AuaBrief,
  "cohort": AuaCohortSpec,
  "questions": AuaQuestion[],
  "sampleSize": 2000,
  "sourceContext": {
    "material": "사용자 입력 원문",
    "assetIds": ["asset-id-001"],
    "assetSummaries": ["추출된 자료 요약"],
    "webLinks": ["https://..."]
  }
}

Extract asset

POST /api/projects/:id/assets/:assetId/extract

// Internal Storage에서 원본을 읽고 문서 텍스트 또는 이미지 설명을 추출한 뒤
// aua_assets.extracted_text_summary에 저장합니다.

Limitations

실제 여론조사 아님

AUA는 실제 사람에게 물은 결과가 아니며, 선거 여론조사·법적 증거·투자 판단·의료 판단을 대체하지 않습니다.

모델 편향

생성 모델은 학습 데이터, 프롬프트, 제공사 정책의 영향을 받습니다. 민감한 주제는 별도 검증이 필요합니다.

문서 추출 한계

이미지 기반 PDF, 손상된 파일, legacy DOC는 자동 추출 품질이 낮거나 실패할 수 있습니다.

정밀도 착시

2,000개의 응답 행이 있어도 합성 응답입니다. 숫자는 의사결정 리허설 신호이지 실제 시장 점유율 예측값이 아닙니다.

Data Sources

아래 출처는 합성 페르소나 구성, 공개 통계 기반 모집단 틀, 인프라, 모델 제공사 전략을 설명하기 위한 참조입니다. 44.5백만 명 규모의 마스터 데이터셋을 구성할 때는 NVIDIA Nemotron 계열 페르소나 소스를 개인별 합성 서사의 출발점으로 두고, KOSIS 통계를 인구·가구·주거·경제·생활 분포 보정 기준값으로 사용합니다. AUA가 해당 기관의 공식 통계 생산물이라는 의미는 아닙니다.

KOSIS 국가통계포털

Source

SGIS+ 통계지리정보서비스

Source

Licenses

Dataset attribution

NVIDIA Nemotron-Personas-Korea 데이터셋 출처 및 라이선스

본 프로젝트는 NVIDIA의 nvidia/Nemotron-Personas-Korea 데이터셋을 사용했습니다. 해당 데이터셋은 CC BY 4.0 라이선스로 제공되며, 출처 표시를 전제로 공유, 수정, 재배포, 상업적 사용이 가능합니다.

데이터셋
nvidia/Nemotron-Personas-Korea
제공자
NVIDIA
라이선스
Creative Commons Attribution 4.0 International (CC BY 4.0)
변경 사항
AUA Korea 제품 맥락에 맞춰 합성 시민 페르소나 소스, 표본 추출, 통계 보정, 리서치 응답 생성 과정에 활용했습니다.
고지
본 프로젝트는 NVIDIA의 공식 제품, 보증, 후원 또는 대리 운영물이 아닙니다.