only_ever_generator 8.0.10 → 8.1.1

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.
Files changed (28) hide show
  1. package/dist/helper/schema_helper/build_summary_schema.d.ts +2 -0
  2. package/dist/helper/schema_helper/build_summary_schema.d.ts.map +1 -0
  3. package/dist/helper/schema_helper/build_summary_schema.js +47 -0
  4. package/dist/helper/schema_helper/build_summary_schema.js.map +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +50 -140
  7. package/dist/index.js.map +1 -1
  8. package/dist/parse/parse_card/parse_cloze_card.d.ts +1 -15
  9. package/dist/parse/parse_card/parse_cloze_card.d.ts.map +1 -1
  10. package/dist/parse/parse_card/parse_cloze_card.js +2 -2
  11. package/dist/parse/parse_card/parse_cloze_card.js.map +1 -1
  12. package/dist/parse/parse_card/parse_match_card.d.ts +1 -12
  13. package/dist/parse/parse_card/parse_match_card.d.ts.map +1 -1
  14. package/dist/parse/parse_card/parse_match_card.js +6 -6
  15. package/dist/parse/parse_card/parse_match_card.js.map +1 -1
  16. package/dist/parse/parse_card/parse_mcq_card.js +18 -16
  17. package/dist/parse/parse_card/parse_mcq_card.js.map +1 -1
  18. package/dist/typology_gen/summarize.d.ts +28 -0
  19. package/dist/typology_gen/summarize.d.ts.map +1 -0
  20. package/dist/typology_gen/summarize.js +136 -0
  21. package/dist/typology_gen/summarize.js.map +1 -0
  22. package/package.json +1 -1
  23. package/src/helper/schema_helper/build_summary_schema.ts +43 -0
  24. package/src/index.ts +40 -156
  25. package/src/parse/parse_card/parse_cloze_card.ts +2 -2
  26. package/src/parse/parse_card/parse_match_card.ts +7 -6
  27. package/src/parse/parse_card/parse_mcq_card.ts +17 -17
  28. package/src/typology_gen/summarize.ts +162 -0
