4450만 AI 국민 프로필 카드

source row loading

AI 국민 프로필

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

loading random source row

AI 국민 프로필 카드 불러오는 중..

Research intelligence architecture

AUA France는 당신의 아이디어를 France synthetic citizen panel에게 먼저 물어보는 AI 합성 리서치 시스템입니다.

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

69,082,000
마스터 빌드 모집단 수
1,000,000
AI 페르소나 소스
INSEE + public stats
France public frame
Schema
AI 시민 응답 규격

Reliability Calibration

Public benchmark report

AUA는 맞는 척하지 않고, 공개 조사와 얼마나 가까운지 계속 공개하는 방식으로 신뢰를 쌓습니다.

신뢰도 점검 리포트는 같은 질문, 같은 보기, 같은 대상 조건을 AUA AI 시민에게 던진 뒤 실제 공개 설문 결과와 비교하는 calibration 문서입니다. 단일 숫자를 맞혔는지만 보지 않고 topline 차이, 보기 순위, 세그먼트 방향, 자유응답 이유 코드까지 함께 봅니다. 그래서 AUA 결과는 정답 선언이 아니라 실제 조사 전에 어디까지 참고할 수 있는지 보여주는 투명한 사용 설명서에 가깝습니다.

Official checks
3

France public benchmarks currently tracked from official INSEE sources.

Benchmark status mix
2/0/2

Counts shown as close / mild / outlier against public references.

Population frame
69.1M

AUA France weighted population anchor currently loaded by runtime facets.

Public regions
17

Province-level France facet entries exposed on the public runtime surface.

France benchmark queue

France calibration layer는 지금 공개 benchmark pack으로 넘어가는 중입니다

France repo는 이제 이전 Korea benchmark snapshot을 복제하는 대신, France population frame과 joint estimate가 실제로 어떤 상태인지 먼저 공개합니다. 다음 단계의 calibration pack은 INSEE와 France public-stat question set을 기준으로 close-match, mild-gap, outlier를 다시 쌓는 방식으로 구성됩니다.

Population bootstrap

France total population on 1 January 2026

close

공개 조사

69,082,000

AUA 국민

69,082,000

차이

0 (0.0%)

Benchmark fit100%

The runtime bootstrap total should stay pinned to the official France population anchor before any deeper weighting claim is made. Current runtime check: close match on 2026-01-01, with AUA at 69,082,000.

INSEE demographic report 2025

Regional distribution

Ile-de-France share of the national population

outlier

공개 조사

18.2%

AUA 국민

19.9%

차이

1.7 pts (9.2%)

Benchmark fit54%

Regional weighting should not drift too far from the official Ile-de-France share, or the runtime sample will feel Paris-heavy. Current runtime check: outlier gap on 2026-01-01, with AUA at 19.9%.

INSEE Ile-de-France population estimates

Age structure

Share of the population aged 60 or over

outlier

공개 조사

28.5%

AUA 국민

33.8%

차이

5.3 pts (18.7%)

Benchmark fit7%

The current runtime age mix should be watched carefully because a bootstrap-only frame can overstate older cohorts. Current runtime check: outlier gap on 2026-01-01, with AUA at 33.8%.

INSEE population estimates, share aged 60+

Synthetic source import

Nemotron France canonical source rows

close

공개 조사

1,000,000 rows

AUA 국민

1,000,000 rows

차이

0 rows (0.0%)

Benchmark fit100%

The heavy persona store should preserve the full 1M-row canonical source layer before runtime sampling and weighting. Current runtime check: close match on 2026-06-11, with AUA at 1,000,000 rows.

NVIDIA Nemotron-Personas-France dataset

How to read AUA

AI 시민에게 묻는 일이 의미 있는 범위

믿을 수 있는 범위

AUA는 안정적인 생활 가치관, 넓은 인구집단의 태도, 보기 구조가 분명한 정책·제품·메시지 pre-test에서 가장 쓸모가 큽니다. 정확한 득표율이나 매출 예측보다 어느 세그먼트가 왜 끌리고 왜 주저하는지를 먼저 보는 도구입니다.

반드시 조심할 범위

최신 가격 충격, 플랫폼 알고리즘 변화, 선거·정책 급변, 특정 사건 직후 여론, 매우 좁은 팬덤이나 실제 행동 데이터가 필요한 문항은 공개 조사와 크게 벌어질 수 있습니다. 이런 안건은 AUA 후 실제 조사로 넘기는 것이 맞습니다.

그래도 써야 하는 이유

정식 조사를 하기 전 질문을 고치고, 반대 이유를 미리 보고, 타겟을 좁히고, 보고서와 raw data로 팀 논의를 빠르게 만드는 데 비용 대비 가치가 큽니다. 좋은 AUA 실행은 결론이 아니라 더 좋은 실제 검증으로 가는 압축 단계입니다.

정확도보다 중요한 것은 해석 가능성

AUA의 장점은 52.5%를 52.5%로 맞히는 기계가 되는 데 있지 않습니다. 초기 안건을 여러 번 던져보고, 누가 반응하는지, 왜 반대하는지, 어떤 보기와 문항이 실제 조사 전에 위험한지를 빠르게 찾는 데 있습니다. 수치가 가까울수록 좋지만, 수치가 멀어질 때도 그 이유를 기록하면 다음 실제 조사 설계가 좋아집니다.

Limitations

실제 여론조사 아님

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

공개 벤치마크의 한계

