only_ever_generator 1.0.3 → 1.0.5

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 (168) hide show
  1. package/dist/bootstrap/app.d.ts +91 -0
  2. package/dist/bootstrap/app.d.ts.map +1 -0
  3. package/dist/bootstrap/app.js +120 -84
  4. package/dist/bootstrap/app.js.map +1 -0
  5. package/dist/card_gen/generate_cards.d.ts +7 -0
  6. package/dist/card_gen/generate_cards.d.ts.map +1 -0
  7. package/dist/card_gen/generate_cards.js +60 -0
  8. package/dist/card_gen/generate_cards.js.map +1 -0
  9. package/dist/config.d.ts +8 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +4 -1
  12. package/dist/config.js.map +1 -0
  13. package/dist/constants/api_constants.d.ts +3 -0
  14. package/dist/constants/api_constants.d.ts.map +1 -0
  15. package/dist/constants/api_constants.js +11 -0
  16. package/dist/constants/api_constants.js.map +1 -0
  17. package/dist/constants/prompt_data.d.ts +5 -0
  18. package/dist/constants/prompt_data.d.ts.map +1 -0
  19. package/dist/constants/prompt_data.js +303 -0
  20. package/dist/constants/prompt_data.js.map +1 -0
  21. package/dist/constants/prompts/card_gen_prompt.d.ts +2 -0
  22. package/dist/constants/prompts/card_gen_prompt.d.ts.map +1 -0
  23. package/dist/constants/prompts/card_gen_prompt.js +100 -203
  24. package/dist/constants/prompts/card_gen_prompt.js.map +1 -0
  25. package/dist/constants/prompts/typology_prompt.d.ts +2 -0
  26. package/dist/constants/prompts/typology_prompt.d.ts.map +1 -0
  27. package/dist/constants/prompts/typology_prompt.js +78 -34
  28. package/dist/constants/prompts/typology_prompt.js.map +1 -0
  29. package/dist/constants/source_data.d.ts +173 -0
  30. package/dist/constants/source_data.d.ts.map +1 -0
  31. package/dist/constants/source_data.js +962 -10
  32. package/dist/constants/source_data.js.map +1 -0
  33. package/dist/embedding_generation/consolidation/global_consolidation.d.ts +33 -0
  34. package/dist/embedding_generation/consolidation/global_consolidation.d.ts.map +1 -0
  35. package/dist/embedding_generation/consolidation/global_consolidation.js +76 -0
  36. package/dist/embedding_generation/consolidation/global_consolidation.js.map +1 -0
  37. package/dist/embedding_generation/consolidation/local_consolidation.d.ts +39 -0
  38. package/dist/embedding_generation/consolidation/local_consolidation.d.ts.map +1 -0
  39. package/dist/embedding_generation/consolidation/local_consolidation.js +105 -0
  40. package/dist/embedding_generation/consolidation/local_consolidation.js.map +1 -0
  41. package/dist/embedding_generation/consolidation/write_consolidated_data.d.ts +46 -0
  42. package/dist/embedding_generation/consolidation/write_consolidated_data.d.ts.map +1 -0
  43. package/dist/embedding_generation/consolidation/write_consolidated_data.js +69 -0
  44. package/dist/embedding_generation/consolidation/write_consolidated_data.js.map +1 -0
  45. package/dist/embedding_generation/generate_embeddings.d.ts +28 -0
  46. package/dist/embedding_generation/generate_embeddings.d.ts.map +1 -0
  47. package/dist/embedding_generation/generate_embeddings.js +54 -0
  48. package/dist/embedding_generation/generate_embeddings.js.map +1 -0
  49. package/dist/embedding_generation/parse_embedding_response.d.ts +26 -0
  50. package/dist/embedding_generation/parse_embedding_response.d.ts.map +1 -0
  51. package/dist/embedding_generation/parse_embedding_response.js +29 -0
  52. package/dist/embedding_generation/parse_embedding_response.js.map +1 -0
  53. package/dist/gap_fill/calculate_gap_fill.d.ts +5 -0
  54. package/dist/gap_fill/calculate_gap_fill.d.ts.map +1 -0
  55. package/dist/gap_fill/calculate_gap_fill.js +43 -0
  56. package/dist/gap_fill/calculate_gap_fill.js.map +1 -0
  57. package/dist/helper/qdrant_db_methods.d.ts +40 -0
  58. package/dist/helper/qdrant_db_methods.d.ts.map +1 -0
  59. package/dist/helper/qdrant_db_methods.js +63 -0
  60. package/dist/helper/qdrant_db_methods.js.map +1 -0
  61. package/dist/index.d.ts +3 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +86 -149
  64. package/dist/index.js.map +1 -0
  65. package/dist/logger.d.ts +6 -0
  66. package/dist/logger.d.ts.map +1 -0
  67. package/dist/logger.js +42 -0
  68. package/dist/logger.js.map +1 -0
  69. package/dist/parse/parse_card/parse_cloze_card.d.ts +10 -0
  70. package/dist/parse/parse_card/parse_cloze_card.d.ts.map +1 -0
  71. package/dist/parse/parse_card/parse_cloze_card.js +126 -0
  72. package/dist/parse/parse_card/parse_cloze_card.js.map +1 -0
  73. package/dist/parse/parse_card/parse_flash_cards.d.ts +19 -0
  74. package/dist/parse/parse_card/parse_flash_cards.d.ts.map +1 -0
  75. package/dist/parse/parse_card/parse_flash_cards.js +34 -0
  76. package/dist/parse/parse_card/parse_flash_cards.js.map +1 -0
  77. package/dist/parse/parse_card/parse_match_card.d.ts +16 -0
  78. package/dist/parse/parse_card/parse_match_card.d.ts.map +1 -0
  79. package/dist/parse/parse_card/parse_match_card.js +82 -0
  80. package/dist/parse/parse_card/parse_match_card.js.map +1 -0
  81. package/dist/parse/parse_card/parse_mcq_card.d.ts +24 -0
  82. package/dist/parse/parse_card/parse_mcq_card.d.ts.map +1 -0
  83. package/dist/parse/parse_card/parse_mcq_card.js +104 -0
  84. package/dist/parse/parse_card/parse_mcq_card.js.map +1 -0
  85. package/dist/parse/parse_card_response.d.ts +19 -0
  86. package/dist/parse/parse_card_response.d.ts.map +1 -0
  87. package/dist/parse/parse_card_response.js +100 -0
  88. package/dist/parse/parse_card_response.js.map +1 -0
  89. package/dist/parse/parse_source_content.d.ts +25 -0
  90. package/dist/parse/parse_source_content.d.ts.map +1 -0
  91. package/dist/parse/parse_source_content.js +186 -0
  92. package/dist/parse/parse_source_content.js.map +1 -0
  93. package/dist/parse/response_format_card.d.ts +177 -0
  94. package/dist/parse/response_format_card.d.ts.map +1 -0
  95. package/dist/parse/response_format_card.js +372 -0
  96. package/dist/parse/response_format_card.js.map +1 -0
  97. package/dist/parse/response_format_typology.d.ts +2 -0
  98. package/dist/parse/response_format_typology.d.ts.map +1 -0
  99. package/dist/{parse_response → parse}/response_format_typology.js +18 -18
  100. package/dist/parse/response_format_typology.js.map +1 -0
  101. package/dist/services/open_ai_service.d.ts +16 -0
  102. package/dist/services/open_ai_service.d.ts.map +1 -0
  103. package/dist/services/open_ai_service.js +92 -0
  104. package/dist/services/open_ai_service.js.map +1 -0
  105. package/dist/services/qdrant_service.d.ts +4 -0
  106. package/dist/services/qdrant_service.d.ts.map +1 -0
  107. package/dist/services/qdrant_service.js +14 -0
  108. package/dist/services/qdrant_service.js.map +1 -0
  109. package/dist/typology-parsed-response.d.ts +62 -0
  110. package/dist/typology-parsed-response.d.ts.map +1 -0
  111. package/dist/typology-parsed-response.js +1936 -0
  112. package/dist/typology-parsed-response.js.map +1 -0
  113. package/dist/typology_gen/generate_typology.d.ts +29 -0
  114. package/dist/typology_gen/generate_typology.d.ts.map +1 -0
  115. package/dist/typology_gen/generate_typology.js +92 -15
  116. package/dist/typology_gen/generate_typology.js.map +1 -0
  117. package/dist/utils/generate_args.d.ts +8 -0
  118. package/dist/utils/generate_args.d.ts.map +1 -0
  119. package/dist/utils/generate_args.js +28 -0
  120. package/dist/utils/generate_args.js.map +1 -0
  121. package/dist/utils/parse_openai_response.d.ts +11 -0
  122. package/dist/utils/parse_openai_response.d.ts.map +1 -0
  123. package/dist/utils/parse_openai_response.js +11 -10
  124. package/dist/utils/parse_openai_response.js.map +1 -0
  125. package/package.json +19 -7
  126. package/prompts.json +23 -0
  127. package/readme.md +16 -13
  128. package/src/bootstrap/app.ts +167 -107
  129. package/src/card_gen/generate_cards.ts +58 -0
  130. package/src/config.ts +5 -3
  131. package/src/constants/api_constants.ts +7 -0
  132. package/src/constants/prompt_data.ts +301 -0
  133. package/src/constants/prompts/card_gen_prompt.ts +101 -208
  134. package/src/constants/prompts/typology_prompt.ts +81 -33
  135. package/src/constants/source_data.ts +1029 -23
  136. package/src/embedding_generation/consolidation/global_consolidation.ts +94 -0
  137. package/src/embedding_generation/consolidation/local_consolidation.ts +141 -0
  138. package/src/embedding_generation/consolidation/write_consolidated_data.ts +98 -0
  139. package/src/embedding_generation/generate_embeddings.ts +41 -0
  140. package/src/embedding_generation/parse_embedding_response.ts +31 -0
  141. package/src/gap_fill/calculate_gap_fill.ts +50 -0
  142. package/src/helper/qdrant_db_methods.ts +77 -0
  143. package/src/index.ts +98 -164
  144. package/src/logger.ts +30 -0
  145. package/src/parse/parse_card/parse_cloze_card.ts +136 -0
  146. package/src/parse/parse_card/parse_flash_cards.ts +33 -0
  147. package/src/parse/parse_card/parse_match_card.ts +94 -0
  148. package/src/parse/parse_card/parse_mcq_card.ts +105 -0
  149. package/src/parse/parse_card_response.ts +117 -0
  150. package/src/parse/parse_source_content.ts +202 -0
  151. package/src/parse/response_format_card.ts +386 -0
  152. package/src/parse/response_format_typology.ts +44 -0
  153. package/src/services/open_ai_service.ts +88 -0
  154. package/src/services/qdrant_service.ts +10 -0
  155. package/src/typology-parsed-response.ts +1932 -0
  156. package/src/typology_gen/generate_typology.ts +101 -12
  157. package/src/utils/generate_args.ts +29 -0
  158. package/src/utils/parse_openai_response.ts +17 -19
  159. package/tsconfig.json +8 -3
  160. package/dist/class/parse/parse_source_content.js +0 -62
  161. package/dist/class/services/open_ai_service.js +0 -25
  162. package/dist/parse_response/response_format_card.js +0 -210
  163. package/dist/service/open_ai_request.js +0 -58
  164. package/src/class/parse/parse_source_content.ts +0 -71
  165. package/src/class/services/open_ai_service.ts +0 -18
  166. package/src/parse_response/response_format_card.ts +0 -211
  167. package/src/parse_response/response_format_typology.ts +0 -44
  168. package/src/service/open_ai_request.ts +0 -46
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gapFilling = gapFilling;
4
+ function isEmpty(obj) {
5
+ return Object.keys(obj).length === 0;
6
+ }
7
+ function gapFilling(typologyResponse, cardgenResponse) {
8
+ var _a, _b, _c, _d, _e;
9
+ let allConcepts = [];
10
+ let allFacts = [];
11
+ let generatedConceptsList = [];
12
+ let generatedFactsList = [];
13
+ let remainingConcepts = [];
14
+ let remainingFacts = [];
15
+ if (!isEmpty(typologyResponse)) {
16
+ allConcepts.push(...((_a = typologyResponse.concepts) !== null && _a !== void 0 ? _a : []));
17
+ allFacts.push(...((_b = typologyResponse === null || typologyResponse === void 0 ? void 0 : typologyResponse.facts) !== null && _b !== void 0 ? _b : []));
18
+ }
19
+ if (!isEmpty(cardgenResponse)) {
20
+ allConcepts.push(...((_c = cardgenResponse.missing_concepts) !== null && _c !== void 0 ? _c : []));
21
+ allFacts.push(...((_d = cardgenResponse.missing_facts) !== null && _d !== void 0 ? _d : []));
22
+ }
23
+ if (cardgenResponse.cards_data !== undefined &&
24
+ ((_e = cardgenResponse.cards_data) === null || _e === void 0 ? void 0 : _e.length) != 0) {
25
+ for (let card of cardgenResponse.cards_data) {
26
+ if (card.concepts.length != 0) {
27
+ generatedConceptsList.push(...card.concepts);
28
+ }
29
+ if (card.facts.length != 0) {
30
+ generatedFactsList.push(...card.facts);
31
+ }
32
+ }
33
+ let generatedConceptsSet = Array.from(new Set(generatedConceptsList));
34
+ let generatedFactsSet = Array.from(new Set(generatedFactsList));
35
+ remainingConcepts = allConcepts.filter((item) => !generatedConceptsSet.includes(item));
36
+ remainingFacts = allFacts.filter((item) => !generatedFactsSet.includes(item));
37
+ }
38
+ return {
39
+ remainingConcepts: remainingConcepts,
40
+ remainingFacts: remainingFacts,
41
+ };
42
+ }
43
+ //# sourceMappingURL=calculate_gap_fill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate_gap_fill.js","sourceRoot":"","sources":["../../src/gap_fill/calculate_gap_fill.ts"],"names":[],"mappings":";;AAIA,gCA6CC;AAjDD,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,UAAU,CAAC,gBAAqB,EAAE,eAAoB;;IACpE,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,qBAAqB,GAAa,EAAE,CAAC;IACzC,IAAI,kBAAkB,GAAa,EAAE,CAAC;IACtC,IAAI,iBAAiB,GAAa,EAAE,CAAC;IACrC,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,gBAAgB,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,eAAe,CAAC,gBAAgB,mCAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,eAAe,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IACE,eAAe,CAAC,UAAU,KAAK,SAAS;QACxC,CAAA,MAAA,eAAe,CAAC,UAAU,0CAAE,MAAM,KAAI,CAAC,EACvC,CAAC;QACD,KAAK,IAAI,IAAI,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC9B,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC3B,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,IAAI,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACtE,IAAI,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAEhE,iBAAiB,GAAG,WAAW,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/C,CAAC;QACF,cAAc,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,iBAAiB,EAAE,iBAAiB;QACpC,cAAc,EAAE,cAAc;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ declare const createCollection: (collectionName: string) => Promise<void>;
2
+ declare const getCollection: () => Promise<{
3
+ collections: {
4
+ name: string;
5
+ }[];
6
+ }>;
7
+ declare const getCorrespondingConcepts: (collectionName: string, embeddings: {
8
+ text: string;
9
+ id: string;
10
+ type: string;
11
+ reference: string;
12
+ embedding: number[];
13
+ }[], threshold: number) => Promise<{
14
+ points: {
15
+ id: string | number;
16
+ version: number;
17
+ score: number;
18
+ payload?: Record<string, unknown> | {
19
+ [key: string]: unknown;
20
+ } | null | undefined;
21
+ vector?: Record<string, unknown> | number[] | number[][] | {
22
+ [key: string]: number[] | number[][] | {
23
+ indices: number[];
24
+ values: number[];
25
+ } | undefined;
26
+ } | null | undefined;
27
+ shard_key?: string | number | Record<string, unknown> | null | undefined;
28
+ order_value?: number | Record<string, unknown> | null | undefined;
29
+ }[];
30
+ }[]>;
31
+ declare const addEmbeddingsToCollection: (collectionName: string, embeddings: {
32
+ id: string;
33
+ vector: number[];
34
+ payload: {
35
+ _sources: string[];
36
+ text: string;
37
+ };
38
+ }[]) => Promise<void>;
39
+ export { createCollection, getCollection, addEmbeddingsToCollection, getCorrespondingConcepts as getSimilarConcepts, };
40
+ //# sourceMappingURL=qdrant_db_methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant_db_methods.d.ts","sourceRoot":"","sources":["../../src/helper/qdrant_db_methods.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,gBAAgB,mBAA0B,MAAM,kBAOrD,CAAC;AAEF,QAAA,MAAM,aAAa;;;;EAGlB,CAAC;AAEF,QAAA,MAAM,wBAAwB,mBACZ,MAAM,cACV;IACV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,EAAE,aACQ,MAAM;;;;;eAoDoq7G,CAAC;;;cAA0H,CAAC;;;;;;iBAA+tE,CAAC;mBAAuF,CAAC;;IAjC1mgH,CAAC;AAEF,QAAA,MAAM,yBAAyB,mBACb,MAAM,cACV;IACV,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,EAAE,kBAcJ,CAAC;AAEF,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,wBAAwB,IAAI,kBAAkB,GAC/C,CAAC"}
@@ -0,0 +1,63 @@
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
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getSimilarConcepts = exports.addEmbeddingsToCollection = exports.getCollection = exports.createCollection = void 0;
16
+ const qdrant_service_1 = __importDefault(require("../services/qdrant_service"));
17
+ const createCollection = (collectionName) => __awaiter(void 0, void 0, void 0, function* () {
18
+ yield qdrant_service_1.default.createCollection(collectionName, {
19
+ vectors: {
20
+ size: 1536,
21
+ distance: "Cosine",
22
+ },
23
+ });
24
+ });
25
+ exports.createCollection = createCollection;
26
+ const getCollection = () => __awaiter(void 0, void 0, void 0, function* () {
27
+ const collection = yield qdrant_service_1.default.getCollections();
28
+ return collection;
29
+ });
30
+ exports.getCollection = getCollection;
31
+ const getCorrespondingConcepts = (collectionName, embeddings, threshold) => __awaiter(void 0, void 0, void 0, function* () {
32
+ try {
33
+ const searchQuery = embeddings.map((e) => {
34
+ return {
35
+ query: e.embedding,
36
+ limit: 1,
37
+ score_threshold: threshold,
38
+ with_payload: true,
39
+ };
40
+ });
41
+ const results = yield qdrant_service_1.default.queryBatch(collectionName, {
42
+ searches: searchQuery,
43
+ });
44
+ return results;
45
+ }
46
+ catch (error) {
47
+ console.log(error);
48
+ throw error;
49
+ }
50
+ });
51
+ exports.getSimilarConcepts = getCorrespondingConcepts;
52
+ const addEmbeddingsToCollection = (collectionName, embeddings) => __awaiter(void 0, void 0, void 0, function* () {
53
+ const CHUNK_SIZE = 1000;
54
+ for (let i = 0; i < embeddings.length; i += CHUNK_SIZE) {
55
+ const batch = embeddings.slice(i, i + CHUNK_SIZE);
56
+ yield qdrant_service_1.default.upsert(collectionName, {
57
+ wait: true,
58
+ points: batch,
59
+ });
60
+ }
61
+ });
62
+ exports.addEmbeddingsToCollection = addEmbeddingsToCollection;
63
+ //# sourceMappingURL=qdrant_db_methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant_db_methods.js","sourceRoot":"","sources":["../../src/helper/qdrant_db_methods.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gFAAsD;AAEtD,MAAM,gBAAgB,GAAG,CAAO,cAAsB,EAAE,EAAE;IACxD,MAAM,wBAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE;QAClD,OAAO,EAAE;YACP,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;SACnB;KACF,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AA+DA,4CAAgB;AA7DlB,MAAM,aAAa,GAAG,GAAS,EAAE;IAC/B,MAAM,UAAU,GAAG,MAAM,wBAAY,CAAC,cAAc,EAAE,CAAC;IACvD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAA,CAAC;AA2DA,sCAAa;AAzDf,MAAM,wBAAwB,GAAG,CAC/B,cAAsB,EACtB,UAMG,EACH,SAAiB,EACjB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvC,OAAO;gBACL,KAAK,EAAE,CAAC,CAAC,SAAS;gBAClB,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,SAAS;gBAC1B,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,wBAAY,CAAC,UAAU,CAAC,cAAc,EAAE;YAC5D,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAA,CAAC;AA+B4B,sDAAkB;AA7BhD,MAAM,yBAAyB,GAAG,CAChC,cAAsB,EACtB,UAOG,EACH,EAAE;IACF,MAAM,UAAU,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;QAClD,MAAM,wBAAY,CAAC,MAAM,CACvB,cAAc,EAEd;YACE,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,KAAK;SACd,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAA,CAAC;AAKA,8DAAyB"}
@@ -0,0 +1,3 @@
1
+ import { OnlyEverGenerator } from "./bootstrap/app";
2
+ export { OnlyEverGenerator };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQpD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,160 +1,97 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GenerateArgs = exports.OnlyEverGenerator = void 0;
13
- const parse_source_content_1 = require("./class/parse/parse_source_content");
14
- const open_ai_service_1 = require("./class/services/open_ai_service");
15
- const card_gen_prompt_1 = require("./constants/prompts/card_gen_prompt");
16
- const typology_prompt_1 = require("./constants/prompts/typology_prompt");
2
+ // import express from "express";
3
+ // import {
4
+ // returnCardResponse,
5
+ // returnHeadings,
6
+ // returnSourceData,
7
+ // } from "./constants/source_data";
8
+ // import config from "./config";
17
9
  // const app = express();
