@graphext/cuery 0.5.1 → 0.5.2
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/esm/src/api.d.ts +32 -0
- package/esm/src/api.d.ts.map +1 -1
- package/esm/src/api.js +25 -0
- package/package.json +1 -1
- package/script/src/api.d.ts +32 -0
- package/script/src/api.d.ts.map +1 -1
- package/script/src/api.js +27 -0
package/esm/src/api.d.ts
CHANGED
|
@@ -25,6 +25,38 @@ export type EnrichedModelResponse = {
|
|
|
25
25
|
};
|
|
26
26
|
export declare function queryModel(prompts: Array<string | JobId>, model: ModelIdentifier, searchCountry?: string | null): Promise<Array<ModelResponse>>;
|
|
27
27
|
export declare function classifyIntent(texts: Array<string>): Promise<Array<string | null>>;
|
|
28
|
+
export declare function extractTopics(params: {
|
|
29
|
+
records: Array<Record<string, unknown>>;
|
|
30
|
+
maxSamples?: number;
|
|
31
|
+
instructions?: string;
|
|
32
|
+
language?: string;
|
|
33
|
+
model?: string;
|
|
34
|
+
}): Promise<{
|
|
35
|
+
topics: {
|
|
36
|
+
topic: string;
|
|
37
|
+
subtopics: string[];
|
|
38
|
+
}[];
|
|
39
|
+
} | null>;
|
|
40
|
+
export declare function generatePersonas(params: {
|
|
41
|
+
sector: string;
|
|
42
|
+
market: string;
|
|
43
|
+
language: string;
|
|
44
|
+
brand?: string;
|
|
45
|
+
brandDomain?: string;
|
|
46
|
+
count?: number;
|
|
47
|
+
briefing?: string;
|
|
48
|
+
instructions?: string;
|
|
49
|
+
userLanguage?: string;
|
|
50
|
+
personas?: Array<Persona>;
|
|
51
|
+
model?: string;
|
|
52
|
+
}): Promise<{
|
|
53
|
+
personas: {
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
keywordSeeds: string[];
|
|
57
|
+
}[];
|
|
58
|
+
explanation: string;
|
|
59
|
+
} | null>;
|
|
28
60
|
export declare function extractAndAssignTopics(texts: Array<string>): Promise<Array<{
|
|
29
61
|
topic: string | null;
|
|
30
62
|
subtopic: string | null;
|
package/esm/src/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/src/api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAIlG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/src/api.ts"],"names":[],"mappings":"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"}
|
package/esm/src/api.js
CHANGED
|
@@ -8,6 +8,7 @@ import { funnelToTopics } from './tools/funnel.js';
|
|
|
8
8
|
import { cleanColumnName } from './helpers/utils.js';
|
|
9
9
|
import { Scorer } from './tools/scorer.js';
|
|
10
10
|
import { TopicExtractor, TopicAssigner } from './tools/topics.js';
|
|
11
|
+
import { PersonaGenerator } from './tools/personas.js';
|
|
11
12
|
import { dedent } from './helpers/utils.js';
|
|
12
13
|
export async function queryModel(prompts, model, searchCountry = null) {
|
|
13
14
|
let searchResults;
|
|
@@ -63,6 +64,30 @@ export async function classifyIntent(texts) {
|
|
|
63
64
|
const intents = await classifier.batch(textRecords);
|
|
64
65
|
return intents.toArray();
|
|
65
66
|
}
|
|
67
|
+
export async function extractTopics(params) {
|
|
68
|
+
const extractor = new TopicExtractor({
|
|
69
|
+
maxSamples: params.maxSamples,
|
|
70
|
+
instructions: params.instructions,
|
|
71
|
+
language: params.language
|
|
72
|
+
}, { model: params.model ?? 'gpt-4.1-mini' });
|
|
73
|
+
const result = await extractor.invoke(params.records);
|
|
74
|
+
return result.parsed;
|
|
75
|
+
}
|
|
76
|
+
export async function generatePersonas(params) {
|
|
77
|
+
const generator = new PersonaGenerator({
|
|
78
|
+
sector: params.sector,
|
|
79
|
+
market: params.market,
|
|
80
|
+
language: params.language,
|
|
81
|
+
brand: params.brand,
|
|
82
|
+
brandDomain: params.brandDomain,
|
|
83
|
+
count: params.count,
|
|
84
|
+
briefing: params.briefing,
|
|
85
|
+
instructions: params.instructions,
|
|
86
|
+
userLanguage: params.userLanguage
|
|
87
|
+
}, { model: params.model ?? 'gpt-4.1' });
|
|
88
|
+
const result = await generator.invoke(params.personas ?? null);
|
|
89
|
+
return result.parsed;
|
|
90
|
+
}
|
|
66
91
|
export async function extractAndAssignTopics(texts) {
|
|
67
92
|
console.log('Identifying topics...');
|
|
68
93
|
const textRecords = texts.map(text => ({ text }));
|
package/package.json
CHANGED
package/script/src/api.d.ts
CHANGED
|
@@ -25,6 +25,38 @@ export type EnrichedModelResponse = {
|
|
|
25
25
|
};
|
|
26
26
|
export declare function queryModel(prompts: Array<string | JobId>, model: ModelIdentifier, searchCountry?: string | null): Promise<Array<ModelResponse>>;
|
|
27
27
|
export declare function classifyIntent(texts: Array<string>): Promise<Array<string | null>>;
|
|
28
|
+
export declare function extractTopics(params: {
|
|
29
|
+
records: Array<Record<string, unknown>>;
|
|
30
|
+
maxSamples?: number;
|
|
31
|
+
instructions?: string;
|
|
32
|
+
language?: string;
|
|
33
|
+
model?: string;
|
|
34
|
+
}): Promise<{
|
|
35
|
+
topics: {
|
|
36
|
+
topic: string;
|
|
37
|
+
subtopics: string[];
|
|
38
|
+
}[];
|
|
39
|
+
} | null>;
|
|
40
|
+
export declare function generatePersonas(params: {
|
|
41
|
+
sector: string;
|
|
42
|
+
market: string;
|
|
43
|
+
language: string;
|
|
44
|
+
brand?: string;
|
|
45
|
+
brandDomain?: string;
|
|
46
|
+
count?: number;
|
|
47
|
+
briefing?: string;
|
|
48
|
+
instructions?: string;
|
|
49
|
+
userLanguage?: string;
|
|
50
|
+
personas?: Array<Persona>;
|
|
51
|
+
model?: string;
|
|
52
|
+
}): Promise<{
|
|
53
|
+
personas: {
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
keywordSeeds: string[];
|
|
57
|
+
}[];
|
|
58
|
+
explanation: string;
|
|
59
|
+
} | null>;
|
|
28
60
|
export declare function extractAndAssignTopics(texts: Array<string>): Promise<Array<{
|
|
29
61
|
topic: string | null;
|
|
30
62
|
subtopic: string | null;
|
package/script/src/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/src/api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAIlG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/src/api.ts"],"names":[],"mappings":"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"}
|
package/script/src/api.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.queryModel = queryModel;
|
|
4
4
|
exports.classifyIntent = classifyIntent;
|
|
5
|
+
exports.extractTopics = extractTopics;
|
|
6
|
+
exports.generatePersonas = generatePersonas;
|
|
5
7
|
exports.extractAndAssignTopics = extractAndAssignTopics;
|
|
6
8
|
exports.assignFunnelStages = assignFunnelStages;
|
|
7
9
|
exports.classifyIntoPersonas = classifyIntoPersonas;
|
|
@@ -19,6 +21,7 @@ const funnel_js_1 = require("./tools/funnel.js");
|
|
|
19
21
|
const utils_js_1 = require("./helpers/utils.js");
|
|
20
22
|
const scorer_js_1 = require("./tools/scorer.js");
|
|
21
23
|
const topics_js_1 = require("./tools/topics.js");
|
|
24
|
+
const personas_js_1 = require("./tools/personas.js");
|
|
22
25
|
const utils_js_2 = require("./helpers/utils.js");
|
|
23
26
|
async function queryModel(prompts, model, searchCountry = null) {
|
|
24
27
|
let searchResults;
|
|
@@ -74,6 +77,30 @@ async function classifyIntent(texts) {
|
|
|
74
77
|
const intents = await classifier.batch(textRecords);
|
|
75
78
|
return intents.toArray();
|
|
76
79
|
}
|
|
80
|
+
async function extractTopics(params) {
|
|
81
|
+
const extractor = new topics_js_1.TopicExtractor({
|
|
82
|
+
maxSamples: params.maxSamples,
|
|
83
|
+
instructions: params.instructions,
|
|
84
|
+
language: params.language
|
|
85
|
+
}, { model: params.model ?? 'gpt-4.1-mini' });
|
|
86
|
+
const result = await extractor.invoke(params.records);
|
|
87
|
+
return result.parsed;
|
|
88
|
+
}
|
|
89
|
+
async function generatePersonas(params) {
|
|
90
|
+
const generator = new personas_js_1.PersonaGenerator({
|
|
91
|
+
sector: params.sector,
|
|
92
|
+
market: params.market,
|
|
93
|
+
language: params.language,
|
|
94
|
+
brand: params.brand,
|
|
95
|
+
brandDomain: params.brandDomain,
|
|
96
|
+
count: params.count,
|
|
97
|
+
briefing: params.briefing,
|
|
98
|
+
instructions: params.instructions,
|
|
99
|
+
userLanguage: params.userLanguage
|
|
100
|
+
}, { model: params.model ?? 'gpt-4.1' });
|
|
101
|
+
const result = await generator.invoke(params.personas ?? null);
|
|
102
|
+
return result.parsed;
|
|
103
|
+
}
|
|
77
104
|
async function extractAndAssignTopics(texts) {
|
|
78
105
|
console.log('Identifying topics...');
|
|
79
106
|
const textRecords = texts.map(text => ({ text }));
|