calibration 점수가 높아도 같은 시점, 같은 표본, 같은 조사 방식이라는 뜻은 아닙니다. 실제 공개 조사와 AUA 실행 조건이 다르면 차이가 날 수 있습니다.

모델 편향

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

최신 행동 변화

가격 급등, 유행, 사건 직후 여론, 플랫폼 변화처럼 최근 충격이 큰 주제는 정적 페르소나가 뒤늦게 따라갈 수 있습니다.

문서 추출 한계

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

정밀도 착시

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

Pricing

Credit unit

MeatPie는 AUA에서 설문 요청 인원을 세는 크레딧 단위입니다.

이름은 호주(오스트레일리아)에서 유명한 미트파이에서 가져왔습니다. 한 조각 먹고 힘내서 한 명에게 더 물어본다는, 아주 과학적인 척하는 농담입니다. 제품 안에서는 이 농담을 실제 과금 단위로 고정했습니다.

대응식

1 MeatPie = AI 국민 1명

2,000명에게 묻는 설문은 2,000 MeatPie를 사용합니다. 숫자는 패널 인원과 바로 대응됩니다.

베타 기본 지급

현재 베타테스팅 기간에는 새로 계정을 만든 분께 초기 세팅으로 2,000 MeatPie를 지급합니다. 첫 설문 한 번을 끝까지 돌려볼 수 있는 양입니다.

추가 구매

아직 베타테스팅 중이라 MeatPie를 별도로 구매할 수는 없습니다. 베타 테스터가 되어주시면 더 드릴 수 있으니, 망설이지 말고 DM 주세요.

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 시민 표본France public-stat 가중치페르소나 조건 매칭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의 개별 응답을 불러와 90분 활성 세션으로 작동합니다.

AI Citizen Build

1. Population frame

France public statistics와 INSEE 기준값을 바탕으로 약 6,908만 명 규모의 France population frame을 잡습니다. 성별, 연령대, region, department, 직업, 학력, household 단서는 이 틀 안에서 해석합니다.

2. Persona source

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

3. France public-stat enrichment

INSEE와 France public-stat surface를 영역별 기준값으로 씁니다. 현재는 전체 population bootstrap weighting과 geography remap이 먼저 적용되어 있고, household, housing, mobility, labour calibration은 단계적으로 보강합니다.

4. Persona cognition pass

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

Master dataset build

NVIDIA Nemotron France + public-stat bootstrap 기반 69.1M AI 시민 master dataset

AUA의 마스터 데이터셋은 NVIDIA Nemotron France에서 얻은 개인별 서사와 France public statistics에서 얻은 population frame을 결합해 만듭니다. 목적은 실제 시민을 식별하는 것이 아니라, 판단 실험에 필요한 개별 맥락을 충분히 가진 합성 AI 인간 단위를 만드는 것입니다.

69.1M France master population

100만 개의 페르소나 행은 France population bootstrap weighting과 cohort aggregate 기준값을 거쳐 약 6,908만 명 규모의 France 모집단으로 확장해서 해석합니다. 표본 행과 전체 모집단 기준은 따로 관리합니다.

AUA-FR citizen ID 기반 연결

보강 데이터는 AUA-FR citizen ID를 기준으로 기존 페르소나 행에 1:1로 붙입니다. 새 인물을 무작위로 섞지 않고, 원래 페르소나의 나이, geography, 직업, household 단서와 맞는 값만 채웁니다.

Sector-specific columns

가구·동거, 주거 형태와 점유, 경제활동, 이동성, 여가·문화 같은 항목을 영역별로 만듭니다. 현재 France repo에서는 geography, marital status, household type이 먼저 정착돼 있고 나머지 calibration column은 순차 확장 중입니다.

Human cognition simulation context

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

France public-stat inputs

마스터 데이터셋 보강에 연결할 France 공개 통계 입력층

Household

household size, co-living context, child/no-child distribution calibration

  • INSEE household tablesFrance household composition and family structure inputs

Residential

housing type, tenure, dwelling surface, regional housing-market calibration

  • INSEE housing stockDwelling type and housing tenure distributions
  • data.gouv mobility/housingRegional housing-market and territory context inputs

Socioeconomic

employment status, labour force, education, occupational mix calibration

  • INSEE labour forceEmployment and non-employment distributions by age/sex/education
  • INSEE education tablesEducation attainment and occupational mix inputs

Lifestyle

mobility, commuting, cultural participation, digital access calibration

  • INSEE mobility and cultureCommuting mode, cultural participation, daily-life behaviour inputs
  • data.gouv.fr public datasetsSupplementary France open-data feeds for later enrichment phases

AI 시민의 의미

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

Source Intake

Direct material

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

Files

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

Images

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

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

90min. session

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

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 또는 reader-facing 설명으로 변환해 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에 저장합니다.

Data Sources

아래 출처는 합성 페르소나 구성, 공개 통계 기반 모집단 틀, 인프라, 모델 제공사 전략을 설명하기 위한 참조입니다. 69.1백만 명 규모의 France 모집단 틀을 구성할 때는 NVIDIA Nemotron France 페르소나 소스를 개인별 합성 서사의 출발점으로 두고, France public statistics를 population frame과 세부 분포 보정 기준값으로 사용합니다. AUA가 해당 기관의 공식 통계 생산물이라는 의미는 아닙니다.

NVIDIA Nemotron-Personas-France

Source

France population bulletin

Source

Licenses

Dataset attribution

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

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

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