18
10
  // const port = 3000;
19
- // let openAiService = new OpenAiService(config.openAIKey);
20
- // let oeGen = new OnlyEverGenerator(config.openAIKey, returnSourceData())
21
- // app.get('/', async (req, res) => {
22
- // let data = oeGen.returnParsedContent();
23
- // // let parsedData = parseResponse()
24
- // res.send(data);
11
+ // import { returnPromptData } from "./constants/prompt_data";
12
+ // import { GenerateCards } from "./card_gen/generate_cards";
13
+ // import { OpenAiService } from "./services/open_ai_service";
14
+ // import { ParseCardResponse } from "./parse/parse_card_response";
15
+ // import { returnTypologyPrompt } from "./constants/prompts/typology_prompt";
16
+ // import { returnCardGenPrompt } from "./constants/prompts/card_gen_prompt";
17
+ // import { GenerateArgs } from "./utils/generate_args";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.OnlyEverGenerator = void 0;
20
+ const app_1 = require("./bootstrap/app");
21
+ Object.defineProperty(exports, "OnlyEverGenerator", { enumerable: true, get: function () { return app_1.OnlyEverGenerator; } });
22
+ // . All the Codes Below uses express and are strictly for development purpose, while publishing the package, comment everything
23
+ // below this line
24
+ // let oeGen = new OnlyEverGenerator(config.openAIKey, "gpt-4o-mini", {
25
+ // prompt: returnPromptData(),
26
+ // content: returnSourceData(),
25
27
  // });
