only_ever_generator 0.1.5 → 0.1.7

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.
@@ -1,54 +1,54 @@
1
- import axios from "axios";
2
- import { parseOpenAiFailureResponse, parseOpenAiSuccessResponse } from "../utils/parse_openai_response";
3
- import { openAiEndPoint } from "../constants/api_constants";
4
-
5
-
6
- export class OpenAiService{
7
- public api_key: string;
8
- public model: string;
9
-
10
- constructor(apiKey: string, model:string){
11
- this.api_key = apiKey;
12
- this.model =model
13
- }
14
-
15
- async sendRequest(prompt: string,content: string){
16
- try{
17
- let message = [
18
- {
19
- "role": "system", "content": prompt
20
- },{
21
- "role": "user", "content": content
22
- }
23
- ];
24
- const url = openAiEndPoint();
25
- let response = await axios.post(
26
- url,
27
- {
28
- "model": this.model,
29
- "messages": message,
30
- "response_format": {"type": "json_object"},
31
- },
32
- {
33
- headers : {
34
- Authorization : "Bearer "+ this.api_key,
35
- "Content-Type" : ['application/json']
36
- },
37
-
38
- }
39
-
40
- );
41
-
42
- if(response.status == 200){
43
- console.log('success');
44
- return parseOpenAiSuccessResponse(response.data) as any
45
-
46
- }else{
47
- console.log('failed');
48
- return response.statusText as any;
49
- }}catch (err:any) {
50
- return parseOpenAiFailureResponse(err.response);
51
- }
52
- }
53
- }
54
-
1
+ import axios from "axios";
2
+ import { parseOpenAiFailureResponse, parseOpenAiSuccessResponse } from "../utils/parse_openai_response";
3
+ import { openAiEndPoint } from "../constants/api_constants";
4
+
5
+
6
+ export class OpenAiService{
7
+ public api_key: string;
8
+ public model: string;
9
+
10
+ constructor(apiKey: string, model:string){
11
+ this.api_key = apiKey;
12
+ this.model =model
13
+ }
14
+
15
+ async sendRequest(prompt: string,content: string){
16
+ try{
17
+ let message = [
18
+ {
19
+ "role": "system", "content": prompt
20
+ },{
21
+ "role": "user", "content": content
22
+ }
23
+ ];
24
+ const url = openAiEndPoint();
25
+ let response = await axios.post(
26
+ url,
27
+ {
28
+ "model": this.model,
29
+ "messages": message,
30
+ "response_format": {"type": "json_object"},
31
+ },
32
+ {
33
+ headers : {
34
+ Authorization : "Bearer "+ this.api_key,
35
+ "Content-Type" : ['application/json']
36
+ },
37
+
38
+ }
39
+
40
+ );
41
+
42
+ if(response.status == 200){
43
+ console.log('success');
44
+ return parseOpenAiSuccessResponse(response.data) as any
45
+
46
+ }else{
47
+ console.log('failed');
48
+ return response.statusText as any;
49
+ }}catch (err:any) {
50
+ return parseOpenAiFailureResponse(err.response);
51
+ }
52
+ }
53
+ }
54
+
@@ -1,65 +1,65 @@
1
- import { OpenAiService } from "../services/open_ai_service";
2
- import { returnTypologyData } from "../parse/response_format_typology";
3
-
4
- export class GenerateTypology{
5
- public openAiService: OpenAiService;
6
- public prompt:string = '';
7
- public content:string = '';
8
- expectedFields: Array<string>;
9
- constructor(openAiService: OpenAiService, prompt:string,content:string,expected_fields: Array<string>){
10
- this.openAiService = openAiService;
11
- this.prompt = prompt;
12
- this.content = content;
13
- this.expectedFields = expected_fields.map((elem:string)=>elem.toLowerCase());
14
- }
15
- async generate(){
16
- const response = await this.openAiService?.sendRequest(this.prompt,this.content);
17
- response['type'] = 'typology';
18
- response.metadata = {
19
- "req_time": response.generated_at,
20
- "req_type": response.type,
21
- "req_tokens": response.usage_data?.prompt_tokens,
22
- "res_tokens": response.usage_data?.completion_tokens,
23
- };
24
- if(response.status_code == 200){
25
- return this.parseTypologyOnSuccess(response);
26
- } else {
27
- return response;
28
- }
29
- }
30
-
31
-
32
- parseTypologyOnSuccess(responseData : any){
33
- responseData.metadata.status = "completed";
34
- const generatedContent = responseData.generated_content;
35
- return {
36
- status_code: 200,
37
- metadata: responseData.metadata,
38
- field: this.parseFields(generatedContent.field),
39
- concepts: generatedContent.concepts,
40
- facts: generatedContent.facts,
41
- generate_cards : generatedContent.generate_cards,
42
- summary_cards: generatedContent.summary_cards,
43
- type: responseData.type
44
- }
45
- }
46
-
47
- parseFields(fields: Array<string>){
48
- const fieldKeys = ['primary_field', 'secondary_field', 'tertiary_field'];
49
- return fields.slice(0,3).map((item,index)=> (
50
- {
51
- [fieldKeys[index]]: item,
52
- "reconcile" : !(this.expectedFields.includes(item.toLowerCase()))
53
- }
54
- ));
55
- }
56
-
57
- async parseTypologyOnFailure(responseData:any){
58
- responseData.metadata.status = 'failed';
59
- return {
60
- status_code: responseData.status_code,
61
- metadata: responseData.metadata,
62
- }
63
- }
64
-
1
+ import { OpenAiService } from "../services/open_ai_service";
2
+ import { returnTypologyData } from "../parse/response_format_typology";
3
+
4
+ export class GenerateTypology{
5
+ public openAiService: OpenAiService;
6
+ public prompt:string = '';
7
+ public content:string = '';
8
+ expectedFields: Array<string>;
9
+ constructor(openAiService: OpenAiService, prompt:string,content:string,expected_fields: Array<string>){
10
+ this.openAiService = openAiService;
11
+ this.prompt = prompt;
12
+ this.content = content;
13
+ this.expectedFields = expected_fields.map((elem:string)=>elem.toLowerCase());
14
+ }
15
+ async generate(){
16
+ const response = await this.openAiService?.sendRequest(this.prompt,this.content);
17
+ response['type'] = 'typology';
18
+ response.metadata = {
19
+ "req_time": response.generated_at,
20
+ "req_type": response.type,
21
+ "req_tokens": response.usage_data?.prompt_tokens,
22
+ "res_tokens": response.usage_data?.completion_tokens,
23
+ };
24
+ if(response.status_code == 200){
25
+ return this.parseTypologyOnSuccess(response);
26
+ } else {
27
+ return response;
28
+ }
29
+ }
30
+
31
+
32
+ parseTypologyOnSuccess(responseData : any){
33
+ responseData.metadata.status = "completed";
34
+ const generatedContent = responseData.generated_content;
35
+ return {
36
+ status_code: 200,
37
+ metadata: responseData.metadata,
38
+ field: this.parseFields(generatedContent.field),
39
+ concepts: generatedContent.concepts,
40
+ facts: generatedContent.facts,
41
+ generate_cards : generatedContent.generate_cards,
42
+ summary_cards: generatedContent.summary_cards,
43
+ type: responseData.type
44
+ }
45
+ }
46
+
47
+ parseFields(fields: Array<string>){
48
+ const fieldKeys = ['primary_field', 'secondary_field', 'tertiary_field'];
49
+ return fields.slice(0,3).map((item,index)=> (
50
+ {
51
+ [fieldKeys[index]]: item,
52
+ "reconcile" : !(this.expectedFields.includes(item.toLowerCase()))
53
+ }
54
+ ));
55
+ }
56
+
57
+ async parseTypologyOnFailure(responseData:any){
58
+ responseData.metadata.status = 'failed';
59
+ return {
60
+ status_code: responseData.status_code,
61
+ metadata: responseData.metadata,
62
+ }
63
+ }
64
+
65
65
  }
@@ -1,38 +1,38 @@
1
- export class GenerateArgs{
2
- public generate_card : boolean = false;
3
- public generate_typology: boolean = false;
4
- public generate_summary: boolean = false;
5
- public prompts = {
6
- typology_prompt: '',
7
- card_gen_prompt: '',
8
- summary_prompt: ''
9
- }
10
-
11
- constructor(generate_card: boolean,generate_typology: boolean, generate_summary: boolean, prompts = {
12
- typology_prompt: '',
13
- card_gen_prompt: '',
14
- summary_prompt: ''
15
- }){
16
- this.generate_card = generate_card;
17
- this.generate_typology = generate_typology;
18
- this.generate_summary = generate_summary;
19
- this.prompts = prompts
20
- }
21
-
22
- getWhatNeedsToBeGenerated(){
23
- let returnData = [];
24
- if(this.generate_typology == true){
25
- returnData.push('generate_tyopology')
26
- }
27
- if(this.generate_summary == true){
28
- returnData.push('generate_summary')
29
- }
30
- if(this.generate_card == true){
31
- returnData.push('generate_card');
32
- }
33
- return returnData;
34
-
35
-
36
- }
37
-
1
+ export class GenerateArgs{
2
+ public generate_card : boolean = false;
3
+ public generate_typology: boolean = false;
4
+ public generate_summary: boolean = false;
5
+ public prompts = {
6
+ typology_prompt: '',
7
+ card_gen_prompt: '',
8
+ summary_prompt: ''
9
+ }
10
+
11
+ constructor(generate_card: boolean,generate_typology: boolean, generate_summary: boolean, prompts = {
12
+ typology_prompt: '',
13
+ card_gen_prompt: '',
14
+ summary_prompt: ''
15
+ }){
16
+ this.generate_card = generate_card;
17
+ this.generate_typology = generate_typology;
18
+ this.generate_summary = generate_summary;
19
+ this.prompts = prompts
20
+ }
21
+
22
+ getWhatNeedsToBeGenerated(){
23
+ let returnData = [];
24
+ if(this.generate_typology == true){
25
+ returnData.push('generate_tyopology')
26
+ }
27
+ if(this.generate_summary == true){
28
+ returnData.push('generate_summary')
29
+ }
30
+ if(this.generate_card == true){
31
+ returnData.push('generate_card');
32
+ }
33
+ return returnData;
34
+
35
+
36
+ }
37
+
38
38
  }
@@ -1,21 +1,21 @@
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': createdTime
10
- }
11
- }
12
-
13
- export function parseOpenAiFailureResponse(errorResponse: any){
14
- let usuage = errorResponse.usuage;
15
- // let statusCode =
16
- return {
17
- 'status_code': errorResponse.status,
18
-
19
-
20
- }
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': createdTime
10
+ }
11
+ }
12
+
13
+ export function parseOpenAiFailureResponse(errorResponse: any){
14
+ let usuage = errorResponse.usuage;
15
+ // let statusCode =
16
+ return {
17
+ 'status_code': errorResponse.status,
18
+
19
+
20
+ }
21
21
  }
package/tsconfig.json CHANGED
@@ -1,12 +1,12 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
4
- "module": "commonjs" /* Specify what module code is generated. */,
5
- "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
6
- "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
7
- "strict": true,
8
- "rootDir": "./src",
9
- "outDir": "./dist" /* Enable all strict type-checking options. */
10
- },
11
- "exclude": ["./src/*/*.d.ts"]
12
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
4
+ "module": "commonjs" /* Specify what module code is generated. */,
5
+ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
6
+ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
7
+ "strict": true,
8
+ "rootDir": "./src",
9
+ "outDir": "./dist" /* Enable all strict type-checking options. */
10
+ },
11
+ "exclude": ["./src/*/*.d.ts"]
12
+ }