only_ever_generator 0.5.4 → 0.5.6

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 (40) hide show
  1. package/dist/bootstrap/app.js +5 -5
  2. package/dist/card_gen/generate_cards.js +2 -1
  3. package/dist/config.js +1 -1
  4. package/dist/constants/api_constants.js +1 -1
  5. package/dist/constants/prompt_data.js +4 -4
  6. package/dist/constants/source_data.js +234 -982
  7. package/dist/logger.js +4 -4
  8. package/dist/parse/parse_card/parse_cloze_card.js +12 -10
  9. package/dist/parse/parse_card/parse_flash_cards.js +33 -0
  10. package/dist/parse/parse_card/parse_match_card.js +1 -1
  11. package/dist/parse/parse_card/parse_mcq_card.js +1 -1
  12. package/dist/parse/parse_card_response.js +8 -31
  13. package/dist/parse/parse_source_content.js +30 -20
  14. package/dist/parse/response_format_typology.js +16 -16
  15. package/dist/services/open_ai_service.js +13 -10
  16. package/dist/typology_gen/generate_typology.js +16 -15
  17. package/dist/utils/generate_args.js +3 -3
  18. package/dist/utils/parse_openai_response.js +7 -7
  19. package/package.json +1 -1
  20. package/src/bootstrap/app.ts +69 -79
  21. package/src/card_gen/generate_cards.ts +6 -1
  22. package/src/config.ts +3 -3
  23. package/src/constants/api_constants.ts +3 -3
  24. package/src/constants/prompt_data.ts +24 -26
  25. package/src/constants/prompts/card_gen_prompt.ts +2 -4
  26. package/src/constants/source_data.ts +317 -1181
  27. package/src/index.ts +1 -2
  28. package/src/logger.ts +24 -25
  29. package/src/parse/parse_card/parse_cloze_card.ts +55 -43
  30. package/src/parse/parse_card/parse_flash_cards.ts +33 -0
  31. package/src/parse/parse_card/parse_match_card.ts +33 -33
  32. package/src/parse/parse_card/parse_mcq_card.ts +1 -1
  33. package/src/parse/parse_card_response.ts +28 -47
  34. package/src/parse/parse_source_content.ts +173 -168
  35. package/src/parse/response_format_card.ts +0 -2
  36. package/src/parse/response_format_typology.ts +42 -42
  37. package/src/services/open_ai_service.ts +50 -48
  38. package/src/typology_gen/generate_typology.ts +68 -60
  39. package/src/utils/generate_args.ts +25 -23
  40. package/src/utils/parse_openai_response.ts +17 -19
@@ -2,74 +2,82 @@ import { OpenAiService } from "../services/open_ai_service";
2
2
  import { returnTypologyData } from "../parse/response_format_typology";
3
3
  import { ErrorLogger } from "../logger";
4
4
 