@@ -0,0 +1,2 @@
1
+ export declare function buildSummarySchema(headings: string[], name?: string, strict?: boolean): Promise<any>;
2
+ //# sourceMappingURL=build_summary_schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build_summary_schema.d.ts","sourceRoot":"","sources":["../../../src/helper/schema_helper/build_summary_schema.ts"],"names":[],"mappings":"AAIA,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,GAAE,MAAwB,EAC9B,MAAM,GAAE,OAAc,gBAmCvB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildSummarySchema = buildSummarySchema;
13
+ const sanitize_strings_1 = require("../../utils/sanitize_strings");
14
+ const mongo_helper_1 = require("../mongo_helper");
15
+ // Function to populate enums in a parsed schema
16
+ function buildSummarySchema(headings_1) {
17
+ return __awaiter(this, arguments, void 0, function* (headings, name = "summary_cards", strict = true) {
18
+ var _a, _b, _c, _d, _e, _f;
19
+ (0, mongo_helper_1.setUp)();
20
+ const objectId = new mongo_helper_1.ObjectId("690ae043116a8c929f3a4cd5");
21
+ const schemaObj = yield mongo_helper_1.database.collection("_prompts").findOne({
22
+ _id: objectId,
23
+ });
24
+ if (!schemaObj) {
25
+ throw new Error("Schema not found");
26
+ }
27
+ const schema = schemaObj.schema;
28
+ if (!schema) {
29
+ throw new Error("Schema not found");
30
+ }
31
+ // Deep clone to avoid mutating the original
32
+ const populatedSchema = JSON.parse(schema);
33
+ // Update name and strict mode
34
+ populatedSchema.name = name;
35
+ populatedSchema.strict = strict;
36
+ // Sanitize headings to remove quotes for OpenAI structured outputs
37
+ const sanitizedStrings = (0, sanitize_strings_1.sanitizeStringsForSchema)(headings);
38
+ // Type-safe enum population for reference field in summary_cards items
39
+ // This populates the enum for cards 2-N (takeaway cards)
40
+ if ((_f = (_e = (_d = (_c = (_b = (_a = populatedSchema.schema) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.summary_cards) === null || _c === void 0 ? void 0 : _c.items) === null || _d === void 0 ? void 0 : _d.properties) === null || _e === void 0 ? void 0 : _e.reference) === null || _f === void 0 ? void 0 : _f.enum) {
41
+ populatedSchema.schema.properties.summary_cards.items.properties.reference.enum =
42
+ sanitizedStrings;
43
+ }
44
+ return populatedSchema;
45
+ });
46
+ }
47
+ //# sourceMappingURL=build_summary_schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build_summary_schema.js","sourceRoot":"","sources":["../../../src/helper/schema_helper/build_summary_schema.ts"],"names":[],"mappings":";;;;;;;;;;;AAIA,gDAsCC;AA1CD,mEAAwE;AACxE,kDAA4D;AAE5D,gDAAgD;AAChD,SAAsB,kBAAkB;yDACtC,QAAkB,EAClB,OAAe,eAAe,EAC9B,SAAkB,IAAI;;QAEtB,IAAA,oBAAK,GAAE,CAAC;QACR,MAAM,QAAQ,GAAG,IAAI,uBAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,uBAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC9D,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,4CAA4C;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,8BAA8B;QAC9B,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5B,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;QAEhC,mEAAmE;QACnE,MAAM,gBAAgB,GAAG,IAAA,2CAAwB,EAAC,QAAQ,CAAC,CAAC;QAE5D,uEAAuE;QACvE,yDAAyD;QACzD,IACE,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,eAAe,CAAC,MAAM,0CAAE,UAAU,0CAAE,aAAa,0CAAE,KAAK,0CAAE,UAAU,0CAChE,SAAS,0CAAE,IAAI,EACnB,CAAC;YACD,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;gBAC7E,gBAAgB,CAAC;QACrB,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAsBpD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAyBpD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,147 +1,57 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.OnlyEverGenerator = void 0;
16
+ const mongodb_1 = require("mongodb");
4
17
  const app_1 = require("./bootstrap/app");
5
18
  Object.defineProperty(exports, "OnlyEverGenerator", { enumerable: true, get: function () { return app_1.OnlyEverGenerator; } });
19
+ const open_ai_service_1 = require("./services/open_ai_service");
20
+ const summarize_1 = require("./typology_gen/summarize");
21
+ const mongo_helper_1 = require("./helper/mongo_helper");
22
+ // import { LocalConsolidation } from "./embedding_generation/consolidation/local_consolidation";
23
+ // import { embeddingsResp } from "./typology-parsed-response";
24
+ // import { GlobalConsolidation } from "./embedding_generation/consolidation/global_consolidation";
25
+ // import { ParseEmbeddingResponse } from "./embedding_generation/parse_embedding_response";
26
+ // import { OpenAIHelper } from "./helper/openai_helper";
27
+ // import { GenerateTypology } from "./typology_gen/generate_typology";
28
+ // import { OpenAiService } from "./services/open_ai_service";
29
+ // import { GenerateConceptFacts } from "./typology_gen/generate_concept_facts";
30
+ // import { BaseParamType } from "./types/base_param_type";
31
+ // import dotenv from "dotenv";
32
+ const express_1 = __importDefault(require("express"));
33
+ const app = (0, express_1.default)();
34
+ const port = 3000;
6
35
  // dotenv.config();
7
- // app.get("/generate", async (req, res) => {
8
- // try {
9
- // const openAIKey =
10
- // "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";
11
- // const promptForSummary = {
12
- // promptId: "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
13
- // // version: "13",
14
- // };
15
- // const promptForConceptFacts = {
16
- // promptId: "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
17
- // // version: "6",
18
- // };
19
- // setUp();
20
- // const source = await database.collection("_source").findOne({
21
- // _id: new ObjectId("68b114fdce5ca556db39fd12"),
22
- // });
23
- // const contentForGen = {
24
- // prompt: {
25
- // typology: "",
26
- // card_generation: "",
27
- // },
28
- // content: {
29
- // source_id: source?._id?.toString() || "",
30
- // title: source?.title || "",
31
- // type: source?.source_type || "",
32
- // headings: source?.headings || [],
33
- // content: source?.content || [],
34
- // fields: source?.fields || [],
35
- // taxonomy: source?.learn_value
36
- // ? {
37
- // generate_cards: source?.generate_cards || {
38
- // state: false,
39
- // reason: "",
40
- // },
41
- // concepts_facts: source?.concepts_facts || [],
42
- // fields: source?.fields || [],
43
- // learn_value: source?.learn_value || {
44
- // value: 0,
45
- // reason: "",
46
- // bloom_levels: [],
47
- // bloom_levels_reason: "",
48
- // },
49
- // }
50
- // : undefined,
51
- // },
52
- // };
53
- // const prompts = await getPrompts("text");
54
- // const bloomInstructions = prompts.bloom_instructions;
55
- // const cardInstructions = prompts.card_instructions;
56
- // const cardExamples = prompts.card_examples;
57
- // console.log("Initializing OnlyEverGenerator");
58
- // const onlyEverGenerator = new OnlyEverGenerator(
59
- // process.env.OPEN_AI_KEY as string,
60
- // "o4-mini",
61
- // contentForGen,
62
- // "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
63
- // "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
64
- // "pmpt_688118a923e4819098176a13a2f401920d2ea17d881cc6c6",
65
- // {
66
- // bloom_instructions: bloomInstructions,
67
- // card_instructions: cardInstructions,
68
- // card_examples: cardExamples,
69
- // },
70
- // false,
71
- // 0
72
- // );
73
- // const response = await onlyEverGenerator.generate(false, true);
74
- // res.send(response);
75
- // } catch (error) {
76
- // res.status(500).send(error);
77
- // }
78
- // });
79
- // app.listen(port, () => {
80
- // console.log(`Server is running on port ${port}`);
81
- // });
82
- // (async () => {
83
- // const promptForSummary = {
84
- // promptId: "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
85
- // // version: "13",
86
- // };
87
- // const promptForConceptFacts = {
88
- // promptId: "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
89
- // // version: "6",
90
- // };
91
- // setUp();
92
- // const source = await database.collection("_source").findOne({
93
- // _id: new ObjectId("68b114cdf23998242ce03235"),
94
- // });
95
- // const contentForGen = {
96
- // prompt: {
97
- // typology: "",
98
- // card_generation: "",
99
- // },
100
- // content: {
101
- // source_id: source?._id?.toString() || "",
102
- // title: source?.title || "",
103
- // type: source?.source_type || "",
104
- // headings: source?.headings || [],
105
- // content: source?.content || [],
106
- // fields: source?.fields || [],
107
- // taxonomy: source?.learn_value
108
- // ? {
109
- // generate_cards: source?.generate_cards || {
110
- // state: false,
111
- // reason: "",
112
- // },
113
- // concepts_facts: source?.concepts_facts || [],
114
- // fields: source?.fields || [],
115
- // learn_value: source?.learn_value || {
116
- // value: 0,
117
- // reason: "",
118
- // bloom_levels: [],
119
- // bloom_levels_reason: "",
120
- // },
121
- // }
122
- // : undefined,
123
- // },
124
- // };
125
- // const prompts = await getPrompts("text");
126
- // const bloomInstructions = prompts.bloom_instructions;
127
- // const cardInstructions = prompts.card_instructions;
128
- // const cardExamples = prompts.card_examples;
129
- // console.log("Initializing OnlyEverGenerator");
130
- // const onlyEverGenerator = new OnlyEverGenerator(
131
- // process.env.OPEN_AI_KEY as string,
132
- // "o4-mini",
133
- // contentForGen,
134
- // "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
135
- // "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
136
- // "pmpt_688118a923e4819098176a13a2f401920d2ea17d881cc6c6",
137
- // {
138
- // bloom_instructions: bloomInstructions,
139
- // card_instructions: cardInstructions,
140
- // card_examples: cardExamples,
141
- // },
142
- // false
143
- // );
144
- // const response = await onlyEverGenerator.generate(true, false);
145
- // console.log(response);
146
- // })();
36
+ app.listen(port, () => {
37
+ console.log(`Server is running on port ${port}`);
38
+ });
39
+ app.get("/summarize", (req, res) => __awaiter(void 0, void 0, void 0, function* () {
40
+ (0, mongo_helper_1.setUp)();
41
+ const promptIdForSummaryCards = "pmpt_6902c30a973481968395935cc6dfa78605f50d2b01d4afbd";
42
+ const sourceId = "68b114dac849a25097ed1778";
43
+ const source = yield mongo_helper_1.database
44
+ .collection("_source")
45
+ .findOne({ _id: new mongodb_1.ObjectId(sourceId) });
46
+ const content = {
47
+ title: source === null || source === void 0 ? void 0 : source.title,
48
+ h1_headings: source === null || source === void 0 ? void 0 : source.headings,
49
+ content: source === null || source === void 0 ? void 0 : source.content,
50
+ };
51
+ const openAiService = new open_ai_service_1.OpenAiService(process.env.OPEN_AI_KEY || "", "gpt-5-mini");
52
+ const summarize = new summarize_1.GenerateSummaryCards(openAiService, sourceId, content, "text", promptIdForSummaryCards, false);
53
+ const summaryCards = yield summarize.generate();
54
+ console.log(summaryCards);
55
+ res.json(summaryCards);
56
+ }));
147
57
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAoD;AAsB3C,kGAtBA,uBAAiB,OAsBA;AAC1B,mBAAmB;AAEnB,6CAA6C;AAC7C,UAAU;AACV,wBAAwB;AACxB,gLAAgL;AAChL,iCAAiC;AACjC,2EAA2E;AAC3E,0BAA0B;AAC1B,SAAS;AACT,sCAAsC;AACtC,2EAA2E;AAC3E,yBAAyB;AACzB,SAAS;AAET,eAAe;AAEf,oEAAoE;AACpE,uDAAuD;AACvD,UAAU;AAEV,8BAA8B;AAC9B,kBAAkB;AAClB,wBAAwB;AACxB,+BAA+B;AAC/B,WAAW;AACX,mBAAmB;AACnB,oDAAoD;AACpD,sCAAsC;AACtC,2CAA2C;AAC3C,4CAA4C;AAC5C,0CAA0C;AAC1C,wCAAwC;AACxC,wCAAwC;AACxC,gBAAgB;AAChB,4DAA4D;AAC5D,gCAAgC;AAChC,8BAA8B;AAC9B,mBAAmB;AACnB,8DAA8D;AAC9D,8CAA8C;AAC9C,sDAAsD;AACtD,4BAA4B;AAC5B,8BAA8B;AAC9B,oCAAoC;AACpC,2CAA2C;AAC3C,mBAAmB;AACnB,gBAAgB;AAChB,yBAAyB;AACzB,WAAW;AACX,SAAS;AACT,gDAAgD;AAChD,4DAA4D;AAC5D,0DAA0D;AAC1D,kDAAkD;AAElD,qDAAqD;AACrD,uDAAuD;AACvD,2CAA2C;AAC3C,mBAAmB;AACnB,uBAAuB;AAEvB,iEAAiE;AACjE,iEAAiE;AACjE,iEAAiE;AACjE,UAAU;AACV,iDAAiD;AACjD,+CAA+C;AAC/C,uCAAuC;AACvC,WAAW;AACX,eAAe;AACf,UAAU;AACV,SAAS;AACT,sEAAsE;AAEtE,0BAA0B;AAC1B,sBAAsB;AACtB,mCAAmC;AACnC,MAAM;AACN,MAAM;AAEN,2BAA2B;AAC3B,sDAAsD;AACtD,MAAM;AAEN,iBAAiB;AACjB,+BAA+B;AAC/B,yEAAyE;AACzE,wBAAwB;AACxB,OAAO;AACP,oCAAoC;AACpC,yEAAyE;AACzE,uBAAuB;AACvB,OAAO;AAEP,aAAa;AAEb,kEAAkE;AAClE,qDAAqD;AACrD,QAAQ;AAER,4BAA4B;AAC5B,gBAAgB;AAChB,sBAAsB;AACtB,6BAA6B;AAC7B,SAAS;AACT,iBAAiB;AACjB,kDAAkD;AAClD,oCAAoC;AACpC,yCAAyC;AACzC,0CAA0C;AAC1C,wCAAwC;AACxC,sCAAsC;AACtC,sCAAsC;AACtC,cAAc;AACd,0DAA0D;AAC1D,8BAA8B;AAC9B,4BAA4B;AAC5B,iBAAiB;AACjB,4DAA4D;AAC5D,4CAA4C;AAC5C,oDAAoD;AACpD,0BAA0B;AAC1B,4BAA4B;AAC5B,kCAAkC;AAClC,yCAAyC;AACzC,iBAAiB;AACjB,cAAc;AACd,uBAAuB;AACvB,SAAS;AACT,OAAO;AACP,8CAA8C;AAC9C,0DAA0D;AAC1D,wDAAwD;AACxD,gDAAgD;AAEhD,mDAAmD;AACnD,qDAAqD;AACrD,yCAAyC;AACzC,iBAAiB;AACjB,qBAAqB;AAErB,+DAA+D;AAC/D,+DAA+D;AAC/D,+DAA+D;AAC/D,QAAQ;AACR,+CAA+C;AAC/C,6CAA6C;AAC7C,qCAAqC;AACrC,SAAS;AACT,YAAY;AACZ,OAAO;AACP,oEAAoE;AACpE,2BAA2B;AAC3B,QAAQ"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAmC;AACnC,yCAAoD;AAyB3C,kGAzBA,uBAAiB,OAyBA;AAxB1B,gEAA2D;AAC3D,wDAAgE;AAChE,wDAAwD;AACxD,iGAAiG;AACjG,+DAA+D;AAC/D,mGAAmG;AACnG,4FAA4F;AAC5F,yDAAyD;AACzD,uEAAuE;AACvE,8DAA8D;AAC9D,gFAAgF;AAChF,2DAA2D;AAC3D,+BAA+B;AAC/B,sDAA8B;AAC9B,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AACtB,MAAM,IAAI,GAAG,IAAI,CAAC;AAUlB,mBAAmB;AAEnB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;IACvC,IAAA,oBAAK,GAAE,CAAC;IACR,MAAM,uBAAuB,GAC3B,uDAAuD,CAAC;IAC1D,MAAM,QAAQ,GAAG,0BAA0B,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,uBAAQ;SAC1B,UAAU,CAAC,SAAS,CAAC;SACrB,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,kBAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK;QACpB,WAAW,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ;QAC7B,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;KACzB,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,+BAAa,CACrC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAC7B,YAAY,CACb,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,gCAAoB,CACxC,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,uBAAuB,EACvB,KAAK,CACN,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzB,CAAC,CAAA,CAAC,CAAC"}
@@ -7,21 +7,7 @@ export declare class ParseClozeCard {
7
7
  concepts_facts: MongoConceptFactCards[];
8
8
  bloom_level: number;
9
9
  explanation: string;
10
- }): {
11
- type: {
12
- category: string;
13
- sub_type: string;
14
- };
15
- heading: string;
16
- displayTitle: string;
17
- content: {
18
- question: string;
19
- options: any[];
20
- };
21
- concepts_facts: MongoConceptFactCards[];
22
- bloom_level: number;
23
- explanation: string;
24
- } | null;
10
+ }): any;
25
11
  _generateClozeCardDisplayTitle(question: string, answers: Array<any>): string;
