kakaotalk-chat-analyzer 0.19.10 → 0.19.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/dist/src/analysis-budget.js +1 -1
- package/dist/src/analysis-budget.js.map +1 -1
- package/dist/src/llm-deck-validate.d.ts +4 -0
- package/dist/src/llm-deck-validate.js +149 -0
- package/dist/src/llm-deck-validate.js.map +1 -0
- package/dist/src/llm-input.d.ts +1 -1
- package/dist/src/llm-input.js +29 -7
- package/dist/src/llm-input.js.map +1 -1
- package/dist/src/llm-json.d.ts +43 -0
- package/dist/src/llm-json.js.map +1 -1
- package/dist/src/llm-schema.d.ts +200 -11
- package/dist/src/llm-schema.js +116 -6
- package/dist/src/llm-schema.js.map +1 -1
- package/dist/src/llm-summarize.js +31 -5
- package/dist/src/llm-summarize.js.map +1 -1
- package/dist/src/report-charts.d.ts +1 -1
- package/dist/src/report-charts.js +13 -73
- package/dist/src/report-charts.js.map +1 -1
- package/dist/src/report-innovation.js +7 -42
- package/dist/src/report-innovation.js.map +1 -1
- package/dist/src/report-llm-deck.d.ts +11 -0
- package/dist/src/report-llm-deck.js +164 -0
- package/dist/src/report-llm-deck.js.map +1 -0
- package/dist/src/report-section-visibility.d.ts +2 -0
- package/dist/src/report-section-visibility.js +15 -2
- package/dist/src/report-section-visibility.js.map +1 -1
- package/dist/src/report-story.js +6 -17
- package/dist/src/report-story.js.map +1 -1
- package/dist/src/report-styles.d.ts +1 -1
- package/dist/src/report-styles.js +275 -4
- package/dist/src/report-styles.js.map +1 -1
- package/dist/src/report-ux.d.ts +1 -1
- package/dist/src/report-ux.js +3 -1
- package/dist/src/report-ux.js.map +1 -1
- package/dist/src/report.js +57 -60
- package/dist/src/report.js.map +1 -1
- package/dist/src/story.js +0 -7
- package/dist/src/story.js.map +1 -1
- package/dist/src/types.d.ts +51 -0
- package/dist/src/version.d.ts +2 -2
- package/dist/src/version.js +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -215,7 +215,7 @@ KCA_LLM_BACKEND=ollama kca ./chat.csv --preset custom
|
|
|
215
215
|
|
|
216
216
|
**주제 맵:** graph(공기 군집)·keyword(상위 키워드 시드)·semantic(임베딩 클러스터) 3레인 RRF 병합 — 대용량 방에서 의미 테마 최대 12장. `KCA_TOPIC_MAX`, `KCA_TOPIC_MIN_THEMES`.
|
|
217
217
|
|
|
218
|
-
**LLM (자동, `KCA_LLM=0` 제외):** RAM이 허용하는 최대 Qwen3.5(0.8B→9B)로 주제 제목·서사 +
|
|
218
|
+
**LLM (자동, `KCA_LLM=0` 제외):** RAM이 허용하는 최대 Qwen3.5(0.8B→9B)로 주제 제목·서사 + Story Deck(방 아키타입·올해의 순간·에피소드·관계 드라마·밈·공유 문구 등, 원문 미전송). node-llama-cpp **JSON Schema grammar**로 출력 형식을 강제(기본 on). LLM 실패 시에도 리포트는 규칙 기반 서사로 완성.
|
|
219
219
|
|
|
220
220
|
**LLM 문제 해결:** free RAM이 매우 낮으면(`KCA_LLM_MIN_FREE_GB` 미만) 재시도 없이 skip — `KCA_LLM=0 npx kcachat --local` 또는 메모리 확보 후 재실행. JSON만 끄려면 `KCA_LLM_GRAMMAR=0`.
|
|
221
221
|
|
|
@@ -238,7 +238,7 @@ KCA_BENCH_COMPARE=1 npm run bench:semantic
|
|
|
238
238
|
|
|
239
239
|
</details>
|
|
240
240
|
|
|
241
|
-
**버전 고정:** `npx kakaotalk-chat-analyzer@0.
|
|
241
|
+
**버전 고정:** `npx kakaotalk-chat-analyzer@0.19.12` · 최신은 `kcachat@latest`가 매번 본체를 받습니다. 리포트 사이드 카드·`#kca-provenance`로 실제 생성 버전을 확인할 수 있습니다.
|
|
242
242
|
|
|
243
243
|
**로컬 개발:**
|
|
244
244
|
|
|
@@ -253,6 +253,13 @@ cd kakaotalk-chat-analyzer && npm install && npm run build && npm test
|
|
|
253
253
|
|
|
254
254
|
| 버전 | 요약 |
|
|
255
255
|
|------|------|
|
|
256
|
+
| **0.19.12** | LLM Story Deck·리포트 고밀도 재설계(슬림 팩트·중복 차트 제거) |
|
|
257
|
+
| **0.19.11** | `llm_retry` 예산을 실제 재시도 모델 크기에 맞춤 |
|
|
258
|
+
| **0.19.10** | LLM 재시도 RAM gate·JSON 벤치·테스트 보강 |
|
|
259
|
+
| **0.19.9** | JSON Schema grammar·OOM 방어 — LLM 실패해도 리포트 완성 |
|
|
260
|
+
| **0.19.8** | SLA cap 기준 LLM 예산 skip 완화 |
|
|
261
|
+
| **0.19.7** | 가용 RAM 모델 선택·타임아웃 분리·JSON 재시도 |
|
|
262
|
+
| **0.19.6** | macOS Metal 폴백·로드 시점 RAM 기준 Qwen 선택 |
|
|
256
263
|
| **0.19.5** | KoELECTRA NSMC·embed ONNX npm 번들 자동 설치·독성 lazy zip·Hub 폴백 정리 |
|
|
257
264
|
| **0.19.4** | Qwen3.5 RAM greedy 자동 선택·모든 preset LLM on |
|
|
258
265
|
| **0.18.2** | 주제 맵 3레인(graph·키워드·임베딩) 병합·테마 6~12·LLM `topicProposals` |
|
|
@@ -29,7 +29,7 @@ export function phaseReserveMs(phase, preset, profile, llmSize) {
|
|
|
29
29
|
return llmPhaseReserveMs(llmSize, preset);
|
|
30
30
|
}
|
|
31
31
|
if (phase === "llm_retry") {
|
|
32
|
-
return llmPhaseReserveMs("0.8B", preset);
|
|
32
|
+
return llmPhaseReserveMs(llmSize ?? "0.8B", preset);
|
|
33
33
|
}
|
|
34
34
|
return BASE_RESERVE_MS[phase];
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-budget.js","sourceRoot":"","sources":["../../src/analysis-budget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAuB,MAAM,0BAA0B,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAKrD,MAAM,eAAe,GAAuE;IAC1F,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,iCAAiC;AACjC,MAAM,UAAU,cAAc,CAC5B,KAA2B,EAC3B,MAA0B,EAC1B,OAAuB,EACvB,OAAoB;IAEpB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAC1D,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAC1D,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAClC,OAAO,eAAe,CAAC,QAAQ,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAClC,OAAO,eAAe,CAAC,SAAS,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analysis-budget.js","sourceRoot":"","sources":["../../src/analysis-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
const KEYWORD_POOL_MAX = 80;
|
|
2
|
+
function keywordPool(data) {
|
|
3
|
+
const pool = new Set();
|
|
4
|
+
for (const k of data.keywords.slice(0, KEYWORD_POOL_MAX)) {
|
|
5
|
+
const label = k.label?.trim();
|
|
6
|
+
if (label)
|
|
7
|
+
pool.add(label);
|
|
8
|
+
}
|
|
9
|
+
for (const h of data.highlights) {
|
|
10
|
+
for (const m of h.match(/[\p{L}\p{N}_#]+/gu) ?? []) {
|
|
11
|
+
if (m.length >= 2)
|
|
12
|
+
pool.add(m);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return pool;
|
|
16
|
+
}
|
|
17
|
+
function statTokens(data) {
|
|
18
|
+
const s = new Set();
|
|
19
|
+
const pushNum = (n) => {
|
|
20
|
+
if (n === null || n === undefined || Number.isNaN(n))
|
|
21
|
+
return;
|
|
22
|
+
s.add(String(n));
|
|
23
|
+
s.add(String(Math.round(n)));
|
|
24
|
+
if (!Number.isInteger(n))
|
|
25
|
+
s.add(n.toFixed(1));
|
|
26
|
+
};
|
|
27
|
+
pushNum(data.summary.totalMessages);
|
|
28
|
+
pushNum(data.summary.participants);
|
|
29
|
+
pushNum(data.summary.activeDays);
|
|
30
|
+
pushNum(data.insights.rhythmScore);
|
|
31
|
+
pushNum(data.insights.top3ParticipantSharePercent);
|
|
32
|
+
pushNum(data.insights.weekendSharePercent);
|
|
33
|
+
if (data.summary.peakHour !== null)
|
|
34
|
+
s.add(`${data.summary.peakHour}`);
|
|
35
|
+
return s;
|
|
36
|
+
}
|
|
37
|
+
function statRefOk(ref, data) {
|
|
38
|
+
const t = ref.trim();
|
|
39
|
+
if (t.length < 2)
|
|
40
|
+
return false;
|
|
41
|
+
const stats = statTokens(data);
|
|
42
|
+
for (const tok of t.match(/\d+(?:\.\d+)?/g) ?? []) {
|
|
43
|
+
const whole = tok.includes(".") ? tok.split(".")[0] : tok;
|
|
44
|
+
if (stats.has(tok) || stats.has(whole))
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
return data.highlights.some((h) => h.includes(t.slice(0, Math.min(24, t.length))));
|
|
48
|
+
}
|
|
49
|
+
export function sanitizeLlmDeck(parsed, data) {
|
|
50
|
+
const kw = keywordPool(data);
|
|
51
|
+
const out = {};
|
|
52
|
+
const arch = parsed.roomArchetype;
|
|
53
|
+
if (arch?.name?.trim() && arch.description?.trim()) {
|
|
54
|
+
out.roomArchetype = {
|
|
55
|
+
name: arch.name.trim().slice(0, 40),
|
|
56
|
+
description: arch.description.trim().slice(0, 200),
|
|
57
|
+
traits: (arch.traits ?? []).map((t) => t.trim().slice(0, 32)).filter(Boolean).slice(0, 4),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const moments = (parsed.moments ?? [])
|
|
61
|
+
.filter((m) => m.headline?.trim() && m.statRef?.trim() && statRefOk(m.statRef, data))
|
|
62
|
+
.slice(0, 5)
|
|
63
|
+
.map((m) => ({
|
|
64
|
+
headline: m.headline.trim().slice(0, 120),
|
|
65
|
+
statRef: m.statRef.trim().slice(0, 80),
|
|
66
|
+
}));
|
|
67
|
+
if (moments.length)
|
|
68
|
+
out.moments = moments;
|
|
69
|
+
const beats = (parsed.relationshipBeats ?? [])
|
|
70
|
+
.filter((b) => b.pair?.trim() && b.beat?.trim())
|
|
71
|
+
.slice(0, 4)
|
|
72
|
+
.map((b) => ({
|
|
73
|
+
pair: b.pair.trim().slice(0, 48),
|
|
74
|
+
beat: b.beat.trim().slice(0, 120),
|
|
75
|
+
role: b.role?.trim().slice(0, 24),
|
|
76
|
+
}));
|
|
77
|
+
if (beats.length)
|
|
78
|
+
out.relationshipBeats = beats;
|
|
79
|
+
const episodes = (parsed.episodeCards ?? [])
|
|
80
|
+
.filter((e) => e.title?.trim())
|
|
81
|
+
.slice(0, 6)
|
|
82
|
+
.map((e) => ({
|
|
83
|
+
period: (e.period ?? "").trim().slice(0, 40),
|
|
84
|
+
title: e.title.trim().slice(0, 48),
|
|
85
|
+
tagline: (e.tagline ?? "").trim().slice(0, 80),
|
|
86
|
+
emoji: (e.emoji ?? "📖").trim().slice(0, 4) || "📖",
|
|
87
|
+
}));
|
|
88
|
+
if (episodes.length)
|
|
89
|
+
out.episodeCards = episodes;
|
|
90
|
+
const eras = (parsed.eraLabels ?? [])
|
|
91
|
+
.filter((e) => e.label?.trim())
|
|
92
|
+
.slice(0, 3)
|
|
93
|
+
.map((e) => ({
|
|
94
|
+
label: e.label.trim().slice(0, 48),
|
|
95
|
+
detail: (e.detail ?? "").trim().slice(0, 120),
|
|
96
|
+
}));
|
|
97
|
+
if (eras.length)
|
|
98
|
+
out.eraLabels = eras;
|
|
99
|
+
const jokes = (parsed.insideJokes ?? [])
|
|
100
|
+
.filter((j) => j.label?.trim())
|
|
101
|
+
.slice(0, 5)
|
|
102
|
+
.map((j) => {
|
|
103
|
+
const evidence = (j.evidenceKeywords ?? [])
|
|
104
|
+
.map((k) => k.trim())
|
|
105
|
+
.filter((k) => k && kw.has(k))
|
|
106
|
+
.slice(0, 4);
|
|
107
|
+
return {
|
|
108
|
+
label: j.label.trim().slice(0, 40),
|
|
109
|
+
whyFunny: (j.whyFunny ?? "").trim().slice(0, 120),
|
|
110
|
+
evidenceKeywords: evidence,
|
|
111
|
+
};
|
|
112
|
+
})
|
|
113
|
+
.filter((j) => j.evidenceKeywords.length > 0 || j.whyFunny.length > 8);
|
|
114
|
+
if (jokes.length)
|
|
115
|
+
out.insideJokes = jokes;
|
|
116
|
+
const chars = (parsed.characterCards ?? [])
|
|
117
|
+
.filter((c) => c.alias?.trim())
|
|
118
|
+
.slice(0, 3)
|
|
119
|
+
.map((c) => ({
|
|
120
|
+
alias: c.alias.trim().slice(0, 32),
|
|
121
|
+
tagline: (c.tagline ?? "").trim().slice(0, 80),
|
|
122
|
+
statHook: (c.statHook ?? "").trim().slice(0, 60),
|
|
123
|
+
}));
|
|
124
|
+
if (chars.length)
|
|
125
|
+
out.characterCards = chars;
|
|
126
|
+
const days = (parsed.dayMicroStories ?? [])
|
|
127
|
+
.filter((d) => d.date?.trim() && d.line?.trim())
|
|
128
|
+
.slice(0, 5)
|
|
129
|
+
.map((d) => ({
|
|
130
|
+
date: d.date.trim().slice(0, 10),
|
|
131
|
+
line: d.line.trim().slice(0, 120),
|
|
132
|
+
}));
|
|
133
|
+
if (days.length)
|
|
134
|
+
out.dayMicroStories = days;
|
|
135
|
+
if (parsed.shareLine?.trim()) {
|
|
136
|
+
out.shareLine = parsed.shareLine.trim().slice(0, 160);
|
|
137
|
+
}
|
|
138
|
+
const tags = (parsed.hashtags ?? []).map((h) => h.trim().replace(/^#/, "")).filter(Boolean).slice(0, 3);
|
|
139
|
+
if (tags.length)
|
|
140
|
+
out.hashtags = tags.map((h) => h.slice(0, 24));
|
|
141
|
+
const cf = (parsed.counterfactuals ?? [])
|
|
142
|
+
.filter((c) => c.text?.trim())
|
|
143
|
+
.slice(0, 2)
|
|
144
|
+
.map((c) => ({ text: c.text.trim().slice(0, 120) }));
|
|
145
|
+
if (cf.length)
|
|
146
|
+
out.counterfactuals = cf;
|
|
147
|
+
return out;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=llm-deck-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-deck-validate.js","sourceRoot":"","sources":["../../src/llm-deck-validate.ts"],"names":[],"mappings":"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"}
|
package/dist/src/llm-input.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export interface BuildLlmPromptOptions {
|
|
|
4
4
|
}
|
|
5
5
|
/** LLM 입력 — 원문 메시지·PII 없이 통계·키워드·주제만 */
|
|
6
6
|
export declare function buildLlmPromptPayload(data: ReportData, opts?: BuildLlmPromptOptions): string;
|
|
7
|
-
export declare const LLM_SYSTEM_PROMPT = "\uB2F9\uC2E0\uC740 \uCE74\uCE74\uC624\uD1A1 \uB300\uD654\uBC29 \uD1B5\uACC4 \uB9AC\uD3EC\uD2B8 \uD3B8\uC9D1\uC790\uC785\uB2C8\uB2E4.\n\uC0AC\uC6A9\uC790 \uBA54\uC2DC\uC9C0 \uC6D0\uBB38\uC740 \uC5C6\uC2B5\uB2C8\uB2E4. \uD1B5\uACC4\uB9CC \uBCF4\uACE0 JSON \uAC1D\uCCB4 \uD558\uB098\uB9CC \uCD9C\uB825\uD558\uC138\uC694. \uB2E4\uB978 \uD14D\uC2A4\uD2B8\u00B7\uB9C8\uD06C\uB2E4\uC6B4 fence \uAE08\uC9C0.\n\uD544\uC218 \uD0A4: paragraphs (2~3\uAC1C \uBB38\uC790\uC5F4)
|
|
7
|
+
export declare const LLM_SYSTEM_PROMPT = "\uB2F9\uC2E0\uC740 \uCE74\uCE74\uC624\uD1A1 \uB300\uD654\uBC29 \uD1B5\uACC4 \uB9AC\uD3EC\uD2B8 \uD3B8\uC9D1\uC790\uC785\uB2C8\uB2E4.\n\uC0AC\uC6A9\uC790 \uBA54\uC2DC\uC9C0 \uC6D0\uBB38\uC740 \uC5C6\uC2B5\uB2C8\uB2E4. \uD1B5\uACC4\uB9CC \uBCF4\uACE0 JSON \uAC1D\uCCB4 \uD558\uB098\uB9CC \uCD9C\uB825\uD558\uC138\uC694. \uB2E4\uB978 \uD14D\uC2A4\uD2B8\u00B7\uB9C8\uD06C\uB2E4\uC6B4 fence \uAE08\uC9C0.\n\uD544\uC218 \uD0A4: paragraphs (2~3\uAC1C \uBB38\uC790\uC5F4).\n\uC120\uD0DD \uD0A4: topicTitles, topicProposals, insightBullets, shopSearchSummary, dyadInsight,\nroomArchetype{name,description,traits[]}, moments[{headline,statRef}], relationshipBeats[{pair,beat,role}],\nepisodeCards[{period,title,tagline,emoji}], eraLabels[{label,detail}], insideJokes[{label,whyFunny,evidenceKeywords[]}(\uD0A4\uC6CC\uB4DC \uBAA9\uB85D \uB2E8\uC5B4\uB9CC)],\ncharacterCards[{alias,tagline,statHook}], dayMicroStories[{date,line}], shareLine, hashtags[], counterfactuals[{text}](\uAC00\uC0C1 \uC720\uBA38).\ntopicProposals\u00B7insideJokes\uC758 evidence\uB294 \uC785\uB825 \uD0A4\uC6CC\uB4DC\uC5D0 \uC788\uB294 \uB2E8\uC5B4\uB9CC.\nmoments\uC758 statRef \uC22B\uC790\uB294 \uC785\uB825 \uD1B5\uACC4\u00B7\uD558\uC774\uB77C\uC774\uD2B8\uC5D0 \uC788\uB294 \uAC83\uB9CC.\nparagraphs\uB294 2~3\uAC1C, \uAC01 120\uC790 \uC774\uB0B4, \uB9C8\uD06C\uB2E4\uC6B4 **\uAC15\uC870**\uB9CC \uD5C8\uC6A9.\ninsightBullets 2~4\uAC1C(\uC22B\uC790\uB294 \uC785\uB825\uC5D0 \uC788\uB294 \uAC83\uB9CC).";
|
package/dist/src/llm-input.js
CHANGED
|
@@ -36,17 +36,39 @@ export function buildLlmPromptPayload(data, opts) {
|
|
|
36
36
|
if (shift.onlyHead.length || shift.onlyTail.length) {
|
|
37
37
|
lines.push(`키워드전환: 초반[${shift.onlyHead.slice(0, 5).join(",")}] 후반[${shift.onlyTail.slice(0, 5).join(",")}]`);
|
|
38
38
|
}
|
|
39
|
+
if (data.story.chapters.length > 0) {
|
|
40
|
+
const ch = data.story.chapters
|
|
41
|
+
.slice(0, 6)
|
|
42
|
+
.map((c) => `${c.label}(${c.fromDate}~${c.toDate},${c.messages}건,주도${c.topAlias ?? "—"})`);
|
|
43
|
+
lines.push(`챕터: ${ch.join(" | ")}`);
|
|
44
|
+
}
|
|
45
|
+
if (data.burstDays.length > 0) {
|
|
46
|
+
const bursts = data.burstDays
|
|
47
|
+
.slice(0, 5)
|
|
48
|
+
.map((b) => `${b.date}(${b.count}건)`);
|
|
49
|
+
lines.push(`급증일: ${bursts.join(", ")}`);
|
|
50
|
+
}
|
|
51
|
+
const phrases = data.repeatedPhrases.slice(0, 8).map((p, i) => `패턴${i + 1}(${p.count})`);
|
|
52
|
+
if (phrases.length)
|
|
53
|
+
lines.push(`반복문구: ${phrases.join(", ")}`);
|
|
54
|
+
if (data.story.personas.length > 0) {
|
|
55
|
+
const personas = data.story.personas
|
|
56
|
+
.slice(0, 6)
|
|
57
|
+
.map((p) => `${p.alias}:${p.title}`);
|
|
58
|
+
lines.push(`페르소나힌트: ${personas.join(", ")}`);
|
|
59
|
+
}
|
|
39
60
|
}
|
|
40
61
|
return lines.join("\n");
|
|
41
62
|
}
|
|
42
63
|
export const LLM_SYSTEM_PROMPT = `당신은 카카오톡 대화방 통계 리포트 편집자입니다.
|
|
43
64
|
사용자 메시지 원문은 없습니다. 통계만 보고 JSON 객체 하나만 출력하세요. 다른 텍스트·마크다운 fence 금지.
|
|
44
|
-
필수 키: paragraphs (2~3개 문자열).
|
|
45
|
-
|
|
46
|
-
{
|
|
47
|
-
|
|
48
|
-
|
|
65
|
+
필수 키: paragraphs (2~3개 문자열).
|
|
66
|
+
선택 키: topicTitles, topicProposals, insightBullets, shopSearchSummary, dyadInsight,
|
|
67
|
+
roomArchetype{name,description,traits[]}, moments[{headline,statRef}], relationshipBeats[{pair,beat,role}],
|
|
68
|
+
episodeCards[{period,title,tagline,emoji}], eraLabels[{label,detail}], insideJokes[{label,whyFunny,evidenceKeywords[]}(키워드 목록 단어만)],
|
|
69
|
+
characterCards[{alias,tagline,statHook}], dayMicroStories[{date,line}], shareLine, hashtags[], counterfactuals[{text}](가상 유머).
|
|
70
|
+
topicProposals·insideJokes의 evidence는 입력 키워드에 있는 단어만.
|
|
71
|
+
moments의 statRef 숫자는 입력 통계·하이라이트에 있는 것만.
|
|
49
72
|
paragraphs는 2~3개, 각 120자 이내, 마크다운 **강조**만 허용.
|
|
50
|
-
insightBullets
|
|
51
|
-
shopSearchSummary, dyadInsight는 각 120자 이내 한국어(해당 데이터 없으면 생략).`;
|
|
73
|
+
insightBullets 2~4개(숫자는 입력에 있는 것만).`;
|
|
52
74
|
//# sourceMappingURL=llm-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-input.js","sourceRoot":"","sources":["../../src/llm-input.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"llm-input.js","sourceRoot":"","sources":["../../src/llm-input.ts"],"names":[],"mappings":"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"}
|
package/dist/src/llm-json.d.ts
CHANGED
|
@@ -12,6 +12,49 @@ export interface LlmJsonShape {
|
|
|
12
12
|
insightBullets?: string[];
|
|
13
13
|
shopSearchSummary?: string;
|
|
14
14
|
dyadInsight?: string;
|
|
15
|
+
roomArchetype?: {
|
|
16
|
+
name?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
traits?: string[];
|
|
19
|
+
};
|
|
20
|
+
moments?: {
|
|
21
|
+
headline?: string;
|
|
22
|
+
statRef?: string;
|
|
23
|
+
}[];
|
|
24
|
+
relationshipBeats?: {
|
|
25
|
+
pair?: string;
|
|
26
|
+
beat?: string;
|
|
27
|
+
role?: string;
|
|
28
|
+
}[];
|
|
29
|
+
episodeCards?: {
|
|
30
|
+
period?: string;
|
|
31
|
+
title?: string;
|
|
32
|
+
tagline?: string;
|
|
33
|
+
emoji?: string;
|
|
34
|
+
}[];
|
|
35
|
+
eraLabels?: {
|
|
36
|
+
label?: string;
|
|
37
|
+
detail?: string;
|
|
38
|
+
}[];
|
|
39
|
+
insideJokes?: {
|
|
40
|
+
label?: string;
|
|
41
|
+
whyFunny?: string;
|
|
42
|
+
evidenceKeywords?: string[];
|
|
43
|
+
}[];
|
|
44
|
+
characterCards?: {
|
|
45
|
+
alias?: string;
|
|
46
|
+
tagline?: string;
|
|
47
|
+
statHook?: string;
|
|
48
|
+
}[];
|
|
49
|
+
dayMicroStories?: {
|
|
50
|
+
date?: string;
|
|
51
|
+
line?: string;
|
|
52
|
+
}[];
|
|
53
|
+
shareLine?: string;
|
|
54
|
+
hashtags?: string[];
|
|
55
|
+
counterfactuals?: {
|
|
56
|
+
text?: string;
|
|
57
|
+
}[];
|
|
15
58
|
}
|
|
16
59
|
/** 첫 `{`부터 중괄호 깊이로 닫는 `}` 위치 (문자열 내부 무시) */
|
|
17
60
|
export declare function findBalancedJsonEnd(text: string, start: number): number;
|
package/dist/src/llm-json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-json.js","sourceRoot":"","sources":["../../src/llm-json.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm-json.js","sourceRoot":"","sources":["../../src/llm-json.ts"],"names":[],"mappings":"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"}
|
package/dist/src/llm-schema.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ export declare function buildKcaLlmJsonSchema(): {
|
|
|
12
12
|
readonly type: "integer";
|
|
13
13
|
};
|
|
14
14
|
readonly title: {
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
type: string;
|
|
16
|
+
maxLength: number;
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
};
|
|
@@ -25,8 +25,8 @@ export declare function buildKcaLlmJsonSchema(): {
|
|
|
25
25
|
readonly type: "object";
|
|
26
26
|
readonly properties: {
|
|
27
27
|
readonly title: {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
type: string;
|
|
29
|
+
maxLength: number;
|
|
30
30
|
};
|
|
31
31
|
readonly terms: {
|
|
32
32
|
readonly type: "array";
|
|
@@ -44,25 +44,214 @@ export declare function buildKcaLlmJsonSchema(): {
|
|
|
44
44
|
readonly minItems: 2;
|
|
45
45
|
readonly maxItems: 3;
|
|
46
46
|
readonly items: {
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
type: string;
|
|
48
|
+
maxLength: number;
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
51
|
readonly insightBullets: {
|
|
52
52
|
readonly type: "array";
|
|
53
53
|
readonly maxItems: 4;
|
|
54
54
|
readonly items: {
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
type: string;
|
|
56
|
+
maxLength: number;
|
|
57
57
|
};
|
|
58
58
|
};
|
|
59
59
|
readonly shopSearchSummary: {
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
type: string;
|
|
61
|
+
maxLength: number;
|
|
62
62
|
};
|
|
63
63
|
readonly dyadInsight: {
|
|
64
|
+
type: string;
|
|
65
|
+
maxLength: number;
|
|
66
|
+
};
|
|
67
|
+
readonly roomArchetype: {
|
|
68
|
+
readonly type: "object";
|
|
69
|
+
readonly properties: {
|
|
70
|
+
readonly name: {
|
|
71
|
+
type: string;
|
|
72
|
+
maxLength: number;
|
|
73
|
+
};
|
|
74
|
+
readonly description: {
|
|
75
|
+
type: string;
|
|
76
|
+
maxLength: number;
|
|
77
|
+
};
|
|
78
|
+
readonly traits: {
|
|
79
|
+
readonly type: "array";
|
|
80
|
+
readonly maxItems: 4;
|
|
81
|
+
readonly items: {
|
|
82
|
+
readonly type: "string";
|
|
83
|
+
readonly maxLength: 32;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
readonly moments: {
|
|
89
|
+
readonly type: "array";
|
|
90
|
+
readonly maxItems: 5;
|
|
91
|
+
readonly items: {
|
|
92
|
+
readonly type: "object";
|
|
93
|
+
readonly properties: {
|
|
94
|
+
readonly headline: {
|
|
95
|
+
type: string;
|
|
96
|
+
maxLength: number;
|
|
97
|
+
};
|
|
98
|
+
readonly statRef: {
|
|
99
|
+
readonly type: "string";
|
|
100
|
+
readonly maxLength: 80;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
readonly relationshipBeats: {
|
|
106
|
+
readonly type: "array";
|
|
107
|
+
readonly maxItems: 4;
|
|
108
|
+
readonly items: {
|
|
109
|
+
readonly type: "object";
|
|
110
|
+
readonly properties: {
|
|
111
|
+
readonly pair: {
|
|
112
|
+
type: string;
|
|
113
|
+
maxLength: number;
|
|
114
|
+
};
|
|
115
|
+
readonly beat: {
|
|
116
|
+
type: string;
|
|
117
|
+
maxLength: number;
|
|
118
|
+
};
|
|
119
|
+
readonly role: {
|
|
120
|
+
readonly type: "string";
|
|
121
|
+
readonly maxLength: 24;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
readonly episodeCards: {
|
|
127
|
+
readonly type: "array";
|
|
128
|
+
readonly maxItems: 6;
|
|
129
|
+
readonly items: {
|
|
130
|
+
readonly type: "object";
|
|
131
|
+
readonly properties: {
|
|
132
|
+
readonly period: {
|
|
133
|
+
type: string;
|
|
134
|
+
maxLength: number;
|
|
135
|
+
};
|
|
136
|
+
readonly title: {
|
|
137
|
+
type: string;
|
|
138
|
+
maxLength: number;
|
|
139
|
+
};
|
|
140
|
+
readonly tagline: {
|
|
141
|
+
type: string;
|
|
142
|
+
maxLength: number;
|
|
143
|
+
};
|
|
144
|
+
readonly emoji: {
|
|
145
|
+
readonly type: "string";
|
|
146
|
+
readonly maxLength: 4;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
readonly eraLabels: {
|
|
152
|
+
readonly type: "array";
|
|
153
|
+
readonly maxItems: 3;
|
|
154
|
+
readonly items: {
|
|
155
|
+
readonly type: "object";
|
|
156
|
+
readonly properties: {
|
|
157
|
+
readonly label: {
|
|
158
|
+
type: string;
|
|
159
|
+
maxLength: number;
|
|
160
|
+
};
|
|
161
|
+
readonly detail: {
|
|
162
|
+
type: string;
|
|
163
|
+
maxLength: number;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
readonly insideJokes: {
|
|
169
|
+
readonly type: "array";
|
|
170
|
+
readonly maxItems: 5;
|
|
171
|
+
readonly items: {
|
|
172
|
+
readonly type: "object";
|
|
173
|
+
readonly properties: {
|
|
174
|
+
readonly label: {
|
|
175
|
+
type: string;
|
|
176
|
+
maxLength: number;
|
|
177
|
+
};
|
|
178
|
+
readonly whyFunny: {
|
|
179
|
+
type: string;
|
|
180
|
+
maxLength: number;
|
|
181
|
+
};
|
|
182
|
+
readonly evidenceKeywords: {
|
|
183
|
+
readonly type: "array";
|
|
184
|
+
readonly maxItems: 4;
|
|
185
|
+
readonly items: {
|
|
186
|
+
readonly type: "string";
|
|
187
|
+
readonly maxLength: 32;
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
readonly characterCards: {
|
|
194
|
+
readonly type: "array";
|
|
195
|
+
readonly maxItems: 3;
|
|
196
|
+
readonly items: {
|
|
197
|
+
readonly type: "object";
|
|
198
|
+
readonly properties: {
|
|
199
|
+
readonly alias: {
|
|
200
|
+
type: string;
|
|
201
|
+
maxLength: number;
|
|
202
|
+
};
|
|
203
|
+
readonly tagline: {
|
|
204
|
+
type: string;
|
|
205
|
+
maxLength: number;
|
|
206
|
+
};
|
|
207
|
+
readonly statHook: {
|
|
208
|
+
readonly type: "string";
|
|
209
|
+
readonly maxLength: 60;
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
};
|
|
214
|
+
readonly dayMicroStories: {
|
|
215
|
+
readonly type: "array";
|
|
216
|
+
readonly maxItems: 5;
|
|
217
|
+
readonly items: {
|
|
218
|
+
readonly type: "object";
|
|
219
|
+
readonly properties: {
|
|
220
|
+
readonly date: {
|
|
221
|
+
readonly type: "string";
|
|
222
|
+
readonly maxLength: 10;
|
|
223
|
+
};
|
|
224
|
+
readonly line: {
|
|
225
|
+
type: string;
|
|
226
|
+
maxLength: number;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
readonly shareLine: {
|
|
64
232
|
readonly type: "string";
|
|
65
|
-
readonly maxLength:
|
|
233
|
+
readonly maxLength: 160;
|
|
234
|
+
};
|
|
235
|
+
readonly hashtags: {
|
|
236
|
+
readonly type: "array";
|
|
237
|
+
readonly maxItems: 3;
|
|
238
|
+
readonly items: {
|
|
239
|
+
readonly type: "string";
|
|
240
|
+
readonly maxLength: 24;
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
readonly counterfactuals: {
|
|
244
|
+
readonly type: "array";
|
|
245
|
+
readonly maxItems: 2;
|
|
246
|
+
readonly items: {
|
|
247
|
+
readonly type: "object";
|
|
248
|
+
readonly properties: {
|
|
249
|
+
readonly text: {
|
|
250
|
+
type: string;
|
|
251
|
+
maxLength: number;
|
|
252
|
+
};
|
|
253
|
+
};
|
|
254
|
+
};
|
|
66
255
|
};
|
|
67
256
|
};
|
|
68
257
|
};
|