26
- // app.get('/openAI', async (req,res)=> {
28
+ // app.get("/", async (req, res) => {
29
+ // // let data = oeGen.returnParsedContent();
30
+ // // let parsedData = parseResponse()
31
+ // let cardPrompt = "";
32
+ // res.send(cardPrompt);
33
+ // });
34
+ // app.get("/openAI", async (req, res) => {
27
35
  // // let prompt = returnPromt();
28
- // let prompt = returnCardGenPrompt();
29
- // let content = returnSourceData().toString()
30
- // let headings = returnHeadings();
31
- // // let aiRequest = await openAIRequest(prompt,content);
32
- // let aiRequest = await oeGen.generateCard(prompt,content);
33
- // res.send(aiRequest);
34
- // });
35
- // app.get('/typology', async(req,res)=>{
36
- // {
37
- // let typologyPrompt = returnTypologyPrompt();
38
- // let cardPrompt = returnCardGenPrompt();
39
- // let args = new GenerateArgs(
40
- // true,
41
- // true,
42
- // false,
43
- // {
44
- // typology_prompt: typologyPrompt,
45
- // card_gen_prompt: cardPrompt,
46
- // summary_prompt: "",
47
- // }
48
- // )
49
- // let typologyRequest = await oeGen.generate(
50
- // args,
51
- // );
36
+ // // let prompt = returnCardGenPrompt();
37
+ // // let content = returnSourceData().toString()
38
+ // // let headings = returnHeadings();
39
+ // // // let aiRequest = await openAIRequest(prompt,content);
40
+ // let aiRequest = await oeGen.generate(true, true);
41
+ // res.send(aiRequest);
42
+ // });
43
+ // app.get("/parseCardData", async (req, res) => {
44
+ // let cardResp = returnCardResponse();
45
+ // let headings = returnHeadings();
46
+ // cardResp.metadata = {
47
+ // req_time: cardResp.generated_at ?? new Date(),
48
+ // req_type: "card",
49
+ // req_tokens: cardResp.usage_data?.prompt_tokens,
50
+ // res_tokens: cardResp.usage_data?.completion_tokens,
51
+ // model: "40-mini",
52
+ // };
53
+ // let parsedData = new ParseCardResponse().parse(cardResp, false, {});
54
+ // res.send(parsedData);
55
+ // });
56
+ // app.get("/generate-cards", async (req, res) => {
57
+ // let cardResp = embeddingsResp;
58
+ // oeGen.parsedContent.taxonomy = cardResp;
59
+ // let parsedData = await oeGen.generateCard(
60
+ // returnCardGenPrompt(),
61
+ // JSON.stringify(cardResp),
62
+ // false
63
+ // );
64
+ // res.send(parsedData);
65
+ // });
66
+ // app.get("/typology", async (req, res) => {
67
+ // {
68
+ // let typologyRequest = await oeGen.generate(true, false);
52
69
  // res.send(typologyRequest);