26
12
  _prepareQuestionAndCorrectAnswers(rawPrompt: String, correctOptions: Array<any>): {
27
13
  prompt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"parse_cloze_card.d.ts","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_cloze_card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAE5G,qBAAa,cAAc;IACzB,KAAK,CAAC,IAAI,EAAE;QACV,YAAY,EAAE,wBAAwB,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,qBAAqB,EAAE,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB;;;;;;;;;;;;;;;IAiDD,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;IAsBpE,iCAAiC,CAC/B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC;;;;IA4B5B,cAAc,CAAC,SAAS,EAAE,GAAG;CAkC9B"}
1
+ {"version":3,"file":"parse_cloze_card.d.ts","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_cloze_card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAE5G,qBAAa,cAAc;IACzB,KAAK,CAAC,IAAI,EAAE;QACV,YAAY,EAAE,wBAAwB,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,qBAAqB,EAAE,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB;IAiDD,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;IAsBpE,iCAAiC,CAC/B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC;;;;IA4B5B,cAAc,CAAC,SAAS,EAAE,GAAG;CAkC9B"}
@@ -37,8 +37,8 @@ class ParseClozeCard {
37
37
  bloom_level: data.bloom_level,
38
38
  explanation: data.explanation,
39
39
  };
40
- // return this._validateCloze(clozeCardData);
41
- return clozeCardData;
40
+ return this._validateCloze(clozeCardData);
41
+ // return clozeCardData;
42
42
  }
