only_ever_generator 8.0.2 → 8.0.4
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/dist/bootstrap/app.d.ts +1 -1
- package/dist/bootstrap/app.d.ts.map +1 -1
- package/dist/bootstrap/app.js +1 -1
- package/dist/bootstrap/app.js.map +1 -1
- package/dist/card_gen/generate_cards.d.ts.map +1 -1
- package/dist/card_gen/generate_cards.js.map +1 -1
- package/dist/index.d.ts +2 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -46
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/bootstrap/app.ts +313 -0
- package/src/card_gen/generate_cards.ts +1 -0
- package/src/index.ts +95 -60
- package/MODULAR_REFACTORING_SUMMARY.md +0 -217
- package/README.md +0 -608
- package/dist/configs/card_generator_config.d.ts +0 -41
- package/dist/configs/card_generator_config.d.ts.map +0 -1
- package/dist/configs/card_generator_config.js +0 -17
- package/dist/configs/card_generator_config.js.map +0 -1
- package/dist/configs/concept_facts_generator_config.d.ts +0 -28
- package/dist/configs/concept_facts_generator_config.d.ts.map +0 -1
- package/dist/configs/concept_facts_generator_config.js +0 -12
- package/dist/configs/concept_facts_generator_config.js.map +0 -1
- package/dist/configs/consolidator_config.d.ts +0 -20
- package/dist/configs/consolidator_config.d.ts.map +0 -1
- package/dist/configs/consolidator_config.js +0 -14
- package/dist/configs/consolidator_config.js.map +0 -1
- package/dist/configs/embedding_generator_config.d.ts +0 -13
- package/dist/configs/embedding_generator_config.d.ts.map +0 -1
- package/dist/configs/embedding_generator_config.js +0 -11
- package/dist/configs/embedding_generator_config.js.map +0 -1
- package/dist/configs/parser_config.d.ts +0 -31
- package/dist/configs/parser_config.d.ts.map +0 -1
- package/dist/configs/parser_config.js +0 -26
- package/dist/configs/parser_config.js.map +0 -1
- package/dist/configs/typology_generator_config.d.ts +0 -26
- package/dist/configs/typology_generator_config.d.ts.map +0 -1
- package/dist/configs/typology_generator_config.js +0 -12
- package/dist/configs/typology_generator_config.js.map +0 -1
- package/dist/consolidation/global_consolidator.d.ts +0 -47
- package/dist/consolidation/global_consolidator.d.ts.map +0 -1
- package/dist/consolidation/global_consolidator.js +0 -94
- package/dist/consolidation/global_consolidator.js.map +0 -1
- package/dist/consolidation/local_consolidator.d.ts +0 -52
- package/dist/consolidation/local_consolidator.d.ts.map +0 -1
- package/dist/consolidation/local_consolidator.js +0 -118
- package/dist/consolidation/local_consolidator.js.map +0 -1
- package/dist/embeddings/embedding_generator.d.ts +0 -30
- package/dist/embeddings/embedding_generator.d.ts.map +0 -1
- package/dist/embeddings/embedding_generator.js +0 -71
- package/dist/embeddings/embedding_generator.js.map +0 -1
- package/dist/generators/card_generator.d.ts +0 -20
- package/dist/generators/card_generator.d.ts.map +0 -1
- package/dist/generators/card_generator.js +0 -239
- package/dist/generators/card_generator.js.map +0 -1
- package/dist/generators/concept_facts_generator.d.ts +0 -18
- package/dist/generators/concept_facts_generator.d.ts.map +0 -1
- package/dist/generators/concept_facts_generator.js +0 -153
- package/dist/generators/concept_facts_generator.js.map +0 -1
- package/dist/generators/typology_generator.d.ts +0 -20
- package/dist/generators/typology_generator.d.ts.map +0 -1
- package/dist/generators/typology_generator.js +0 -184
- package/dist/generators/typology_generator.js.map +0 -1
- package/dist/parsers/card_response_parser.d.ts +0 -16
- package/dist/parsers/card_response_parser.d.ts.map +0 -1
- package/dist/parsers/card_response_parser.js +0 -59
- package/dist/parsers/card_response_parser.js.map +0 -1
- package/dist/parsers/content_parser.d.ts +0 -27
- package/dist/parsers/content_parser.d.ts.map +0 -1
- package/dist/parsers/content_parser.js +0 -66
- package/dist/parsers/content_parser.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -68
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -203
- package/dist/utils/validation.js.map +0 -1
- package/src/configs/card_generator_config.ts +0 -58
- package/src/configs/concept_facts_generator_config.ts +0 -40
- package/src/configs/consolidator_config.ts +0 -33
- package/src/configs/embedding_generator_config.ts +0 -20
- package/src/configs/parser_config.ts +0 -57
- package/src/configs/typology_generator_config.ts +0 -38
- package/src/consolidation/global_consolidator.ts +0 -158
- package/src/consolidation/local_consolidator.ts +0 -173
- package/src/embeddings/embedding_generator.ts +0 -92
- package/src/generators/card_generator.ts +0 -258
- package/src/generators/concept_facts_generator.ts +0 -175
- package/src/generators/typology_generator.ts +0 -208
- package/src/parsers/card_response_parser.ts +0 -63
- package/src/parsers/content_parser.ts +0 -90
- package/src/utils/validation.ts +0 -298
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Standalone EmbeddingGenerator module
|
|
4
|
-
* Generates embeddings for concepts and facts
|
|
5
|
-
*/
|
|
6
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
10
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
11
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
12
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.EmbeddingGenerator = void 0;
|
|
17
|
-
const open_ai_service_1 = require("../services/open_ai_service");
|
|
18
|
-
const embedding_generator_config_1 = require("../configs/embedding_generator_config");
|
|
19
|
-
const validation_1 = require("../utils/validation");
|
|
20
|
-
class EmbeddingGenerator {
|
|
21
|
-
constructor(config) {
|
|
22
|
-
this.validateConfig(config);
|
|
23
|
-
this.config = Object.assign(Object.assign({}, embedding_generator_config_1.DEFAULT_EMBEDDING_GENERATOR_CONFIG), config);
|
|
24
|
-
this.openAiService = new open_ai_service_1.OpenAiService(this.config.apiKey, this.config.model);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Generate embeddings for concepts and facts
|
|
28
|
-
*/
|
|
29
|
-
generateEmbeddings(concepts) {
|
|
30
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const texts = concepts.map((e) => e.text);
|
|
32
|
-
const response = yield this.openAiService.sendEmbeddingRequest(texts);
|
|
33
|
-
if (response.status_code !== 200) {
|
|
34
|
-
console.log(response);
|
|
35
|
-
throw new Error(response.message);
|
|
36
|
-
}
|
|
37
|
-
const embeddings = response.data.data.sort((a) => a.index);
|
|
38
|
-
const model = response.data.model;
|
|
39
|
-
const usage = response.data.usage;
|
|
40
|
-
const embeddings_map = [];
|
|
41
|
-
for (let i = 0; i < concepts.length; i++) {
|
|
42
|
-
embeddings_map.push({
|
|
43
|
-
text: concepts[i].text,
|
|
44
|
-
type: concepts[i].type,
|
|
45
|
-
embedding: embeddings[i].embedding,
|
|
46
|
-
reference: concepts[i].reference,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
concepts_facts: embeddings_map,
|
|
51
|
-
metadata: {
|
|
52
|
-
req_time: new Date().toISOString(),
|
|
53
|
-
req_type: {
|
|
54
|
-
type: "embedding",
|
|
55
|
-
},
|
|
56
|
-
req_tokens: usage.prompt_tokens,
|
|
57
|
-
res_tokens: usage.completion_tokens,
|
|
58
|
-
model: model,
|
|
59
|
-
usage: usage,
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
validateConfig(config) {
|
|
65
|
-
(0, validation_1.validateOpenAIKey)(config.apiKey);
|
|
66
|
-
(0, validation_1.validateOpenAIModel)(config.model);
|
|
67
|
-
(0, validation_1.validateEmbeddingDimensions)(config.dimensions);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
exports.EmbeddingGenerator = EmbeddingGenerator;
|
|
71
|
-
//# sourceMappingURL=embedding_generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedding_generator.js","sourceRoot":"","sources":["../../src/embeddings/embedding_generator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAEH,iEAA4D;AAC5D,sFAG+C;AAC/C,oDAI6B;AAe7B,MAAa,kBAAkB;IAI7B,YAAY,MAAgC;QAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,mCAAQ,+DAAkC,GAAK,MAAM,CAAE,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,+BAAa,CACpC,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CAAC,MAAM,CAAC,KAAM,CACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACG,kBAAkB,CAAC,QAAuB;;YAI9C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAEtE,IAAI,QAAQ,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,MAAM,cAAc,GAA2B,EAAE,CAAC;YAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,cAAc,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;oBACtB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;oBACtB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;oBAClC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,cAAc,EAAE,cAAc;gBAC9B,QAAQ,EAAE;oBACR,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAClC,QAAQ,EAAE;wBACR,IAAI,EAAE,WAAW;qBAClB;oBACD,UAAU,EAAE,KAAK,CAAC,aAAa;oBAC/B,UAAU,EAAE,KAAK,CAAC,iBAAiB;oBACnC,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,KAAK;iBACb;aACF,CAAC;QACJ,CAAC;KAAA;IAEO,cAAc,CAAC,MAAgC;QACrD,IAAA,8BAAiB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAA,gCAAmB,EAAC,MAAM,CAAC,KAAM,CAAC,CAAC;QACnC,IAAA,wCAA2B,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;CACF;AA9DD,gDA8DC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone CardGenerator module
|
|
3
|
-
* Generates learning cards from content and concepts
|
|
4
|
-
*/
|
|
5
|
-
import { CardGeneratorConfig } from "../configs/card_generator_config";
|
|
6
|
-
export declare class CardGenerator {
|
|
7
|
-
private config;
|
|
8
|
-
private openAiService;
|
|
9
|
-
private openAIHelper;
|
|
10
|
-
constructor(config: CardGeneratorConfig);
|
|
11
|
-
/**
|
|
12
|
-
* Generate learning cards from the configured content and concepts
|
|
13
|
-
*/
|
|
14
|
-
generate(): Promise<any>;
|
|
15
|
-
private openAIResponse;
|
|
16
|
-
private parseJson;
|
|
17
|
-
private createSourceTaxonomy;
|
|
18
|
-
private validateConfig;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=card_generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card_generator.d.ts","sourceRoot":"","sources":["../../src/generators/card_generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EACL,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAQ1C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,EAAE,mBAAmB;IAUvC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;YA0FhB,cAAc;IA8E5B,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,cAAc;CAkBvB"}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Standalone CardGenerator module
|
|
4
|
-
* Generates learning cards from content and concepts
|
|
5
|
-
*/
|
|
6
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
10
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
11
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
12
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.CardGenerator = void 0;
|
|
17
|
-
const openai_helper_1 = require("../helper/openai_helper");
|
|
18
|
-
const build_card_schema_1 = require("../helper/schema_helper/build_card_schema");
|
|
19
|
-
const logger_1 = require("../logger");
|
|
20
|
-
const parse_card_response_1 = require("../parse/parse_card_response");
|
|
21
|
-
const open_ai_service_1 = require("../services/open_ai_service");
|
|
22
|
-
const card_generator_config_1 = require("../configs/card_generator_config");
|
|
23
|
-
const validation_1 = require("../utils/validation");
|
|
24
|
-
class CardGenerator {
|
|
25
|
-
constructor(config) {
|
|
26
|
-
this.validateConfig(config);
|
|
27
|
-
this.config = Object.assign(Object.assign({}, card_generator_config_1.DEFAULT_CARD_GENERATOR_CONFIG), config);
|
|
28
|
-
this.openAiService = new open_ai_service_1.OpenAiService(this.config.apiKey, this.config.model);
|
|
29
|
-
this.openAIHelper = new openai_helper_1.OpenAIHelper(this.config.apiKey);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Generate learning cards from the configured content and concepts
|
|
33
|
-
*/
|
|
34
|
-
generate() {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
var _a, _b, _c, _d;
|
|
37
|
-
try {
|
|
38
|
-
console.log("Card generation started");
|
|
39
|
-
const response = yield this.openAIResponse();
|
|
40
|
-
if (!response) {
|
|
41
|
-
yield (0, logger_1.log_error)({
|
|
42
|
-
flow: this.config.generationCurriculum
|
|
43
|
-
? "curriculum_manual_generation"
|
|
44
|
-
: "manual_generation",
|
|
45
|
-
data: JSON.stringify(response),
|
|
46
|
-
timestamp: new Date(),
|
|
47
|
-
error: "empty_openai_response",
|
|
48
|
-
source_id: this.config.content.source_id,
|
|
49
|
-
type: {
|
|
50
|
-
request_type: "depth",
|
|
51
|
-
n: this.config.cardCount || 1,
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
response.metadata = {
|
|
57
|
-
req_time: (_a = response.generated_at) !== null && _a !== void 0 ? _a : new Date(),
|
|
58
|
-
req_type: {
|
|
59
|
-
type: "depth",
|
|
60
|
-
n: this.config.cardCount || 1,
|
|
61
|
-
bloom_level: 1,
|
|
62
|
-
},
|
|
63
|
-
req_tokens: ((_b = response.usage_data) === null || _b === void 0 ? void 0 : _b.prompt_tokens) || 0,
|
|
64
|
-
res_tokens: ((_c = response.usage_data) === null || _c === void 0 ? void 0 : _c.completion_tokens) || 0,
|
|
65
|
-
prompt_tokens_details: (_d = response.usage_data) === null || _d === void 0 ? void 0 : _d.prompt_tokens_details,
|
|
66
|
-
model: response.model,
|
|
67
|
-
};
|
|
68
|
-
if (response.status == "completed") {
|
|
69
|
-
response.metadata.status = "completed";
|
|
70
|
-
const testCardsArray = this.parseJson(response);
|
|
71
|
-
const generated_data = {
|
|
72
|
-
metadata: response.metadata,
|
|
73
|
-
generated_content: {
|
|
74
|
-
test_cards: testCardsArray.map((card) => {
|
|
75
|
-
var _a, _b, _c, _d;
|
|
76
|
-
return {
|
|
77
|
-
type: card.type,
|
|
78
|
-
card_content: card.card_content,
|
|
79
|
-
concepts: (_a = card.concepts) !== null && _a !== void 0 ? _a : [],
|
|
80
|
-
facts: (_b = card.facts) !== null && _b !== void 0 ? _b : [],
|
|
81
|
-
bloom_level: (_c = card.bloom_level) !== null && _c !== void 0 ? _c : 1,
|
|
82
|
-
explanation: (_d = card.explanation) !== null && _d !== void 0 ? _d : "",
|
|
83
|
-
};
|
|
84
|
-
}),
|
|
85
|
-
},
|
|
86
|
-
usage_data: response.usage,
|
|
87
|
-
generated_at: response.created_at,
|
|
88
|
-
status_code: response.status == "completed" ? 200 : 400,
|
|
89
|
-
};
|
|
90
|
-
// Parse the cards using the existing parser
|
|
91
|
-
const parseCard = new parse_card_response_1.ParseCardResponse().parse(generated_data, this.createSourceTaxonomy(), this.config.instructions.bloom === "Level 1-2" ? 1 : 2);
|
|
92
|
-
return parseCard;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
response.metadata.status = "failed";
|
|
96
|
-
response.metadata.err_message = response.message;
|
|
97
|
-
return response;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
catch (e) {
|
|
101
|
-
yield (0, logger_1.log_error)({
|
|
102
|
-
flow: this.config.generationCurriculum
|
|
103
|
-
? "curriculum_manual_generation"
|
|
104
|
-
: "manual_generation",
|
|
105
|
-
data: e,
|
|
106
|
-
timestamp: new Date(),
|
|
107
|
-
error: "error_in_card_generation",
|
|
108
|
-
source_id: this.config.content.source_id,
|
|
109
|
-
type: {
|
|
110
|
-
request_type: "depth",
|
|
111
|
-
n: this.config.cardCount || 1,
|
|
112
|
-
},
|
|
113
|
-
});
|
|
114
|
-
throw e;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
openAIResponse() {
|
|
119
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
-
const concepts = this.config.concepts
|
|
121
|
-
.filter((concept) => concept.type === "concept")
|
|
122
|
-
.map((concept) => concept.text);
|
|
123
|
-
const facts = this.config.concepts
|
|
124
|
-
.filter((fact) => fact.type === "fact")
|
|
125
|
-
.map((fact) => fact.text);
|
|
126
|
-
const schema = yield (0, build_card_schema_1.buildCardSchema)(concepts, facts);
|
|
127
|
-
try {
|
|
128
|
-
let response = yield this.openAIHelper.openAI.responses.create({
|
|
129
|
-
prompt: {
|
|
130
|
-
id: this.config.promptId,
|
|
131
|
-
variables: {
|
|
132
|
-
bloom_level: "1",
|
|
133
|
-
card_types: this.config.instructions.cardTypes,
|
|
134
|
-
bloom_instructions: this.config.instructions.bloom,
|
|
135
|
-
card_instructions: this.config.instructions.bloom,
|
|
136
|
-
card_examples: this.config.instructions.examples,
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
max_output_tokens: 30000,
|
|
140
|
-
input: [
|
|
141
|
-
{
|
|
142
|
-
role: "user",
|
|
143
|
-
content: [
|
|
144
|
-
{ type: "input_text", text: JSON.stringify(this.config.content) },
|
|
145
|
-
],
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
store: true,
|
|
149
|
-
text: {
|
|
150
|
-
format: {
|
|
151
|
-
type: "json_schema",
|
|
152
|
-
name: schema.name,
|
|
153
|
-
strict: schema.strict,
|
|
154
|
-
schema: schema.schema,
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
});
|
|
158
|
-
return response;
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
if (error instanceof logger_1.ParsingError) {
|
|
162
|
-
yield (0, logger_1.log_error)({
|
|
163
|
-
flow: this.config.generationCurriculum
|
|
164
|
-
? "curriculum_manual_generation"
|
|
165
|
-
: "manual_generation",
|
|
166
|
-
data: error,
|
|
167
|
-
timestamp: new Date(),
|
|
168
|
-
error: "parsing_error",
|
|
169
|
-
source_id: this.config.content.source_id,
|
|
170
|
-
type: {
|
|
171
|
-
request_type: "depth",
|
|
172
|
-
n: this.config.cardCount || 1,
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
console.log(error);
|
|
178
|
-
yield (0, logger_1.log_error)({
|
|
179
|
-
flow: this.config.generationCurriculum
|
|
180
|
-
? "curriculum_manual_generation"
|
|
181
|
-
: "manual_generation",
|
|
182
|
-
data: error,
|
|
183
|
-
timestamp: new Date(),
|
|
184
|
-
error: "error_in_card_generation",
|
|
185
|
-
source_id: this.config.content.source_id,
|
|
186
|
-
type: {
|
|
187
|
-
request_type: "depth",
|
|
188
|
-
n: this.config.cardCount || 1,
|
|
189
|
-
},
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
throw error;
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
parseJson(response) {
|
|
197
|
-
try {
|
|
198
|
-
const testCardsArray = JSON.parse(response.output_text).test_cards;
|
|
199
|
-
return testCardsArray;
|
|
200
|
-
}
|
|
201
|
-
catch (e) {
|
|
202
|
-
throw new logger_1.ParsingError("Something went wrong in parsing the json", response);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
createSourceTaxonomy() {
|
|
206
|
-
return {
|
|
207
|
-
concepts_facts: this.config.concepts.map((concept) => ({
|
|
208
|
-
text: concept.text,
|
|
209
|
-
type: concept.type,
|
|
210
|
-
reference: concept.reference,
|
|
211
|
-
id: concept.id,
|
|
212
|
-
})),
|
|
213
|
-
fields: [],
|
|
214
|
-
learn_value: {
|
|
215
|
-
value: 50,
|
|
216
|
-
reason: "Generated for card creation",
|
|
217
|
-
bloom_levels: [],
|
|
218
|
-
bloom_levels_reason: "",
|
|
219
|
-
},
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
validateConfig(config) {
|
|
223
|
-
(0, validation_1.validateOpenAIKey)(config.apiKey);
|
|
224
|
-
(0, validation_1.validateOpenAIModel)(config.model);
|
|
225
|
-
(0, validation_1.validatePromptId)(config.promptId, "prompt ID");
|
|
226
|
-
(0, validation_1.validatePositiveNumber)(config.cardCount || 1, "card count");
|
|
227
|
-
if (!config.content) {
|
|
228
|
-
throw new Error("Content is required");
|
|
229
|
-
}
|
|
230
|
-
if (!config.concepts || config.concepts.length === 0) {
|
|
231
|
-
throw new Error("Concepts are required for card generation");
|
|
232
|
-
}
|
|
233
|
-
if (!config.instructions) {
|
|
234
|
-
throw new Error("Instructions are required");
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
exports.CardGenerator = CardGenerator;
|
|
239
|
-
//# sourceMappingURL=card_generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card_generator.js","sourceRoot":"","sources":["../../src/generators/card_generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone ConceptFactsGenerator module
|
|
3
|
-
* Extracts concepts and facts from content
|
|
4
|
-
*/
|
|
5
|
-
import { ConceptFactsGeneratorConfig } from "../configs/concept_facts_generator_config";
|
|
6
|
-
export declare class ConceptFactsGenerator {
|
|
7
|
-
private config;
|
|
8
|
-
private openAiService;
|
|
9
|
-
private openAIHelper;
|
|
10
|
-
constructor(config: ConceptFactsGeneratorConfig);
|
|
11
|
-
/**
|
|
12
|
-
* Generate concepts and facts from the configured content
|
|
13
|
-
*/
|
|
14
|
-
generate(): Promise<any>;
|
|
15
|
-
private parseJson;
|
|
16
|
-
private validateConfig;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=concept_facts_generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"concept_facts_generator.d.ts","sourceRoot":"","sources":["../../src/generators/concept_facts_generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,2BAA2B,EAE5B,MAAM,2CAA2C,CAAC;AAQnD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,EAAE,2BAA2B;IAU/C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAsG9B,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,cAAc;CAcvB"}
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Standalone ConceptFactsGenerator module
|
|
4
|
-
* Extracts concepts and facts from content
|
|
5
|
-
*/
|
|
6
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
10
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
11
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
12
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.ConceptFactsGenerator = void 0;
|
|
17
|
-
const build_concept_facts_schema_1 = require("../helper/schema_helper/build_concept_facts_schema");
|
|
18
|
-
const openai_helper_1 = require("../helper/openai_helper");
|
|
19
|
-
const open_ai_service_1 = require("../services/open_ai_service");
|
|
20
|
-
const logger_1 = require("../logger");
|
|
21
|
-
const sanitize_strings_1 = require("../utils/sanitize_strings");
|
|
22
|
-
const concept_facts_generator_config_1 = require("../configs/concept_facts_generator_config");
|
|
23
|
-
const validation_1 = require("../utils/validation");
|
|
24
|
-
class ConceptFactsGenerator {
|
|
25
|
-
constructor(config) {
|
|
26
|
-
this.validateConfig(config);
|
|
27
|
-
this.config = Object.assign(Object.assign({}, concept_facts_generator_config_1.DEFAULT_CONCEPT_FACTS_GENERATOR_CONFIG), config);
|
|
28
|
-
this.openAiService = new open_ai_service_1.OpenAiService(this.config.apiKey, this.config.model);
|
|
29
|
-
this.openAIHelper = new openai_helper_1.OpenAIHelper(this.config.apiKey);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Generate concepts and facts from the configured content
|
|
33
|
-
*/
|
|
34
|
-
generate() {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
var _a, _b, _c, _d, _e;
|
|
37
|
-
try {
|
|
38
|
-
const headings = this.config.type === "text"
|
|
39
|
-
? this.config.content.h1_headings || [""]
|
|
40
|
-
: this.config.content.timecodes || [""];
|
|
41
|
-
const schema = yield (0, build_concept_facts_schema_1.buildConceptFactSchema)(headings.length > 0 ? headings : [""], "concept_fact_gen_schema", true);
|
|
42
|
-
const openAiResponse = yield this.openAIHelper.openAI.responses.create({
|
|
43
|
-
prompt: {
|
|
44
|
-
id: this.config.promptId,
|
|
45
|
-
variables: {
|
|
46
|
-
heading_type: this.config.type == "video" ? "timecode" : "h1 heading",
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
max_output_tokens: 30000,
|
|
50
|
-
input: [
|
|
51
|
-
{
|
|
52
|
-
role: "user",
|
|
53
|
-
content: [
|
|
54
|
-
{
|
|
55
|
-
type: "input_text",
|
|
56
|
-
text: JSON.stringify(this.config.content),
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
store: true,
|
|
62
|
-
text: {
|
|
63
|
-
format: {
|
|
64
|
-
type: "json_schema",
|
|
65
|
-
name: schema.name,
|
|
66
|
-
strict: schema.strict,
|
|
67
|
-
schema: schema.schema,
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
if (!openAiResponse) {
|
|
72
|
-
yield (0, logger_1.log_error)({
|
|
73
|
-
flow: this.config.generationCurriculum
|
|
74
|
-
? "curriculum_manual_generation"
|
|
75
|
-
: "manual_generation",
|
|
76
|
-
data: openAiResponse,
|
|
77
|
-
error: "empty_openai_response",
|
|
78
|
-
timestamp: new Date(),
|
|
79
|
-
source_id: this.config.sourceId || "unknown",
|
|
80
|
-
type: {
|
|
81
|
-
request_type: "concept_fact",
|
|
82
|
-
n: 1,
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
openAiResponse.metadata = {
|
|
88
|
-
req_time: (_a = openAiResponse.created) !== null && _a !== void 0 ? _a : new Date(),
|
|
89
|
-
req_type: {
|
|
90
|
-
type: "breadth",
|
|
91
|
-
sub_type: "concept_fact",
|
|
92
|
-
n: 1,
|
|
93
|
-
},
|
|
94
|
-
req_tokens: (_c = (_b = openAiResponse.usage) === null || _b === void 0 ? void 0 : _b.input_tokens) !== null && _c !== void 0 ? _c : 0,
|
|
95
|
-
res_tokens: (_e = (_d = openAiResponse.usage) === null || _d === void 0 ? void 0 : _d.output_tokens) !== null && _e !== void 0 ? _e : 0,
|
|
96
|
-
prompt: openAiResponse.prompt,
|
|
97
|
-
model: this.config.model,
|
|
98
|
-
usage: openAiResponse.usage,
|
|
99
|
-
status: "completed",
|
|
100
|
-
};
|
|
101
|
-
const concepts_facts = this.parseJson(openAiResponse);
|
|
102
|
-
return {
|
|
103
|
-
concepts_facts: concepts_facts,
|
|
104
|
-
metadata: openAiResponse.metadata,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
console.log(error);
|
|
109
|
-
yield (0, logger_1.log_error)({
|
|
110
|
-
flow: this.config.generationCurriculum
|
|
111
|
-
? "curriculum_manual_generation"
|
|
112
|
-
: "manual_generation",
|
|
113
|
-
data: error,
|
|
114
|
-
timestamp: new Date(),
|
|
115
|
-
error: "error_in_concept_facts_generation",
|
|
116
|
-
source_id: this.config.sourceId || "unknown",
|
|
117
|
-
type: {
|
|
118
|
-
request_type: "concept_fact",
|
|
119
|
-
n: 1,
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
throw error;
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
parseJson(response) {
|
|
127
|
-
try {
|
|
128
|
-
const concepts_facts = JSON.parse(response.output_text).concepts_facts;
|
|
129
|
-
if (concepts_facts) {
|
|
130
|
-
return concepts_facts.map((item) => {
|
|
131
|
-
return Object.assign(Object.assign({}, item), { reference: (0, sanitize_strings_1.restoreQuotesInString)(item.reference) });
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
catch (e) {
|
|
136
|
-
throw new logger_1.ParsingError("Something went wrong in parsing the json", response);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
validateConfig(config) {
|
|
140
|
-
(0, validation_1.validateOpenAIKey)(config.apiKey);
|
|
141
|
-
(0, validation_1.validateOpenAIModel)(config.model);
|
|
142
|
-
(0, validation_1.validatePromptId)(config.promptId, "prompt ID");
|
|
143
|
-
(0, validation_1.validateContentType)(config.type);
|
|
144
|
-
if (!config.content) {
|
|
145
|
-
throw new Error("Content is required");
|
|
146
|
-
}
|
|
147
|
-
if (!config.content.title) {
|
|
148
|
-
throw new Error("Content title is required");
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
exports.ConceptFactsGenerator = ConceptFactsGenerator;
|
|
153
|
-
//# sourceMappingURL=concept_facts_generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"concept_facts_generator.js","sourceRoot":"","sources":["../../src/generators/concept_facts_generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone TypologyGenerator module
|
|
3
|
-
* Analyzes content and determines learning value and classification
|
|
4
|
-
*/
|
|
5
|
-
import { TypologyGeneratorConfig } from "../configs/typology_generator_config";
|
|
6
|
-
export declare class TypologyGenerator {
|
|
7
|
-
private config;
|
|
8
|
-
private openAiService;
|
|
9
|
-
private openAIHelper;
|
|
10
|
-
constructor(config: TypologyGeneratorConfig);
|
|
11
|
-
/**
|
|
12
|
-
* Generate typology analysis for the configured content
|
|
13
|
-
*/
|
|
14
|
-
generate(): Promise<any>;
|
|
15
|
-
private parseTypologyOnSuccess;
|
|
16
|
-
private parseJson;
|
|
17
|
-
private parseFields;
|
|
18
|
-
private validateConfig;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=typology_generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typology_generator.d.ts","sourceRoot":"","sources":["../../src/generators/typology_generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,uBAAuB,EAExB,MAAM,sCAAsC,CAAC;AAQ9C,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,EAAE,uBAAuB;IAU3C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IA0G9B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;CAcvB"}
|