@xapp/stentor-service-housecall-pro 1.78.2 → 1.80.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -6
- package/lib/ai.d.ts +0 -0
- package/lib/ai.js +0 -190
- package/lib/ai.js.map +0 -1
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "1.
|
|
7
|
+
"version": "1.80.3",
|
|
8
8
|
"description": "Service to integrate with Housecall Pro",
|
|
9
9
|
"types": "lib/index",
|
|
10
10
|
"main": "lib/index",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"chai": "4.5.0",
|
|
20
20
|
"dotenv": "17.4.2",
|
|
21
21
|
"mocha": "11.7.5",
|
|
22
|
-
"stentor-logger": "1.72.
|
|
23
|
-
"stentor-models": "1.72.
|
|
24
|
-
"stentor-service-fetch": "1.72.
|
|
22
|
+
"stentor-logger": "1.72.3",
|
|
23
|
+
"stentor-models": "1.72.3",
|
|
24
|
+
"stentor-service-fetch": "1.72.3",
|
|
25
25
|
"ts-node": "10.9.2",
|
|
26
26
|
"typescript": "5.9.3"
|
|
27
27
|
},
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"test": "exit 0",
|
|
37
37
|
"local": "mocha --recursive --timeout 9000 -r ts-node/register \"./src/**/*.test.ts\""
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "06fa3fc79deca527eab7f75696fae30afa5e1587",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"addresser": "1.1.20",
|
|
42
42
|
"date-fns": "4.1.0",
|
|
43
|
-
"openai": "6.
|
|
43
|
+
"openai": "6.34.0"
|
|
44
44
|
}
|
|
45
45
|
}
|
package/lib/ai.d.ts
DELETED
|
File without changes
|
package/lib/ai.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
// /*! Copyright (c) 2022, XAPPmedia */
|
|
2
|
-
// // Import necessary modules
|
|
3
|
-
// import OpenAI from "openai";
|
|
4
|
-
// import { log } from "stentor-logger";
|
|
5
|
-
// export interface JobTypeAiQuery {
|
|
6
|
-
// question: string;
|
|
7
|
-
// jobTypes: JobTypeDescriptor[];
|
|
8
|
-
// apiKey?: string;
|
|
9
|
-
// }
|
|
10
|
-
// export interface JobTypeDescriptor {
|
|
11
|
-
// id: number;
|
|
12
|
-
// name: string;
|
|
13
|
-
// summary: string;
|
|
14
|
-
// businessUnitIds?: number[];
|
|
15
|
-
// }
|
|
16
|
-
// export interface JobTypeAiResponse extends JobTypeDescriptor {
|
|
17
|
-
// confidence: number;
|
|
18
|
-
// }
|
|
19
|
-
// export async function guessJobTypes(query: JobTypeAiQuery): Promise<JobTypeAiResponse[]> {
|
|
20
|
-
// const { question, jobTypes, apiKey } = query;
|
|
21
|
-
// const openai = new OpenAI({
|
|
22
|
-
// apiKey: apiKey || process.env.OPENAI_API_KEY
|
|
23
|
-
// });
|
|
24
|
-
// const response = await openai.chat.completions.create({
|
|
25
|
-
// model: "gpt-4",
|
|
26
|
-
// messages: [
|
|
27
|
-
// {
|
|
28
|
-
// role: "system",
|
|
29
|
-
// content: `You are a helpful assistant for a plumbing company. Your job is to match a customer
|
|
30
|
-
// request to a specific job type based on a customer's input of a problem.
|
|
31
|
-
// Print your top three possible job types with most confident on top.
|
|
32
|
-
// With each new line being a job type, print the id, name, summary, and confidence on a scale between 0 and 1.
|
|
33
|
-
// Respond with a json object. Job Types in JSON: ${JSON.stringify(jobTypes)}`
|
|
34
|
-
// },
|
|
35
|
-
// {
|
|
36
|
-
// role: "user",
|
|
37
|
-
// content: question
|
|
38
|
-
// }
|
|
39
|
-
// ],
|
|
40
|
-
// temperature: 1,
|
|
41
|
-
// max_tokens: 256,
|
|
42
|
-
// top_p: 1,
|
|
43
|
-
// frequency_penalty: 0,
|
|
44
|
-
// presence_penalty: 0
|
|
45
|
-
// });
|
|
46
|
-
// const content = response?.choices?.[0]?.message?.content;
|
|
47
|
-
// let choices: JobTypeAiResponse[];
|
|
48
|
-
// try {
|
|
49
|
-
// choices = JSON.parse(content);
|
|
50
|
-
// } catch (err) {
|
|
51
|
-
// log().error(`OpenAI: Cannot parse response. QUESTION: "${question}" RESPONSE: "${content}"`);
|
|
52
|
-
// }
|
|
53
|
-
// if (!choices || choices.length === 0) {
|
|
54
|
-
// log().error(`OpenAI: Bad response:\n${JSON.stringify(response, null, 2)}`);
|
|
55
|
-
// }
|
|
56
|
-
// return choices || [];
|
|
57
|
-
// }
|
|
58
|
-
// // const testJobTypes: JobTypeDescriptor[] = [
|
|
59
|
-
// // {
|
|
60
|
-
// // id: 481,
|
|
61
|
-
// // name: "PLUM: Service",
|
|
62
|
-
// // summary: "Service job type"
|
|
63
|
-
// // },
|
|
64
|
-
// // {
|
|
65
|
-
// // id: 484,
|
|
66
|
-
// // name: "ELEC: Service",
|
|
67
|
-
// // summary: ""
|
|
68
|
-
// // },
|
|
69
|
-
// // {
|
|
70
|
-
// // id: 485,
|
|
71
|
-
// // name: "PLUM: Install",
|
|
72
|
-
// // summary: ""
|
|
73
|
-
// // },
|
|
74
|
-
// // {
|
|
75
|
-
// // id: 5008581,
|
|
76
|
-
// // name: "ELEC: Sales Estimate",
|
|
77
|
-
// // summary: "Age of the unit?"
|
|
78
|
-
// // },
|
|
79
|
-
// // {
|
|
80
|
-
// // id: 18006021,
|
|
81
|
-
// // name: "PLUM: Sales Estimate",
|
|
82
|
-
// // summary: ""
|
|
83
|
-
// // },
|
|
84
|
-
// // {
|
|
85
|
-
// // id: 18500011,
|
|
86
|
-
// // name: "HVAC: Service",
|
|
87
|
-
// // summary: ""
|
|
88
|
-
// // },
|
|
89
|
-
// // {
|
|
90
|
-
// // id: 18500012,
|
|
91
|
-
// // name: "HVAC: Install",
|
|
92
|
-
// // summary: ""
|
|
93
|
-
// // },
|
|
94
|
-
// // {
|
|
95
|
-
// // id: 18500023,
|
|
96
|
-
// // name: "HVAC: Sales Estimate",
|
|
97
|
-
// // summary: ""
|
|
98
|
-
// // },
|
|
99
|
-
// // {
|
|
100
|
-
// // id: 18500037,
|
|
101
|
-
// // name: "HVAC: Service Callback / Warranty",
|
|
102
|
-
// // summary: ""
|
|
103
|
-
// // },
|
|
104
|
-
// // {
|
|
105
|
-
// // id: 18500045,
|
|
106
|
-
// // name: "PLUM: Service Callback / Warranty",
|
|
107
|
-
// // summary: ""
|
|
108
|
-
// // },
|
|
109
|
-
// // {
|
|
110
|
-
// // id: 18500062,
|
|
111
|
-
// // name: "HVAC: SPP Visit - Spring",
|
|
112
|
-
// // summary: ""
|
|
113
|
-
// // },
|
|
114
|
-
// // {
|
|
115
|
-
// // id: 18500071,
|
|
116
|
-
// // name: "HVAC: SPP Visit - Fall",
|
|
117
|
-
// // summary: ""
|
|
118
|
-
// // },
|
|
119
|
-
// // {
|
|
120
|
-
// // id: 50002111,
|
|
121
|
-
// // name: "ELEC: Callback / Warranty",
|
|
122
|
-
// // summary: ""
|
|
123
|
-
// // },
|
|
124
|
-
// // {
|
|
125
|
-
// // id: 142421316,
|
|
126
|
-
// // name: "PLUM: SPP - Water Heater Flush",
|
|
127
|
-
// // summary: ""
|
|
128
|
-
// // },
|
|
129
|
-
// // {
|
|
130
|
-
// // id: 188446882,
|
|
131
|
-
// // name: "PLUM: Mid Atlantic Trenchless",
|
|
132
|
-
// // summary: ""
|
|
133
|
-
// // },
|
|
134
|
-
// // {
|
|
135
|
-
// // id: 188448026,
|
|
136
|
-
// // name: "PLUM: Water Heater Install",
|
|
137
|
-
// // summary: ""
|
|
138
|
-
// // },
|
|
139
|
-
// // {
|
|
140
|
-
// // id: 188448297,
|
|
141
|
-
// // name: "PLUM: Install Callback / Warranty ",
|
|
142
|
-
// // summary: ""
|
|
143
|
-
// // },
|
|
144
|
-
// // {
|
|
145
|
-
// // id: 188448540,
|
|
146
|
-
// // name: "HVAC: Marketed Tune Up",
|
|
147
|
-
// // summary: ""
|
|
148
|
-
// // },
|
|
149
|
-
// // {
|
|
150
|
-
// // id: 188448656,
|
|
151
|
-
// // name: "PLUM: Trenchless Install",
|
|
152
|
-
// // summary: ""
|
|
153
|
-
// // },
|
|
154
|
-
// // {
|
|
155
|
-
// // id: 188449170,
|
|
156
|
-
// // name: "PLUM: Tankless Install",
|
|
157
|
-
// // summary: ""
|
|
158
|
-
// // },
|
|
159
|
-
// // {
|
|
160
|
-
// // id: 188449576,
|
|
161
|
-
// // name: "HVAC: Install Callback / Warranty",
|
|
162
|
-
// // summary: ""
|
|
163
|
-
// // },
|
|
164
|
-
// // {
|
|
165
|
-
// // id: 189746127,
|
|
166
|
-
// // name: "HVAC: Water Heater Install",
|
|
167
|
-
// // summary: ""
|
|
168
|
-
// // },
|
|
169
|
-
// // {
|
|
170
|
-
// // id: 189766613,
|
|
171
|
-
// // name: "HVAC: Tankless Install",
|
|
172
|
-
// // summary: ""
|
|
173
|
-
// // }
|
|
174
|
-
// // ];
|
|
175
|
-
// // (function () {
|
|
176
|
-
// // const query = {
|
|
177
|
-
// // question: "There is a flood in the basement.",
|
|
178
|
-
// // jobTypes: testJobTypes,
|
|
179
|
-
// // apiKey: "xxxxx"
|
|
180
|
-
// // };
|
|
181
|
-
// // guessJobTypes(query)
|
|
182
|
-
// // .then((jobTypes) => {
|
|
183
|
-
// // log().error(`\nQUESTION: "${query.question}"\nJOBTYPES:\n${JSON.stringify(jobTypes, null, 2)}`);
|
|
184
|
-
// // })
|
|
185
|
-
// // .catch((err) => {
|
|
186
|
-
// // log().error(err.toString());
|
|
187
|
-
// // });
|
|
188
|
-
// // log().error("Done");
|
|
189
|
-
// // })();
|
|
190
|
-
//# sourceMappingURL=ai.js.map
|
package/lib/ai.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
|