43
43
  catch (e) {
44
44
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"parse_cloze_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_cloze_card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse_cloze_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_cloze_card.ts"],"names":[],"mappings":"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"}
@@ -15,18 +15,7 @@ export declare class ParseMatchCard {
15
15
  concepts_facts: MongoConceptFactCards[];
16
16
  bloom_level: number;
17
17
  explanation: string;
18
- }): {
19
- type: {
20
- category: string;
21
- sub_type: string;
22
- };
23
- heading: string;
24
- content: OutputItem[];
25
- displayTitle: string;
26
- concepts_facts: MongoConceptFactCards[];
27
- bloom_level: number;
28
- explanation: string;
29
- } | null;
18
+ }): any;
30
19
  _generateMatchCardDisplayTitle(answers: any): string;
31
20
  _parseMatchContent: (input: InputItem[]) => OutputItem[];
32
21
  _validateMatch(matchCard: any): any;
@@ -1 +1 @@
1
- {"version":3,"file":"parse_match_card.d.ts","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_match_card.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,KAAK,SAAS,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,cAAc;IACzB,KAAK,CAAC,QAAQ,EAAE;QACd,YAAY,EAAE,wBAAwB,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,qBAAqB,EAAE,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB;;;;;;;;;;;;IA2BD,8BAA8B,CAAC,OAAO,EAAE,GAAG;IAc3C,kBAAkB,GAAI,OAAO,SAAS,EAAE,KAAG,UAAU,EAAE,CAarD;IAEF,cAAc,CAAC,SAAS,EAAE,GAAG;CAyB9B"}
1
+ {"version":3,"file":"parse_match_card.d.ts","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_match_card.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,KAAK,SAAS,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,cAAc;IACzB,KAAK,CAAC,QAAQ,EAAE;QACd,YAAY,EAAE,wBAAwB,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,qBAAqB,EAAE,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB;IA2BD,8BAA8B,CAAC,OAAO,EAAE,GAAG;IAc3C,kBAAkB,GAAI,OAAO,SAAS,EAAE,KAAG,UAAU,EAAE,CAarD;IAEF,cAAc,CAAC,SAAS,EAAE,GAAG;CA0B9B"}
@@ -32,7 +32,7 @@ class ParseMatchCard {
32
32
  bloom_level: cardData.bloom_level,
33
33
  explanation: cardData.explanation,
34
34
  };
35
- // return this._validateMatch(matchCard);
35
+ return this._validateMatch(matchCard);
36
36
  return matchCard;
37
37
  }