5
- export class GenerateTypology{
6
- public openAiService: OpenAiService;
7
- public prompt:string = '';
8
- public content:string = '';
9
- expectedFields: Array<string>;
10
- constructor(openAiService: OpenAiService, prompt:string,content:string,expected_fields: Array<string>){
11
- this.openAiService = openAiService;
12
- this.prompt = prompt;
13
- this.content = content;
14
- this.expectedFields = expected_fields.map((elem:string)=>elem.toLowerCase());
15
- }
16
- async generate(){
17
- try{
18
- const response = await this.openAiService?.sendRequest(this.prompt,this.content);
19
- response['type'] = 'typology';
5
+ export class GenerateTypology {
6
+ public openAiService: OpenAiService;
7
+ public prompt: string = "";
8
+ public content: string = "";
9
+ expectedFields: Array<string>;
10
+ constructor(
11
+ openAiService: OpenAiService,
12
+ prompt: string,
13
+ content: string,
14
+ expected_fields: Array<string>
15
+ ) {
16
+ this.openAiService = openAiService;
17
+ this.prompt = prompt;
18
+ this.content = content;
19
+ this.expectedFields = expected_fields.map((elem: string) =>
20
+ elem.toLowerCase()
21
+ );
22
+ }
23
+ async generate() {
24
+ try {
25
+ const response = await this.openAiService?.sendRequest(
26
+ this.prompt,
27
+ this.content
28
+ );
29
+ response["type"] = "typology";
20
30
  response.metadata = {
21
- "req_time": response.generated_at ?? new Date(),
22
- "req_type": response.type,
23
- "req_tokens": response.usage_data?.prompt_tokens,
24
- "res_tokens": response.usage_data?.completion_tokens,
25
- "model": this.openAiService.model
26
- };
27
- if(response.status_code == 200){
31
+ req_time: response.generated_at ?? new Date(),
32
+ req_type: response.type,
33
+ req_tokens: response.usage_data?.prompt_tokens,
34
+ res_tokens: response.usage_data?.completion_tokens,
35
+ prompt_tokens_details: response.usage_data?.prompt_tokens_details,
36
+ model: this.openAiService.model,
37
+ };
38
+ if (response.status_code == 200) {
28
39
  return this.parseTypologyOnSuccess(response);
29
40
  } else {
30
41
  response.metadata.err_message = response.message;
31
42
  return response;
32
- }} catch (e: any){
33
- await new ErrorLogger({
34
- "type": 'typology_parsing',
35
- "data": e.message
36
- }).log();
37
43
  }
44
+ } catch (e: any) {
45
+ await new ErrorLogger({
46
+ type: "typology_parsing",
47
+ data: e.message,
48
+ }).log();
38
49
  }
50
+ }
39
51
 
52
+ parseTypologyOnSuccess(responseData: any) {
53
+ responseData.metadata.status = "completed";
54
+ const generatedContent = responseData.generated_content;
55
+ return {
56
+ status_code: 200,
57
+ metadata: responseData.metadata,
58
+ field: this.parseFields(generatedContent.field),
59
+ concepts: generatedContent.concepts,
60
+ facts: generatedContent.facts,
61
+ generate_cards: generatedContent.generate_cards,
62
+ summary_cards: generatedContent.summary_cards,
63
+ type: responseData.type,
64
+ };
65
+ }
40
66
 
41
- parseTypologyOnSuccess(responseData : any){
42
- responseData.metadata.status = "completed";
43
- const generatedContent = responseData.generated_content;
44
- return {
45
- status_code: 200,
46
- metadata: responseData.metadata,
47
- field: this.parseFields(generatedContent.field),
48
- concepts: generatedContent.concepts,
49
- facts: generatedContent.facts,
50
- generate_cards : generatedContent.generate_cards,
51
- summary_cards: generatedContent.summary_cards,
52
- type: responseData.type
53
- }
54
- }
55
-
56
- parseFields(fields: Array<string>){
57
- const fieldKeys = ['primary_field', 'secondary_field', 'tertiary_field'];
58
- return fields.slice(0,3).map((item,index)=> (
59
- {
60
- [fieldKeys[index]]: item,
61
- "reconcile" : !(this.expectedFields.includes(item.toLowerCase()))
62
- }
63
- ));
64
- }
65
-
66
- async parseTypologyOnFailure(responseData:any){
67
- responseData.metadata.status = 'failed';
67
+ parseFields(fields: Array<string>) {
68
+ const fieldKeys = ["primary_field", "secondary_field", "tertiary_field"];
69
+ return fields.slice(0, 3).map((item, index) => ({
70
+ [fieldKeys[index]]: item,
71
+ reconcile: !this.expectedFields.includes(item.toLowerCase()),
72
+ }));
73
+ }
68
74
 
69
- return {
70
- status_code: responseData.status_code,
71
- metadata: responseData.metadata,
72
- }
73
- }
75
+ async parseTypologyOnFailure(responseData: any) {
76
+ responseData.metadata.status = "failed";
74
77
 
75
- }
78
+ return {
79
+ status_code: responseData.status_code,
80
+ metadata: responseData.metadata,
81
+ };
82
+ }
83
+ }
@@ -1,27 +1,29 @@
1
- export class GenerateArgs{
2
- public generate_card : boolean = false;
3
- public generate_typology: boolean = false;
4
- public generate_summary: boolean = false;
1
+ export class GenerateArgs {
2
+ public generate_card: boolean = false;
3
+ public generate_typology: boolean = false;
4
+ public generate_summary: boolean = false;
5
5
 
6
- constructor(generate_card: boolean,generate_typology: boolean, generate_summary: boolean, ){
7
- this.generate_card = generate_card;
8
- this.generate_typology = generate_typology;
9
- this.generate_summary = generate_summary;
6
+ constructor(
7
+ generate_card: boolean,
8
+ generate_typology: boolean,
9
+ generate_summary: boolean
10
+ ) {
11
+ this.generate_card = generate_card;
12
+ this.generate_typology = generate_typology;
13
+ this.generate_summary = generate_summary;
14
+ }
10
15
 
16
+ getWhatNeedsToBeGenerated() {
17
+ let returnData = [];
18
+ if (this.generate_typology == true) {
19
+ returnData.push("generate_tyopology");
11
20
  }
12
-
13
- getWhatNeedsToBeGenerated(){
14
- let returnData = [];
15
- if(this.generate_typology == true){
16
- returnData.push('generate_tyopology')
17
- }
18
- if(this.generate_summary == true){
19
- returnData.push('generate_summary')
20
- }
21
- if(this.generate_card == true){
22
- returnData.push('generate_card');
23
- }
24
- return returnData;
21
+ if (this.generate_summary == true) {
22
+ returnData.push("generate_summary");
25
23
  }
26
-
27
- }
24
+ if (this.generate_card == true) {
25
+ returnData.push("generate_card");
26
+ }
27
+ return returnData;
28
+ }
29
+ }
@@ -1,21 +1,19 @@
1
- export function parseOpenAiSuccessResponse(responseData: any){
2
- let choices = JSON.parse(responseData.choices[0].message.content);
3
- let usuage = responseData.usage;
4
- let createdTime = responseData.created;
5
- return {
6
- 'status_code': 200,
7
- 'usage_data': usuage,
8
- 'generated_content':choices,
9
- 'generated_at': new Date(createdTime *1000)
10
- }
1
+ export function parseOpenAiSuccessResponse(responseData: any) {
2
+ let choices = JSON.parse(responseData.choices[0].message.content);
3
+ let usuage = responseData.usage;
4
+ let createdTime = responseData.created;
5
+ return {
6
+ status_code: 200,
7
+ usage_data: usuage,
8
+ generated_content: choices,
9
+ generated_at: new Date(createdTime * 1000),
10
+ };
11
11
  }
12
12
 
13
- export function parseOpenAiFailureResponse(errorResponse: any){
14
- // let statusCode =
15
- return {
16
- 'status_code': errorResponse.status,
17
- 'message': errorResponse.data?.error?.code
18
-
19
-
20
- }
21
- }
13
+ export function parseOpenAiFailureResponse(errorResponse: any) {
14
+ // let statusCode =
15
+ return {
16
+ status_code: errorResponse.status,
17
+ message: errorResponse.data?.error?.code,
18
+ };
19
+ }