53
70
  // }
54
71
  // });
72
+ // app.get("/local-consolidation", async (req, res) => {
73
+ // const concepts_facts = embeddingsResp.concepts_facts;
74
+ // let locallyConsolidated = new LocalConsolidation().consolidate(
75
+ // concepts_facts,
76
+ // "sourceID"
77
+ // );
78
+ // res.send(locallyConsolidated);
79
+ // });
80
+ // app.get("/global-consolidation", async (req, res) => {
81
+ // const concepts_facts = embeddingsResp.concepts_facts;
82
+ // // let globallyConsolidated = await new GlobalConsolidation().consolidate(
83
+ // // concepts_facts,
84
+ // // "sourceID",
85
+ // // 0.2
86
+ // // );
87
+ // // let globallyConsolidated = await oeGen.globalConsolidation(
88
+ // // concepts_facts,
89
+ // // "sourceID",
90
+ // // 0.2
91
+ // // );
92
+ // // res.send(globallyConsolidated);
93
+ // });
55
94
  // app.listen(port, () => {
56
95
  // console.log(`Example app listening at http://localhost:${port}`);
57
96
  // });
58
- class OnlyEverGenerator {
59
- constructor(apiKey, model, content) {
60
- this.api_key = '';
61
- this.parsedContent = '';
62
- this.typologyResponse = {};
63
- this.cardgenResponse = {};
64
- this.summarizeResponse = {};
65
- this.api_key = apiKey;
66
- this.openAiService = new open_ai_service_1.OpenAiService(apiKey, model !== null && model !== void 0 ? model : 'gpt-3.5-turbo-1106');
67
- this.parsedContent = new parse_source_content_1.ParseSourceContent(content).parse();
68
- }
69
- ;
70
- generate() {
71
- return __awaiter(this, arguments, void 0, function* (generate_card = false, generate_typology = false) {
72
- var _a, _b, _c;
73
- let typologyPrompt = (0, typology_prompt_1.returnTypologyPrompt)();
74
- let cardPrompt = (0, card_gen_prompt_1.returnCardGenPrompt)();
75
- let args = new GenerateArgs(generate_card, generate_typology, false, {
76
- typology_prompt: typologyPrompt,
77
- card_gen_prompt: cardPrompt,
78
- summary_prompt: ''
79
- });
80
- const responseToReturn = [];
81
- const whatNeedsToBeGenerated = args.getWhatNeedsToBeGenerated();
82
- for (let elem of whatNeedsToBeGenerated)
83
- if (elem == 'generate_tyopology') {
84
- this.typologyResponse = yield this.generateTypology((_a = args.prompts.typology_prompt) !== null && _a !== void 0 ? _a : '', this.parsedContent);
85
- responseToReturn.push(this.typologyResponse);
86
- }
87
- else if (elem == 'generate_card') {
88
- this.cardgenResponse = yield this.generateCard((_b = args.prompts.card_gen_prompt) !== null && _b !== void 0 ? _b : '', this.parsedContent + JSON.stringify(this.typologyResponse));
89
- responseToReturn.push(this.cardgenResponse);
90
- }
91
- else if (elem == 'generate_summary') {
92
- this.summarizeResponse = yield this.generateSummary((_c = args.prompts.summary_prompt) !== null && _c !== void 0 ? _c : '', this.parsedContent);
93
- responseToReturn.push(this.summarizeResponse);
94
- }
95
- return responseToReturn;
96
- });
97
- }
98
- _returnParsedContent() {
99
- return this.parsedContent;
100
- }
101
- generateCard(prompt, content) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- var _a;
104
- let response = yield ((_a = this.openAiService) === null || _a === void 0 ? void 0 : _a.sendRequest(prompt, this.parsedContent));
105
- response['type'] = 'card_gen';
106
- return response;
107
- });
108
- }
109
- generateTypology(prompt, content) {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- var _a;
112
- let response = yield ((_a = this.openAiService) === null || _a === void 0 ? void 0 : _a.sendRequest(prompt, this.parsedContent));
113
- response['type'] = 'typology';
114
- return response;
115
- });
116
- }
117
- generateSummary(prompt, content) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- var _a;
120
- let response = yield ((_a = this.openAiService) === null || _a === void 0 ? void 0 : _a.sendRequest(prompt, this.parsedContent));
121
- response['type'] = 'summary';
122
- return response;
123
- });
124
- }
125
- }
126
- exports.OnlyEverGenerator = OnlyEverGenerator;
127
- class GenerateArgs {
128
- constructor(generate_card, generate_typology, generate_summary, prompts = {
129
- typology_prompt: '',
130
- card_gen_prompt: '',
131
- summary_prompt: ''
132
- }) {
133
- this.generate_card = false;
134
- this.generate_typology = false;
135
- this.generate_summary = false;
136
- this.prompts = {
137
- typology_prompt: '',
138
- card_gen_prompt: '',
139
- summary_prompt: ''
140
- };
141
- this.generate_card = generate_card;
142
- this.generate_typology = generate_typology;
143
- this.generate_summary = generate_summary;
144
- this.prompts = prompts;
145
- }
146
- getWhatNeedsToBeGenerated() {
147
- let returnData = [];
148
- if (this.generate_typology == true) {
149
- returnData.push('generate_tyopology');
150
- }
151
- if (this.generate_summary == true) {
152
- returnData.push('generate_summary');
153
- }
154
- if (this.generate_card == true) {
155
- returnData.push('generate_card');
156
- }
157
- return returnData;
158
- }
159
- }
160
- exports.GenerateArgs = GenerateArgs;
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,WAAW;AACX,wBAAwB;AACxB,oBAAoB;AACpB,sBAAsB;AACtB,oCAAoC;AACpC,iCAAiC;AACjC,yBAAyB;AACzB,qBAAqB;AACrB,8DAA8D;AAC9D,6DAA6D;AAC7D,8DAA8D;AAC9D,mEAAmE;AACnE,8EAA8E;AAC9E,6EAA6E;AAC7E,wDAAwD;;;AAExD,yCAAoD;AAQ3C,kGARA,uBAAiB,OAQA;AAE1B,gIAAgI;AAChI,kBAAkB;AAClB,uEAAuE;AACvE,gCAAgC;AAChC,iCAAiC;AACjC,MAAM;AACN,qCAAqC;AACrC,+CAA+C;AAC/C,wCAAwC;AACxC,yBAAyB;AAEzB,0BAA0B;AAC1B,MAAM;AAEN,2CAA2C;AAC3C,mCAAmC;AACnC,2CAA2C;AAC3C,qDAAqD;AACrD,0CAA0C;AAC1C,iEAAiE;AACjE,sDAAsD;AACtD,yBAAyB;AACzB,MAAM;AAEN,kDAAkD;AAClD,yCAAyC;AACzC,qCAAqC;AAErC,0BAA0B;AAC1B,qDAAqD;AACrD,wBAAwB;AACxB,sDAAsD;AACtD,0DAA0D;AAC1D,wBAAwB;AACxB,OAAO;AACP,yEAAyE;AACzE,0BAA0B;AAC1B,MAAM;AAEN,mDAAmD;AACnD,mCAAmC;AACnC,6CAA6C;AAC7C,+CAA+C;AAC/C,6BAA6B;AAC7B,gCAAgC;AAChC,YAAY;AACZ,OAAO;AACP,0BAA0B;AAC1B,MAAM;AAEN,6CAA6C;AAC7C,MAAM;AACN,+DAA+D;AAC/D,iCAAiC;AACjC,MAAM;AACN,MAAM;AAEN,wDAAwD;AACxD,0DAA0D;AAE1D,oEAAoE;AACpE,sBAAsB;AACtB,iBAAiB;AACjB,OAAO;AACP,mCAAmC;AACnC,MAAM;AAEN,yDAAyD;AACzD,0DAA0D;AAE1D,+EAA+E;AAC/E,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,UAAU;AACV,mEAAmE;AACnE,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,UAAU;AACV,uCAAuC;AACvC,MAAM;AAEN,2BAA2B;AAC3B,sEAAsE;AACtE,MAAM"}
@@ -0,0 +1,6 @@
1
+ export declare class ErrorLogger {
2
+ data: any;
3
+ constructor(data: any);
4
+ log(): Promise<import("axios").AxiosResponse<any, any> | undefined>;
5
+ }
6
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAKA,qBAAa,WAAW;IACtB,IAAI,EAAE,GAAG,CAAC;gBACE,IAAI,EAAE,GAAG;IAIf,GAAG;CAkBV"}
package/dist/logger.js ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /// this method will call out atlas function and will write to a doc, incase of any errors:
3
+ /// this is only for developmemt use
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ErrorLogger = void 0;
18
+ const axios_1 = __importDefault(require("axios"));
19
+ class ErrorLogger {
20
+ constructor(data) {
21
+ this.data = data;
22
+ }
23
+ log() {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ try {
26
+ let response = yield axios_1.default.post("https://us-east-1.aws.data.mongodb-api.com/app/oe-phase1-tkmsy/endpoint/oe_gen_logger", {
27
+ data: this.data,
28
+ }, {
29
+ headers: {
30
+ "Content-Type": ["application/json"],
31
+ },
32
+ });
33
+ return response;
34
+ }
35
+ catch (e) {
36
+ console.log(e);
37
+ }
38
+ });
39
+ }
40
+ }
41
+ exports.ErrorLogger = ErrorLogger;
42
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA,2FAA2F;AAC3F,oCAAoC;;;;;;;;;;;;;;;AAEpC,kDAA0B;AAE1B,MAAa,WAAW;IAEtB,YAAY,IAAS;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEK,GAAG;;YACP,IAAI,CAAC;gBACH,IAAI,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC7B,uFAAuF,EACvF;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,EACD;oBACE,OAAO,EAAE;wBACP,cAAc,EAAE,CAAC,kBAAkB,CAAC;qBACrC;iBACF,CACF,CAAC;gBACF,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;KAAA;CACF;AAxBD,kCAwBC"}
@@ -0,0 +1,10 @@
1
+ export declare class ParseClozeCard {
2
+ parse(data: any): any;
3
+ _generateClozeCardDisplayTitle(question: string, answers: Array<any>): string;
4
+ _prepareQuestionAndCorrectAnswers(rawPrompt: String, correctOptions: Array<any>): {
5
+ prompt: string;
6
+ options: any;
7
+ };
8
+ _validateCloze(clozeCard: any): any;
9
+ }
10
+ //# sourceMappingURL=parse_cloze_card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_cloze_card.d.ts","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_cloze_card.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,KAAK,CAAC,IAAI,EAAE,GAAG;IAgDf,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"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseClozeCard = void 0;
4
+ class ParseClozeCard {
5
+ parse(data) {
6
+ try {
7
+ const content = data.card_content;
8
+ let correctOptions = content.correct_options;
9
+ let incorrectOptions = content.incorrect_options;
10
+ let allOptions = [...correctOptions, ...incorrectOptions];
11
+ let displayTitle = this._generateClozeCardDisplayTitle(data.card_content.prompt, allOptions);
12
+ let preparedData = this._prepareQuestionAndCorrectAnswers(content.prompt, correctOptions);
13
+ let finalQuestion = preparedData.prompt;
14
+ let parsedCorrectOptions = preparedData.options;
15
+ let parsedIncorrectoptions = incorrectOptions.map((e) => {
16
+ return {
17
+ option: e,
18
+ cloze: "null",
19
+ };
20
+ });
21
+ const finalParsedOptions = [
22
+ ...parsedCorrectOptions,
23
+ ...parsedIncorrectoptions,
24
+ ];
25
+ let clozeCardData = {
26
+ type: {
27
+ category: "learning",
28
+ sub_type: data.type,
29
+ },
30
+ heading: "",
31
+ displayTitle: displayTitle,
32
+ content: {
33
+ question: finalQuestion,
34
+ options: finalParsedOptions,
35
+ },
36
+ concepts: data.concepts,
37
+ facts: data.facts,
38
+ explanation: data.card_content.explanation,
39
+ };
40
+ return this._validateCloze(clozeCardData);
41
+ }
42
+ catch (e) {
43
+ return null;
44
+ }
45
+ }
46
+ _generateClozeCardDisplayTitle(question, answers) {
47
+ try {
48
+ let optionsString = "";
49
+ if (answers.length !== 0) {
50
+ optionsString = answers.join(", ");
51
+ }
52
+ return `${question} ---- ${optionsString}`;
53
+ }
54
+ catch (e) {
55
+ throw Error("Error in generating display title");
56
+ }
57
+ }
58
+ /// validate the cloze card
59
+ // 1. Has Empty cloze
60
+ // 2. has Duplicate Clozes
61
+ // 3. doesnt have any valid option,
62
+ // 4. Question length 320
63
+ // 5. More than 6 options
64
+ // 6. Less than 2 options
65
+ // 7. Max character for individual cloze: 90
66
+ _prepareQuestionAndCorrectAnswers(rawPrompt, correctOptions) {
67
+ try {
68
+ var finalCorrectOptions = [];
69
+ const regex = /{{(.*?)}}/g;
70
+ const transformed = rawPrompt.replace(regex, (match, p1) => {
71
+ // p1 is the captured group inside {{ }} (e.g., "fruit", "green")
72
+ const idx = correctOptions.indexOf(p1);
73
+ if (idx !== -1) {
74
+ let cloze = `c${idx}`;
75
+ finalCorrectOptions.push({
76
+ option: p1,
77
+ cloze: cloze,
78
+ });
79
+ return `{{c${idx}:${p1}}}`;
80
+ }
81
+ return match; // If not found in correct_options, leave as is or handle accordingly
82
+ });
83
+ return {
84
+ prompt: transformed,
85
+ options: finalCorrectOptions,
86
+ };
87
+ }
88
+ catch (e) {
89
+ throw Error("Error in preparing question and correct answers");
90
+ }
91
+ }
92
+ _validateCloze(clozeCard) {
93
+ var _a;
94
+ let clozeRegex = /\{\{c(\d+):([^}]+)\}\}/g;
95
+ try {
96
+ /// validate emptu cloze
97
+ let options = (_a = clozeCard.content.options) !== null && _a !== void 0 ? _a : [];
98
+ let question = clozeCard.content.question;
99
+ if (options.length < 2 || options.length > 6) {
100
+ throw Error("Number of cloze options are invalid");
101
+ }
102
+ /// There are no correct clozes// or null cloze or empty cloze
103
+ let correctOptions = options.find((e) => e.cloze != "null" && e.cloze != null && e.cloze.trim() != "");
104
+ if (correctOptions) {
105
+ }
106
+ else {
107
+ throw Error(" No valid clozes exists");
108
+ }
109
+ let rightClozes = options.filter((e) => e.cloze.startsWith("c"));
110
+ /// matches our cloze syntax
111
+ let clozeMatches = [...question.matchAll(clozeRegex)];
112
+ if (clozeMatches.length == 0) {
113
+ throw Error("Question Invalid");
114
+ }
115
+ else if (clozeMatches.length != rightClozes.length) {
116
+ throw Error(" Clozes in question doesnt match to clozes in options");
117
+ }
118
+ return clozeCard;
119
+ }
120
+ catch (e) {
121
+ throw Error(`Error in validating cloze card ${e.message}`);
122
+ }
123
+ }
124
+ }
125
+ exports.ParseClozeCard = ParseClozeCard;
126
+ //# sourceMappingURL=parse_cloze_card.js.map
@@ -0,0 +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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"}