38
38
  catch (e) {
@@ -53,17 +53,17 @@ class ParseMatchCard {
53
53
  return displayTitle;
54
54
  }
55
55
  _validateMatch(matchCard) {
56
+ var _a, _b;
56
57
  let matches = matchCard.content;
57
58
  let content = [];
58
59
  try {
59
- if (matches.length < 1 || matches.length > 8) {
60
+ if (matches.length < 1 || matches.length > 4) {
60
61
  throw Error("Invalid number of matches");
61
62
  }
62
63
  for (let elem of matches) {
63
- if (elem.left_item.length <= 30 && elem.left_item.length != 0) {
64
- if (elem.right_item.length <= 40 && elem.right_item.length != 0) {
65
- content.push(elem);
66
- }
64
+ if (((_a = elem.left_item) !== null && _a !== void 0 ? _a : "").length != 0 &&
65
+ ((_b = elem.right_item) !== null && _b !== void 0 ? _b : "").length != 0) {
66
+ content.push(elem);
67
67
  }
68
68
  }
69
69
  if (content.length >= 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"parse_match_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_match_card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse_match_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_match_card.ts"],"names":[],"mappings":"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"}
@@ -31,13 +31,14 @@ class ParseMcqCard {
31
31
  bloom_level: data.bloom_level,
32
32
  explanation: data.explanation,
33
33
  };
34
- return mcqCard;
35
- // const isValid = this._validate(mcqCard);
36
- // if (isValid == true) {
37
- // return mcqCard;
38
- // } else {
39
- // return null;
40
- // }
34
+ // return mcqCard;
35
+ const isValid = this._validate(mcqCard);
36
+ if (isValid == true) {
37
+ return mcqCard;
38
+ }
39
+ else {
40
+ return null;
41
+ }
41
42
  }
42
43
  catch (e) {
43
44
  return null;
@@ -65,12 +66,11 @@ class ParseMcqCard {
65
66
  // 3. Length of question shouldnt exceed 90 chars
66
67
  // 4. If Any option is Empty
67
68
  _validate(mcqCard) {
68
- var _a;
69
69
  try {
70
- let isQuestionValid = mcqCard.content.question.length <= 90;
71
- if (!isQuestionValid) {
72
- throw new Error("Question length exceeded");
73
- }
70
+ // let isQuestionValid = mcqCard.content.question.length <= 90;
71
+ // if (!isQuestionValid) {
72
+ // throw new Error("Question length exceeded");
73
+ // }
74
74
  /// check if all are wrong answers
75
75
  let exists = this._checkIfAllAnswersAreWrong(mcqCard.content.answers);
76
76
  if (exists) {
@@ -79,10 +79,12 @@ class ParseMcqCard {
79
79
  throw new Error("Every answers are wrong");
80
80
  }
81
81
  /// check if answers are of length <40 or is 0
82
- let answerWhoseLengthisGreaterThan40or0 = ((_a = mcqCard.content.answers) !== null && _a !== void 0 ? _a : []).find((e) => e.answer.length == 0 || e.answer.length > 40);
83
- if (answerWhoseLengthisGreaterThan40or0) {
84
- throw new Error("Option has length more than 40 or is Empty");
85
- }
82
+ // let answerWhoseLengthisGreaterThan40or0 = (
83
+ // mcqCard.content.answers ?? []
84
+ // ).find((e: any) => e.answer.length == 0 || e.answer.length > 40);
85
+ // if (answerWhoseLengthisGreaterThan40or0) {
86
+ // throw new Error("Option has length more than 40 or is Empty");
87
+ // }
86
88
  return true;
87
89
  }
88
90
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"parse_mcq_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_mcq_card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse_mcq_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_mcq_card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { OpenAIHelper } from "../helper/openai_helper";
2
+ import { OpenAiService } from "../services/open_ai_service";
3
+ export declare class GenerateSummaryCards {
4
+ openAiService: OpenAiService;
5
+ openAIHelper: OpenAIHelper;
6
+ sourceId: string;
7
+ generationCurriculum: boolean;
8
+ content: {
9
+ title: string;
10
+ h1_headings?: string[];
11
+ timecodes?: string[];
12
+ content: any[];
13
+ };
14
+ type: string;
15
+ promptIdForSummaryCards: string;
16
+ constructor(openAiService: OpenAiService, sourceId: string, content: {
17
+ title: string;
18
+ h1_headings?: string[];
19
+ timecodes?: string[];
20
+ content: any[];
21
+ }, type: string, promptIdForSummaryCards: string, generationCurriculum: boolean);
22
+ generate(): Promise<{
23
+ summary_cards: any;
24
+ metadata: any;
25
+ } | undefined>;
26
+ parseJson(response: any): any;
27
+ }
28
+ //# sourceMappingURL=summarize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/typology_gen/summarize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQ5D,qBAAa,oBAAoB;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,OAAO,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,GAAG,EAAE,CAAC;KAChB,CAAC;IACK,IAAI,EAAE,MAAM,CAAM;IAClB,uBAAuB,EAAE,MAAM,CAAC;gBAErC,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,GAAG,EAAE,CAAC;KAChB,EACD,IAAI,EAAE,MAAM,EACZ,uBAAuB,EAAE,MAAM,EAC/B,oBAAoB,EAAE,OAAO;IAWzB,QAAQ;;;;IAkGd,SAAS,CAAC,QAAQ,EAAE,GAAG;CAkBxB"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GenerateSummaryCards = void 0;
13
+ const openai_helper_1 = require("../helper/openai_helper");
14
+ const logger_1 = require("../logger");
15
+ const sanitize_strings_1 = require("../utils/sanitize_strings");
16
+ const build_summary_schema_1 = require("../helper/schema_helper/build_summary_schema");
17
+ class GenerateSummaryCards {
18
+ constructor(openAiService, sourceId, content, type, promptIdForSummaryCards, generationCurriculum) {
19
+ this.type = "";
20
+ this.openAiService = openAiService;
21
+ this.openAIHelper = new openai_helper_1.OpenAIHelper(this.openAiService.api_key);
22
+ this.content = content;
23
+ this.promptIdForSummaryCards = promptIdForSummaryCards;
24
+ this.type = type;
25
+ this.sourceId = sourceId;
26
+ this.generationCurriculum = generationCurriculum;
27
+ }
28
+ generate() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ var _a, _b, _c, _d, _e;
31
+ try {
32
+ const headings = this.type === "text"
33
+ ? this.content.h1_headings || [""]
34
+ : this.content.timecodes || [""];
35
+ const schema = yield (0, build_summary_schema_1.buildSummarySchema)(headings.length > 0 ? headings : [""], "summary_cards", true);
36
+ const openAiResponse = yield this.openAIHelper.openAI.responses.create({
37
+ prompt: {
38
+ id: this.promptIdForSummaryCards,
39
+ // version: "35",
40
+ variables: {
41
+ heading_type: this.type == "video" ? "timecode" : "h1 heading",
42
+ },
43
+ },
44
+ max_output_tokens: 30000,
45
+ input: [
46
+ {
47
+ role: "user",
48
+ content: [
49
+ {
50
+ type: "input_text",
51
+ text: JSON.stringify(this.content),
52
+ },
53
+ ],
54
+ },
55
+ ],
56
+ // input: JSON.stringify(this.content),
57
+ store: true,
58
+ text: {
59
+ format: {
60
+ type: "json_schema",
61
+ name: schema.name,
62
+ strict: schema.strict,
63
+ schema: schema.schema,
64
+ },
65
+ },
66
+ });
67
+ if (!openAiResponse) {
68
+ yield (0, logger_1.log_error)({
69
+ flow: "manual_generation",
70
+ data: openAiResponse,
71
+ error: "empty_openai_response",
72
+ timestamp: new Date(),
73
+ source_id: this.sourceId,
74
+ type: {
75
+ request_type: "concept_fact",
76
+ n: 1,
77
+ },
78
+ });
79
+ return;
80
+ }
81
+ openAiResponse.metadata = {
82
+ req_time: (_a = openAiResponse.created) !== null && _a !== void 0 ? _a : new Date(),
83
+ req_type: {
84
+ type: "breadth",
85
+ sub_type: "summary_cards",
86
+ n: 1,
87
+ },
88
+ req_tokens: (_c = (_b = openAiResponse.usage) === null || _b === void 0 ? void 0 : _b.input_tokens) !== null && _c !== void 0 ? _c : 0,
89
+ res_tokens: (_e = (_d = openAiResponse.usage) === null || _d === void 0 ? void 0 : _d.output_tokens) !== null && _e !== void 0 ? _e : 0,
90
+ prompt: openAiResponse.prompt,
91
+ // prompt_tokens_details: openAiResponse.usage?.,
92
+ model: this.openAiService.model,
93
+ usage: openAiResponse.usage,
94
+ status: "completed",
95
+ };
96
+ const summaryCards = this.parseJson(openAiResponse);
97
+ return {
98
+ summary_cards: summaryCards,
99
+ metadata: openAiResponse.metadata,
100
+ };
101
+ }
102
+ catch (error) {
103
+ console.log(error);
104
+ yield (0, logger_1.log_error)({
105
+ flow: this.generationCurriculum
106
+ ? "curriculum_manual_generation"
107
+ : "manual_generation",
108
+ data: error,
109
+ timestamp: new Date(),
110
+ error: "error_in_concept_facts_generation",
111
+ source_id: this.sourceId,
112
+ type: {
113
+ request_type: "concept_fact",
114
+ n: 1,
115
+ },
116
+ });
117
+ return;
118
+ }
119
+ });
120
+ }
121
+ parseJson(response) {
122
+ try {
123
+ const summaryCards = JSON.parse(response.output_text).summary_cards;
124
+ if (summaryCards) {
125
+ return summaryCards.map((item) => {
126
+ return Object.assign(Object.assign({}, item), { reference: (0, sanitize_strings_1.restoreQuotesInString)(item.reference) });
127
+ });
128
+ }
129
+ }
130
+ catch (e) {
131
+ throw new logger_1.ParsingError("Something went wrong in parsing the json", response);
132
+ }
133
+ }
134
+ }
135
+ exports.GenerateSummaryCards = GenerateSummaryCards;
136
+ //# sourceMappingURL=summarize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/typology_gen/summarize.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "only_ever_generator",
3
- "version": "8.0.10",
3
+ "version": "8.1.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -0,0 +1,43 @@
1
+ import { sanitizeStringsForSchema } from "../../utils/sanitize_strings";
2
+ import { database, ObjectId, setUp } from "../mongo_helper";
3
+
4
+ // Function to populate enums in a parsed schema
5
+ export async function buildSummarySchema(
6
+ headings: string[],
7
+ name: string = "summary_cards",
8
+ strict: boolean = true
9
+ ) {
10
+ setUp();
11
+ const objectId = new ObjectId("690ae043116a8c929f3a4cd5");
12
+ const schemaObj = await database.collection("_prompts").findOne({
13
+ _id: objectId,
14
+ });
15
+ if (!schemaObj) {
16
+ throw new Error("Schema not found");
17
+ }
18
+ const schema = schemaObj.schema;
19
+ if (!schema) {
20
+ throw new Error("Schema not found");
21
+ }
22
+ // Deep clone to avoid mutating the original
23
+ const populatedSchema = JSON.parse(schema);
24
+
25
+ // Update name and strict mode
26
+ populatedSchema.name = name;
27
+ populatedSchema.strict = strict;
28
+
29
+ // Sanitize headings to remove quotes for OpenAI structured outputs
30
+ const sanitizedStrings = sanitizeStringsForSchema(headings);
31
+
32
+ // Type-safe enum population for reference field in summary_cards items
33
+ // This populates the enum for cards 2-N (takeaway cards)
34
+ if (
35
+ populatedSchema.schema?.properties?.summary_cards?.items?.properties
36
+ ?.reference?.enum
37
+ ) {
38
+ populatedSchema.schema.properties.summary_cards.items.properties.reference.enum =
39
+ sanitizedStrings;
40
+ }
41
+
42
+ return populatedSchema;
43
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,8 @@
1
+ import { ObjectId } from "mongodb";
1
2
  import { OnlyEverGenerator } from "./bootstrap/app";
3
+ import { OpenAiService } from "./services/open_ai_service";
4
+ import { GenerateSummaryCards } from "./typology_gen/summarize";
5
+ import { database, setUp } from "./helper/mongo_helper";
2
6
  // import { LocalConsolidation } from "./embedding_generation/consolidation/local_consolidation";
3
7
  // import { embeddingsResp } from "./typology-parsed-response";
4
8
  // import { GlobalConsolidation } from "./embedding_generation/consolidation/global_consolidation";
@@ -9,9 +13,9 @@ import { OnlyEverGenerator } from "./bootstrap/app";
9
13
  // import { GenerateConceptFacts } from "./typology_gen/generate_concept_facts";
10
14
  // import { BaseParamType } from "./types/base_param_type";
11
15
  // import dotenv from "dotenv";
12
- // import express from "express";
13
- // const app = express();
14
- // const port = 3000;
16
+ import express from "express";
17
+ const app = express();
18
+ const port = 3000;
15
19
 
16
20
  // // import { OnlyEverGenerator } from "./bootstrap/app";
17
21
  // import { database, ObjectId, setUp } from "./helper/mongo_helper";
@@ -23,156 +27,36 @@ import { OnlyEverGenerator } from "./bootstrap/app";
23
27
  export { OnlyEverGenerator };
24
28
  // dotenv.config();
25
29
 
26
- // app.get("/generate", async (req, res) => {
27
- // try {
28
- // const openAIKey =
29
- // "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";
30
- // const promptForSummary = {
31
- // promptId: "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
32
- // // version: "13",
33
- // };
34
- // const promptForConceptFacts = {
35
- // promptId: "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
36
- // // version: "6",
37
- // };
38
-
39
- // setUp();
40
-
41
- // const source = await database.collection("_source").findOne({
42
- // _id: new ObjectId("68b114fdce5ca556db39fd12"),
43
- // });
44
-
45
- // const contentForGen = {
46
- // prompt: {
47
- // typology: "",
48
- // card_generation: "",
49
- // },
50
- // content: {
51
- // source_id: source?._id?.toString() || "",
52
- // title: source?.title || "",
53
- // type: source?.source_type || "",
54
- // headings: source?.headings || [],
55
- // content: source?.content || [],
56
- // fields: source?.fields || [],
57
- // taxonomy: source?.learn_value
58
- // ? {
59
- // generate_cards: source?.generate_cards || {
60
- // state: false,
61
- // reason: "",
62
- // },
63
- // concepts_facts: source?.concepts_facts || [],
64
- // fields: source?.fields || [],
65
- // learn_value: source?.learn_value || {
66
- // value: 0,
67
- // reason: "",
68
- // bloom_levels: [],
69
- // bloom_levels_reason: "",
70
- // },
71
- // }
72
- // : undefined,
73
- // },
74
- // };
75
- // const prompts = await getPrompts("text");
76
- // const bloomInstructions = prompts.bloom_instructions;
77
- // const cardInstructions = prompts.card_instructions;
78
- // const cardExamples = prompts.card_examples;
79
-
80
- // console.log("Initializing OnlyEverGenerator");
81
- // const onlyEverGenerator = new OnlyEverGenerator(
82
- // process.env.OPEN_AI_KEY as string,
83
- // "o4-mini",
84
- // contentForGen,
85
-
86
- // "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
87
- // "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
88
- // "pmpt_688118a923e4819098176a13a2f401920d2ea17d881cc6c6",
89
- // {
90
- // bloom_instructions: bloomInstructions,
91
- // card_instructions: cardInstructions,
92
- // card_examples: cardExamples,
93
- // },
94
- // false,
95
- // 0
96
- // );
97
- // const response = await onlyEverGenerator.generate(false, true);
98
-
99
- // res.send(response);
100
- // } catch (error) {
101
- // res.status(500).send(error);
102
- // }
103
- // });
104
-
105
- // app.listen(port, () => {
106
- // console.log(`Server is running on port ${port}`);
107
- // });
108
-
109
- // (async () => {
110
- // const promptForSummary = {
111
- // promptId: "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
112
- // // version: "13",
113
- // };
114
- // const promptForConceptFacts = {
115
- // promptId: "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
116
- // // version: "6",
117
- // };
118
-
119
- // setUp();
120
-
121
- // const source = await database.collection("_source").findOne({
122
- // _id: new ObjectId("68b114cdf23998242ce03235"),
123
- // });
124
-
125
- // const contentForGen = {
126
- // prompt: {
127
- // typology: "",
128
- // card_generation: "",
129
- // },
130
- // content: {
131
- // source_id: source?._id?.toString() || "",
132
- // title: source?.title || "",
133
- // type: source?.source_type || "",
134
- // headings: source?.headings || [],
135
- // content: source?.content || [],
136
- // fields: source?.fields || [],
137
- // taxonomy: source?.learn_value
138
- // ? {
139
- // generate_cards: source?.generate_cards || {
140
- // state: false,
141
- // reason: "",
142
- // },
143
- // concepts_facts: source?.concepts_facts || [],
144
- // fields: source?.fields || [],
145
- // learn_value: source?.learn_value || {
146
- // value: 0,
147
- // reason: "",
148
- // bloom_levels: [],
149
- // bloom_levels_reason: "",
150
- // },
151
- // }
152
- // : undefined,
153
- // },
154
- // };
155
- // const prompts = await getPrompts("text");
156
- // const bloomInstructions = prompts.bloom_instructions;
157
- // const cardInstructions = prompts.card_instructions;
158
- // const cardExamples = prompts.card_examples;
159
-
160
- // console.log("Initializing OnlyEverGenerator");
161
- // const onlyEverGenerator = new OnlyEverGenerator(
162
- // process.env.OPEN_AI_KEY as string,
163
- // "o4-mini",
164
- // contentForGen,
165
-
166
- // "pmpt_687a8872d1c8819088a9cdc97dcb688b0893663621695594",
167
- // "pmpt_687aa547f99c8193b99467ca53630c2607f5a8caf451e7e8",
168
- // "pmpt_688118a923e4819098176a13a2f401920d2ea17d881cc6c6",
169
- // {
170
- // bloom_instructions: bloomInstructions,
171
- // card_instructions: cardInstructions,
172
- // card_examples: cardExamples,
173
- // },
174
- // false
175
- // );
176
- // const response = await onlyEverGenerator.generate(true, false);
177
- // console.log(response);
178
- // })();
30
+ app.listen(port, () => {
31
+ console.log(`Server is running on port ${port}`);
32
+ });
33
+
34
+ app.get("/summarize", async (req, res) => {
35
+ setUp();
36
+ const promptIdForSummaryCards =
37
+ "pmpt_6902c30a973481968395935cc6dfa78605f50d2b01d4afbd";
38
+ const sourceId = "68b114dac849a25097ed1778";
39
+ const source = await database
40
+ .collection("_source")
41
+ .findOne({ _id: new ObjectId(sourceId) });
42
+ const content = {
43
+ title: source?.title,
44
+ h1_headings: source?.headings,
45
+ content: source?.content,
46
+ };
47
+ const openAiService = new OpenAiService(
48
+ process.env.OPEN_AI_KEY || "",
49
+ "gpt-5-mini"
50
+ );
51
+ const summarize = new GenerateSummaryCards(
52
+ openAiService,
53
+ sourceId,
54
+ content,
55
+ "text",
56
+ promptIdForSummaryCards,
57
+ false
58
+ );
59
+ const summaryCards = await summarize.generate();
60
+ console.log(summaryCards);
61
+ res.json(summaryCards);
62
+ });
@@ -50,8 +50,8 @@ export class ParseClozeCard {
50
50
  explanation: data.explanation,
51
51
  };
52
52
 
53
- // return this._validateCloze(clozeCardData);
54
- return clozeCardData;
53
+ return this._validateCloze(clozeCardData);
54
+ // return clozeCardData;
55
55
  } catch (e) {
56
56
  return null;
57
57
  }
@@ -39,7 +39,7 @@ export class ParseMatchCard {
39
39
  explanation: cardData.explanation,
40
40
  };
41
41
 
42
- // return this._validateMatch(matchCard);
42
+ return this._validateMatch(matchCard);
43
43
  return matchCard;
44
44
  } catch (e) {
45
45
  return null;
@@ -79,15 +79,16 @@ export class ParseMatchCard {
79
79
  let matches = matchCard.content;
80
80
  let content = [];
81
81
  try {
82
- if (matches.length < 1 || matches.length > 8) {
82
+ if (matches.length < 1 || matches.length > 4) {
83
83
  throw Error("Invalid number of matches");
84
84
  }
85
85
 
86
86
  for (let elem of matches) {
87
- if (elem.left_item.length <= 30 && elem.left_item.length != 0) {
88
- if (elem.right_item.length <= 40 && elem.right_item.length != 0) {
89
- content.push(elem);
90
- }
87
+ if (
88
+ (elem.left_item ?? "").length != 0 &&
89
+ (elem.right_item ?? "").length != 0
90
+ ) {
91
+ content.push(elem);
91
92
  }
92
93
  }
93
94
  if (content.length >= 2) {
@@ -43,13 +43,13 @@ export class ParseMcqCard {
43
43
  bloom_level: data.bloom_level,
44
44
  explanation: data.explanation,
45
45
  };
46
- return mcqCard;
47
- // const isValid = this._validate(mcqCard);
48
- // if (isValid == true) {
49
- // return mcqCard;
50
- // } else {
51
- // return null;
52
- // }
46
+ // return mcqCard;
47
+ const isValid = this._validate(mcqCard);
48
+ if (isValid == true) {
49
+ return mcqCard;
50
+ } else {
51
+ return null;
52
+ }
53
53
  } catch (e) {
54
54
  return null;
55
55
  }
@@ -78,10 +78,10 @@ export class ParseMcqCard {
78
78
  // 4. If Any option is Empty
79
79
  _validate(mcqCard: any) {
80
80
  try {
81
- let isQuestionValid = mcqCard.content.question.length <= 90;
82
- if (!isQuestionValid) {
83
- throw new Error("Question length exceeded");
84
- }
81
+ // let isQuestionValid = mcqCard.content.question.length <= 90;
82
+ // if (!isQuestionValid) {
83
+ // throw new Error("Question length exceeded");
84
+ // }
85
85
 
86
86
  /// check if all are wrong answers
87
87
  let exists = this._checkIfAllAnswersAreWrong(mcqCard.content.answers);
@@ -91,12 +91,12 @@ export class ParseMcqCard {
91
91
  }
92
92
 
93
93
  /// check if answers are of length <40 or is 0
94
- let answerWhoseLengthisGreaterThan40or0 = (
95
- mcqCard.content.answers ?? []
96
- ).find((e: any) => e.answer.length == 0 || e.answer.length > 40);
97
- if (answerWhoseLengthisGreaterThan40or0) {
98
- throw new Error("Option has length more than 40 or is Empty");
99
- }
94
+ // let answerWhoseLengthisGreaterThan40or0 = (
95
+ // mcqCard.content.answers ?? []
96
+ // ).find((e: any) => e.answer.length == 0 || e.answer.length > 40);
97
+ // if (answerWhoseLengthisGreaterThan40or0) {
98
+ // throw new Error("Option has length more than 40 or is Empty");
99
+ // }
100
100
  return true;
101
101
  } catch (e) {
102
102
  return false;
@@ -0,0 +1,162 @@
1
+ import { buildConceptFactSchema } from "../helper/schema_helper/build_concept_facts_schema";
2
+ import { OpenAIHelper } from "../helper/openai_helper";
3
+ import { OpenAiService } from "../services/open_ai_service";
4
+ import { ErrorLogger, log_error, ParsingError } from "../logger";
5
+ import {
6
+ restoreQuotesInObject,
7
+ restoreQuotesInString,
8
+ } from "../utils/sanitize_strings";
9
+ import { buildSummarySchema } from "../helper/schema_helper/build_summary_schema";
10
+
11
+ export class GenerateSummaryCards {
12
+ public openAiService: OpenAiService;
13
+ public openAIHelper: OpenAIHelper;
14
+ public sourceId: string;
15
+ public generationCurriculum: boolean;
16
+ public content: {
17
+ title: string;
18
+ h1_headings?: string[];
19
+ timecodes?: string[];
20
+ content: any[];
21
+ };
22
+ public type: string = "";
23
+ public promptIdForSummaryCards: string;
24
+ constructor(
25
+ openAiService: OpenAiService,
26
+ sourceId: string,
27
+ content: {
28
+ title: string;
29
+ h1_headings?: string[];
30
+ timecodes?: string[];
31
+ content: any[];
32
+ },
33
+ type: string,
34
+ promptIdForSummaryCards: string,
35
+ generationCurriculum: boolean
36
+ ) {
37
+ this.openAiService = openAiService;
38
+ this.openAIHelper = new OpenAIHelper(this.openAiService.api_key);
39
+ this.content = content;
40
+ this.promptIdForSummaryCards = promptIdForSummaryCards;
41
+ this.type = type;
42
+ this.sourceId = sourceId;
43
+ this.generationCurriculum = generationCurriculum;
44
+ }
45
+
46
+ async generate() {
47
+ try {
48
+ const headings =
49
+ this.type === "text"
50
+ ? this.content.h1_headings || [""]
51
+ : this.content.timecodes || [""];
52
+ const schema = await buildSummarySchema(
53
+ headings.length > 0 ? headings : [""],
54
+ "summary_cards",
55
+ true
56
+ );
57
+ const openAiResponse: any =
58
+ await this.openAIHelper.openAI.responses.create({
59
+ prompt: {
60
+ id: this.promptIdForSummaryCards,
61
+ // version: "35",
62
+ variables: {
63
+ heading_type: this.type == "video" ? "timecode" : "h1 heading",
64
+ },
65
+ },
66
+ max_output_tokens: 30000,
67
+ input: [
68
+ {
69
+ role: "user",
70
+ content: [
71
+ {
72
+ type: "input_text",
73
+ text: JSON.stringify(this.content),
74
+ },
75
+ ],
76
+ },
77
+ ],
78
+ // input: JSON.stringify(this.content),
79
+ store: true,
80
+ text: {
81
+ format: {
82
+ type: "json_schema",
83
+ name: schema.name,
84
+ strict: schema.strict,
85
+ schema: schema.schema,
86
+ },
87
+ },
88
+ });
89
+ if (!openAiResponse) {
90
+ await log_error({
91
+ flow: "manual_generation",
92
+ data: openAiResponse,
93
+ error: "empty_openai_response",
94
+ timestamp: new Date(),
95
+ source_id: this.sourceId,
96
+ type: {
97
+ request_type: "concept_fact",
98
+ n: 1,
99
+ },
100
+ });
101
+ return;
102
+ }
103
+
104
+ openAiResponse.metadata = {
105
+ req_time: openAiResponse.created ?? new Date(),
106
+ req_type: {
107
+ type: "breadth",
108
+ sub_type: "summary_cards",
109
+ n: 1,
110
+ },
111
+ req_tokens: openAiResponse.usage?.input_tokens ?? 0,
112
+ res_tokens: openAiResponse.usage?.output_tokens ?? 0,
113
+ prompt: openAiResponse.prompt,
114
+ // prompt_tokens_details: openAiResponse.usage?.,
115
+ model: this.openAiService.model,
116
+ usage: openAiResponse.usage,
117
+ status: "completed",
118
+ };
119
+ const summaryCards = this.parseJson(openAiResponse);
120
+
121
+ return {
122
+ summary_cards: summaryCards,
123
+ metadata: openAiResponse.metadata,
124
+ };
125
+ } catch (error) {
126
+ console.log(error);
127
+ await log_error({
128
+ flow: this.generationCurriculum
129
+ ? "curriculum_manual_generation"
130
+ : "manual_generation",
131
+ data: error,
132
+ timestamp: new Date(),
133
+ error: "error_in_concept_facts_generation",
134
+ source_id: this.sourceId,
135
+ type: {
136
+ request_type: "concept_fact",
137
+ n: 1,
138
+ },
139
+ });
140
+ return;
141
+ }
142
+ }
143
+
144
+ parseJson(response: any) {
145
+ try {
146
+ const summaryCards = JSON.parse(response.output_text).summary_cards;
147
+ if (summaryCards) {
148
+ return summaryCards.map((item: any) => {
149
+ return {
150
+ ...item,
151
+ reference: restoreQuotesInString(item.reference),
152
+ };
153
+ });
154
+ }
155
+ } catch (e) {
156
+ throw new ParsingError(
157
+ "Something went wrong in parsing the json",
158
+ response
159
+ );
160
+ }
161
+ }
162
+ }