@xapp/arachne-web-service 1.1.1 → 1.2.0
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/lib/ArachneWebService.d.ts +8 -0
- package/lib/ArachneWebService.js +58 -92
- package/lib/ArachneWebService.js.map +1 -1
- package/lib/GenerativeAIService.d.ts +36 -0
- package/lib/GenerativeAIService.js +125 -0
- package/lib/GenerativeAIService.js.map +1 -0
- package/lib/models.d.ts +10 -0
- package/lib/utils/getPrompt.js +1 -1
- package/lib/utils/getPrompt.js.map +1 -1
- package/package.json +10 -10
|
@@ -55,9 +55,17 @@ export interface ArachneAppGetInfoOptions {
|
|
|
55
55
|
* This can sometimes be different from what is found in JSON Schema data.
|
|
56
56
|
*/
|
|
57
57
|
preferContactUsPage?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Prefers contact information found in the <header> tag.
|
|
60
|
+
*/
|
|
61
|
+
preferHeaderInfo?: boolean;
|
|
58
62
|
};
|
|
59
63
|
}
|
|
60
64
|
export interface WebsiteData {
|
|
65
|
+
/**
|
|
66
|
+
* Website
|
|
67
|
+
*/
|
|
68
|
+
url: string;
|
|
61
69
|
/**
|
|
62
70
|
* Descriptive metadata for the website.
|
|
63
71
|
*/
|
package/lib/ArachneWebService.js
CHANGED
|
@@ -44,16 +44,16 @@ const cheerio = __importStar(require("cheerio"));
|
|
|
44
44
|
const arachne_1 = require("@xapp/arachne");
|
|
45
45
|
const arachne_parsers_1 = require("@xapp/arachne-parsers");
|
|
46
46
|
const stentor_logger_1 = require("stentor-logger");
|
|
47
|
+
const stentor_utils_1 = require("stentor-utils");
|
|
47
48
|
const node_vibrant_1 = __importDefault(require("node-vibrant"));
|
|
48
49
|
const findBestFaviconURL_1 = require("./utils/findBestFaviconURL");
|
|
49
50
|
const image_1 = require("./utils/image");
|
|
50
51
|
const isLambda_1 = require("./utils/isLambda");
|
|
51
52
|
const getSiteMap_1 = require("./utils/getSiteMap");
|
|
52
|
-
const getPrompt_1 = require("./utils/getPrompt");
|
|
53
53
|
const getBusinessData_1 = require("./utils/getBusinessData");
|
|
54
54
|
const getCallToAction_1 = require("./utils/getCallToAction");
|
|
55
55
|
const getBusinessCategoryFromSchema_1 = require("./utils/getBusinessCategoryFromSchema");
|
|
56
|
-
const
|
|
56
|
+
const GenerativeAIService_1 = require("./GenerativeAIService");
|
|
57
57
|
exports.DEFAULT_DETECTORS = [
|
|
58
58
|
arachne_parsers_1.XAPPDetector,
|
|
59
59
|
// Home Service Tools
|
|
@@ -139,7 +139,7 @@ class ArachneWebService {
|
|
|
139
139
|
browser,
|
|
140
140
|
pageHandlerTimeout,
|
|
141
141
|
pageHandler: (page, request) => __awaiter(this, void 0, void 0, function* () {
|
|
142
|
-
var _a;
|
|
142
|
+
var _a, _b, _c, _d;
|
|
143
143
|
const title = yield page.title();
|
|
144
144
|
const u = new URL(url);
|
|
145
145
|
const fileName = `${u.hostname}${u.pathname}`.replace(/[./]/g, "_");
|
|
@@ -158,7 +158,8 @@ class ArachneWebService {
|
|
|
158
158
|
const description = $('meta[name="description"]').attr('content');
|
|
159
159
|
const things = new arachne_parsers_1.ArachneJSONLD(html).getThings();
|
|
160
160
|
let localBusiness;
|
|
161
|
-
|
|
161
|
+
// TODO: Why aren't we using this?
|
|
162
|
+
// let homeConstructionBusiness: HomeAndConstructionBusiness | undefined;
|
|
162
163
|
(0, stentor_logger_1.log)().info('Looking through JSON Schema...');
|
|
163
164
|
for (const thing of things) {
|
|
164
165
|
if ((0, arachne_parsers_1.isLocalBusiness)(thing)) {
|
|
@@ -168,7 +169,7 @@ class ArachneWebService {
|
|
|
168
169
|
}
|
|
169
170
|
else if ((0, arachne_parsers_1.isHomeConstructionBusiness)(thing)) {
|
|
170
171
|
(0, stentor_logger_1.log)().debug(`Found home construction business`);
|
|
171
|
-
homeConstructionBusiness = thing;
|
|
172
|
+
// homeConstructionBusiness = thing;
|
|
172
173
|
schema.homeConstructionBusiness = thing;
|
|
173
174
|
}
|
|
174
175
|
else {
|
|
@@ -286,103 +287,62 @@ class ArachneWebService {
|
|
|
286
287
|
(0, stentor_logger_1.log)().debug(`Written.`);
|
|
287
288
|
}
|
|
288
289
|
let aiData = undefined;
|
|
289
|
-
// TODO: MOVE
|
|
290
290
|
const { openAIKey } = options;
|
|
291
291
|
// Use OpenAI to determine Call To Action
|
|
292
292
|
if (openAIKey) {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
const webPrompt = (0, getPrompt_1.getWebMarkdownPrompt)(markdown, url);
|
|
296
|
-
let prompt = webPrompt.prompt;
|
|
297
|
-
let maxTokens = webPrompt.maxTokens;
|
|
298
|
-
let tokens = webPrompt.tokens;
|
|
299
|
-
// first try if over max tokens
|
|
300
|
-
if (maxTokens < 0 && (siteMapData === null || siteMapData === void 0 ? void 0 : siteMapData.aboutUs)) {
|
|
301
|
-
const aboutUs = siteMapData.aboutUs;
|
|
302
|
-
// load about us
|
|
303
|
-
(0, stentor_logger_1.log)().info(`Too many tokens, attempting to load about us page at ${aboutUs}...`);
|
|
304
|
-
yield page.goto(aboutUs);
|
|
305
|
-
(0, stentor_logger_1.log)().info(`Loaded...`);
|
|
306
|
-
const aboutUsHTML = yield page.content();
|
|
307
|
-
(0, stentor_logger_1.log)().debug(aboutUsHTML);
|
|
308
|
-
(0, stentor_logger_1.log)().debug("====");
|
|
309
|
-
const aboutUsMarkdown = new arachne_parsers_1.ArachneHTMLtoText({ stripTags: [...arachne_parsers_1.DEFAULT_STRIP_TAGS, "head", "img", "iframe", "style"] }).convert(aboutUsHTML, true);
|
|
310
|
-
const aboutUsPrompt = (0, getPrompt_1.getWebMarkdownPrompt)(aboutUsMarkdown, url);
|
|
311
|
-
(0, stentor_logger_1.log)().debug(aboutUsMarkdown);
|
|
312
|
-
(0, stentor_logger_1.log)().info(`About Us tokens: ${aboutUsPrompt.tokens} max: ${aboutUsPrompt.maxTokens}`);
|
|
313
|
-
if (aboutUsPrompt.maxTokens > 0) {
|
|
314
|
-
(0, stentor_logger_1.log)().info(`Using about us page.`);
|
|
315
|
-
prompt = aboutUsPrompt.prompt;
|
|
316
|
-
maxTokens = aboutUsPrompt.maxTokens;
|
|
317
|
-
tokens = aboutUsPrompt.tokens;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
if (maxTokens < 0 && localBusiness || homeConstructionBusiness) {
|
|
321
|
-
(0, stentor_logger_1.log)().info(`Too many tokens, attempting to use LocalBusiness schema to generate description.`);
|
|
322
|
-
// try second prompt where we send the JSON.
|
|
323
|
-
const jsonSchemaPrompt = (0, getPrompt_1.getJSONSchemaPrompt)(localBusiness || homeConstructionBusiness, url);
|
|
324
|
-
(0, stentor_logger_1.log)().info(`JSON Schema tokens: ${jsonSchemaPrompt.tokens} max: ${jsonSchemaPrompt.maxTokens}`);
|
|
325
|
-
if (jsonSchemaPrompt.maxTokens > 0) {
|
|
326
|
-
(0, stentor_logger_1.log)().info(`LocalBusiness JSON fits within token limit, using it.`);
|
|
327
|
-
prompt = jsonSchemaPrompt.prompt;
|
|
328
|
-
maxTokens = jsonSchemaPrompt.maxTokens;
|
|
329
|
-
tokens = jsonSchemaPrompt.tokens;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
(0, stentor_logger_1.log)().info(`Final prompt is ${tokens} tokens, setting max_tokens to ${maxTokens}.`);
|
|
333
|
-
const options = {
|
|
334
|
-
method: 'POST',
|
|
335
|
-
headers: {
|
|
336
|
-
'Content-Type': 'application/json',
|
|
337
|
-
'Authorization': `Bearer ${openAIKey}`,
|
|
338
|
-
},
|
|
339
|
-
body: JSON.stringify({
|
|
340
|
-
model: "gpt-3.5-turbo-instruct",
|
|
341
|
-
prompt,
|
|
342
|
-
temperature: 0.25,
|
|
343
|
-
max_tokens: maxTokens,
|
|
344
|
-
top_p: 1,
|
|
345
|
-
frequency_penalty: 0,
|
|
346
|
-
presence_penalty: 0
|
|
347
|
-
})
|
|
348
|
-
};
|
|
349
|
-
// eslint-disable-next-line no-console
|
|
350
|
-
console.time("open_ai_web");
|
|
351
|
-
let status = 999;
|
|
352
|
-
const openAIResponse = yield fetch('https://api.openai.com/v1/completions', options).then((response) => {
|
|
353
|
-
status = response.status;
|
|
354
|
-
if (status === 200) {
|
|
355
|
-
return response.json();
|
|
356
|
-
}
|
|
357
|
-
return response;
|
|
358
|
-
}).finally(() => {
|
|
359
|
-
// eslint-disable-next-line no-console
|
|
360
|
-
console.timeEnd("open_ai_web");
|
|
293
|
+
const genService = new GenerativeAIService_1.GenerativeAIService({
|
|
294
|
+
key: openAIKey, page
|
|
361
295
|
});
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
296
|
+
aiData = yield genService.getWebsiteAI(markdown, {
|
|
297
|
+
url,
|
|
298
|
+
site,
|
|
299
|
+
schema
|
|
300
|
+
});
|
|
301
|
+
if (((_a = options === null || options === void 0 ? void 0 : options.dataOptions) === null || _a === void 0 ? void 0 : _a.preferContactUsPage) && ((_b = site.pages) === null || _b === void 0 ? void 0 : _b.contactUs)) {
|
|
302
|
+
(0, stentor_logger_1.log)().info(`Using Contact Us page for data.`);
|
|
303
|
+
const contactUsPageUrl = site.pages.contactUs;
|
|
304
|
+
yield page.goto(contactUsPageUrl);
|
|
305
|
+
const contactUsHTML = yield page.content();
|
|
306
|
+
const contactUsMarkdown = new arachne_parsers_1.ArachneHTMLtoText({ stripTags: [...arachne_parsers_1.DEFAULT_STRIP_TAGS, "head", "img", "iframe", "style"] }).convert(contactUsHTML, true);
|
|
307
|
+
const contactUsData = yield genService.getWebsiteAI(contactUsMarkdown, {
|
|
308
|
+
url: contactUsPageUrl
|
|
309
|
+
});
|
|
310
|
+
const contactEmail = contactUsData === null || contactUsData === void 0 ? void 0 : contactUsData.email;
|
|
311
|
+
const contactPhoneNumbers = contactUsData === null || contactUsData === void 0 ? void 0 : contactUsData.phone_numbers;
|
|
312
|
+
if ((0, stentor_utils_1.existsAndNotEmpty)(contactPhoneNumbers) && aiData) {
|
|
313
|
+
(0, stentor_logger_1.log)().info(`Updating with contact us phone numbers.\n${JSON.stringify(contactPhoneNumbers)}`);
|
|
314
|
+
aiData.phone_numbers = contactPhoneNumbers;
|
|
370
315
|
}
|
|
371
|
-
|
|
372
|
-
(0, stentor_logger_1.log)().
|
|
373
|
-
|
|
316
|
+
if ((0, stentor_utils_1.existsAndNotEmpty)(contactEmail) && aiData) {
|
|
317
|
+
(0, stentor_logger_1.log)().info(`Updating with contact us emails.\n${JSON.stringify(contactEmail)}`);
|
|
318
|
+
aiData.email = contactEmail;
|
|
374
319
|
}
|
|
375
320
|
}
|
|
376
|
-
|
|
377
|
-
(0, stentor_logger_1.log)().
|
|
378
|
-
|
|
321
|
+
if ((_c = options === null || options === void 0 ? void 0 : options.dataOptions) === null || _c === void 0 ? void 0 : _c.preferHeaderInfo) {
|
|
322
|
+
(0, stentor_logger_1.log)().info(`Looking at header information for data.`);
|
|
323
|
+
const headerHTML = yield page.evaluate(() => { var _a; return (_a = document.querySelector('header')) === null || _a === void 0 ? void 0 : _a.outerHTML; });
|
|
324
|
+
if (headerHTML) {
|
|
325
|
+
const headerMarkdown = new arachne_parsers_1.ArachneHTMLtoText({ stripTags: ["script", "head", "img", "iframe", "style"] }).convert(headerHTML, true);
|
|
326
|
+
const headerData = yield genService.getWebsiteAI(headerMarkdown, {
|
|
327
|
+
url
|
|
328
|
+
});
|
|
329
|
+
const headerEmails = headerData === null || headerData === void 0 ? void 0 : headerData.email;
|
|
330
|
+
const headerPhoneNumbers = headerData === null || headerData === void 0 ? void 0 : headerData.phone_numbers;
|
|
331
|
+
if ((0, stentor_utils_1.existsAndNotEmpty)(headerPhoneNumbers) && aiData) {
|
|
332
|
+
(0, stentor_logger_1.log)().info(`Updating with header phone numbers.\n${JSON.stringify(headerPhoneNumbers)}`);
|
|
333
|
+
aiData.phone_numbers = headerPhoneNumbers;
|
|
334
|
+
}
|
|
335
|
+
if ((0, stentor_utils_1.existsAndNotEmpty)(headerEmails) && aiData) {
|
|
336
|
+
(0, stentor_logger_1.log)().info(`Updating with header emails.\n${JSON.stringify(headerEmails)}`);
|
|
337
|
+
aiData.email = headerEmails;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
379
340
|
}
|
|
380
341
|
}
|
|
381
|
-
// TODO: DONE MOVE
|
|
382
342
|
const detectors = [];
|
|
383
343
|
// take
|
|
384
344
|
if ((0, stentor_utils_1.existsAndNotEmpty)(options.detectors)) {
|
|
385
|
-
(
|
|
345
|
+
(_d = options.detectors) === null || _d === void 0 ? void 0 : _d.forEach((Detector) => {
|
|
386
346
|
detectors.push(new Detector(html, page));
|
|
387
347
|
});
|
|
388
348
|
}
|
|
@@ -400,6 +360,12 @@ class ArachneWebService {
|
|
|
400
360
|
if (aiData === null || aiData === void 0 ? void 0 : aiData.organization_name) {
|
|
401
361
|
business.name = aiData.organization_name;
|
|
402
362
|
}
|
|
363
|
+
if ((0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers)) {
|
|
364
|
+
business.phoneNumbers = aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers;
|
|
365
|
+
}
|
|
366
|
+
if ((0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.email)) {
|
|
367
|
+
business.email = aiData === null || aiData === void 0 ? void 0 : aiData.email;
|
|
368
|
+
}
|
|
403
369
|
if (aiData === null || aiData === void 0 ? void 0 : aiData.industry_category) {
|
|
404
370
|
// It isn't perfect so we need to clean it
|
|
405
371
|
const category = aiData.industry_category; //.replace("_", "-").replace(" ", "-").toLowerCase() as BusinessCategory;
|
|
@@ -421,11 +387,11 @@ class ArachneWebService {
|
|
|
421
387
|
else {
|
|
422
388
|
site.callsToAction = (0, getCallToAction_1.getCallToAction)(html);
|
|
423
389
|
}
|
|
424
|
-
})
|
|
425
|
-
// end of the page handler
|
|
390
|
+
}) // end of the page handler
|
|
426
391
|
});
|
|
427
392
|
yield crawler.run();
|
|
428
393
|
return {
|
|
394
|
+
url,
|
|
429
395
|
site,
|
|
430
396
|
detectedTechnologies,
|
|
431
397
|
schema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArachneWebService.js","sourceRoot":"","sources":["../src/ArachneWebService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ArachneWebService.js","sourceRoot":"","sources":["../src/ArachneWebService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*! Copyright (c) 2024, XAPP AI */
|
|
2
|
+
import { ArachnePage } from "@xapp/arachne";
|
|
3
|
+
import { BusinessCategory, WebsiteDescriptiveData, WebsiteSchema } from "./models";
|
|
4
|
+
export interface WebsiteAI {
|
|
5
|
+
organization_name?: string;
|
|
6
|
+
email?: {
|
|
7
|
+
email: string;
|
|
8
|
+
purpose?: string;
|
|
9
|
+
}[];
|
|
10
|
+
phone_numbers?: {
|
|
11
|
+
number: string;
|
|
12
|
+
purpose?: string;
|
|
13
|
+
}[];
|
|
14
|
+
addresses?: string;
|
|
15
|
+
services?: string[];
|
|
16
|
+
calls_to_action?: {
|
|
17
|
+
url?: string;
|
|
18
|
+
callToAction: string;
|
|
19
|
+
}[];
|
|
20
|
+
description: string;
|
|
21
|
+
industry_category?: BusinessCategory;
|
|
22
|
+
}
|
|
23
|
+
export type WebsiteAIData = {
|
|
24
|
+
url: string;
|
|
25
|
+
site?: Pick<WebsiteDescriptiveData, "pages">;
|
|
26
|
+
schema?: WebsiteSchema;
|
|
27
|
+
};
|
|
28
|
+
export declare class GenerativeAIService {
|
|
29
|
+
private key;
|
|
30
|
+
private page;
|
|
31
|
+
constructor(props: {
|
|
32
|
+
key: string;
|
|
33
|
+
page: ArachnePage;
|
|
34
|
+
});
|
|
35
|
+
getWebsiteAI(markdown: string, data: WebsiteAIData): Promise<WebsiteAI | undefined>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
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.GenerativeAIService = void 0;
|
|
13
|
+
const arachne_parsers_1 = require("@xapp/arachne-parsers");
|
|
14
|
+
const stentor_logger_1 = require("stentor-logger");
|
|
15
|
+
const getPrompt_1 = require("./utils/getPrompt");
|
|
16
|
+
class GenerativeAIService {
|
|
17
|
+
constructor(props) {
|
|
18
|
+
this.key = props.key;
|
|
19
|
+
this.page = props.page;
|
|
20
|
+
}
|
|
21
|
+
getWebsiteAI(markdown, data) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const { url, site, schema } = data;
|
|
24
|
+
(0, stentor_logger_1.log)().info(`🔍Getting website AI for ${url}`);
|
|
25
|
+
const pages = site === null || site === void 0 ? void 0 : site.pages;
|
|
26
|
+
const localBusiness = schema === null || schema === void 0 ? void 0 : schema.localBusiness;
|
|
27
|
+
const homeConstructionBusiness = schema === null || schema === void 0 ? void 0 : schema.homeConstructionBusiness;
|
|
28
|
+
let aiData = undefined;
|
|
29
|
+
const webPrompt = (0, getPrompt_1.getWebMarkdownPrompt)(markdown, url);
|
|
30
|
+
let prompt = webPrompt.prompt;
|
|
31
|
+
let maxTokens = webPrompt.maxTokens;
|
|
32
|
+
let tokens = webPrompt.tokens;
|
|
33
|
+
(0, stentor_logger_1.log)().info(`markdown tokens: ${tokens} max: ${maxTokens}`);
|
|
34
|
+
// first try if over max tokens
|
|
35
|
+
if (maxTokens < 0 && (pages === null || pages === void 0 ? void 0 : pages.aboutUs)) {
|
|
36
|
+
const aboutUs = pages.aboutUs;
|
|
37
|
+
// load about us
|
|
38
|
+
(0, stentor_logger_1.log)().info(`Raw Markdown has too many tokens, attempting to load about us page at ${aboutUs}...`);
|
|
39
|
+
yield this.page.goto(aboutUs);
|
|
40
|
+
(0, stentor_logger_1.log)().info(`Loaded...`);
|
|
41
|
+
const aboutUsHTML = yield this.page.content();
|
|
42
|
+
(0, stentor_logger_1.log)().debug(aboutUsHTML);
|
|
43
|
+
(0, stentor_logger_1.log)().debug("====");
|
|
44
|
+
const aboutUsMarkdown = new arachne_parsers_1.ArachneHTMLtoText({ stripTags: [...arachne_parsers_1.DEFAULT_STRIP_TAGS, "head", "img", "iframe", "style"] }).convert(aboutUsHTML, true);
|
|
45
|
+
const aboutUsPrompt = (0, getPrompt_1.getWebMarkdownPrompt)(aboutUsMarkdown, url);
|
|
46
|
+
(0, stentor_logger_1.log)().debug(aboutUsMarkdown);
|
|
47
|
+
(0, stentor_logger_1.log)().info(`About Us tokens: ${aboutUsPrompt.tokens} max: ${aboutUsPrompt.maxTokens}`);
|
|
48
|
+
if (aboutUsPrompt.maxTokens > 0) {
|
|
49
|
+
(0, stentor_logger_1.log)().info(`Using about us page.`);
|
|
50
|
+
prompt = aboutUsPrompt.prompt;
|
|
51
|
+
maxTokens = aboutUsPrompt.maxTokens;
|
|
52
|
+
tokens = aboutUsPrompt.tokens;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (maxTokens < 0 && localBusiness || homeConstructionBusiness) {
|
|
56
|
+
(0, stentor_logger_1.log)().info(`Too many tokens, attempting to use LocalBusiness schema to generate description.`);
|
|
57
|
+
// try second prompt where we send the JSON.
|
|
58
|
+
const jsonSchemaPrompt = (0, getPrompt_1.getJSONSchemaPrompt)(localBusiness || homeConstructionBusiness, url);
|
|
59
|
+
(0, stentor_logger_1.log)().info(`JSON Schema tokens: ${jsonSchemaPrompt.tokens} max: ${jsonSchemaPrompt.maxTokens}`);
|
|
60
|
+
if (jsonSchemaPrompt.maxTokens > 0) {
|
|
61
|
+
(0, stentor_logger_1.log)().info(`LocalBusiness JSON fits within token limit, using it.`);
|
|
62
|
+
prompt = jsonSchemaPrompt.prompt;
|
|
63
|
+
maxTokens = jsonSchemaPrompt.maxTokens;
|
|
64
|
+
tokens = jsonSchemaPrompt.tokens;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
(0, stentor_logger_1.log)().info(`Final prompt is ${tokens} tokens, setting max_tokens to ${maxTokens}.`);
|
|
68
|
+
// TODO: one more attempt, use original markdown but limit it to the first
|
|
69
|
+
if (maxTokens < 0) {
|
|
70
|
+
(0, stentor_logger_1.log)().warn(`Unable to get website AI for ${url}, too many tokens.`);
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
const options = {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
headers: {
|
|
76
|
+
'Content-Type': 'application/json',
|
|
77
|
+
'Authorization': `Bearer ${this.key}`,
|
|
78
|
+
},
|
|
79
|
+
body: JSON.stringify({
|
|
80
|
+
model: "gpt-3.5-turbo-instruct",
|
|
81
|
+
prompt,
|
|
82
|
+
temperature: 0.25,
|
|
83
|
+
max_tokens: maxTokens,
|
|
84
|
+
top_p: 1,
|
|
85
|
+
frequency_penalty: 0,
|
|
86
|
+
presence_penalty: 0
|
|
87
|
+
})
|
|
88
|
+
};
|
|
89
|
+
// eslint-disable-next-line no-console
|
|
90
|
+
console.time("open_ai_web");
|
|
91
|
+
let status = 999;
|
|
92
|
+
const openAIResponse = yield fetch('https://api.openai.com/v1/completions', options).then((response) => {
|
|
93
|
+
status = response.status;
|
|
94
|
+
if (status === 200) {
|
|
95
|
+
return response.json();
|
|
96
|
+
}
|
|
97
|
+
return response;
|
|
98
|
+
}).finally(() => {
|
|
99
|
+
// eslint-disable-next-line no-console
|
|
100
|
+
console.timeEnd("open_ai_web");
|
|
101
|
+
});
|
|
102
|
+
if (status === 200) {
|
|
103
|
+
const usage = openAIResponse.usage;
|
|
104
|
+
(0, stentor_logger_1.log)().info(`OpenAI token usage: prompt ${usage.prompt_tokens} completion ${usage.completion_tokens} total ${usage.total_tokens}`);
|
|
105
|
+
// Add the leading { as it is included in the query
|
|
106
|
+
const completion = `{\n${openAIResponse.choices[0].text}`;
|
|
107
|
+
try {
|
|
108
|
+
aiData = JSON.parse(completion);
|
|
109
|
+
(0, stentor_logger_1.log)().debug(JSON.stringify(aiData, undefined, 2));
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
(0, stentor_logger_1.log)().warn(`Unable to parse AI response.`);
|
|
113
|
+
(0, stentor_logger_1.log)().info(completion);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
(0, stentor_logger_1.log)().warn(`Unabled to get website info from OpenAI status:${status}`);
|
|
118
|
+
(0, stentor_logger_1.log)().debug(openAIResponse);
|
|
119
|
+
}
|
|
120
|
+
return aiData;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.GenerativeAIService = GenerativeAIService;
|
|
125
|
+
//# sourceMappingURL=GenerativeAIService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerativeAIService.js","sourceRoot":"","sources":["../src/GenerativeAIService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,2DAA8E;AAC9E,mDAAqC;AAGrC,iDAA8E;AAoB9E,MAAa,mBAAmB;IAM5B,YAAY,KAAyC;QACjD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEK,YAAY,CAAC,QAAgB,EAAE,IAAmB;;YAEpD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAEnC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;YAE9C,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC;YAC1B,MAAM,aAAa,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC;YAC5C,MAAM,wBAAwB,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,wBAAwB,CAAC;YAElE,IAAI,MAAM,GAA0B,SAAS,CAAC;YAE9C,MAAM,SAAS,GAAG,IAAA,gCAAoB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAEtD,IAAI,MAAM,GAAW,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,SAAS,GAAW,SAAS,CAAC,SAAS,CAAC;YAC5C,IAAI,MAAM,GAAW,SAAS,CAAC,MAAM,CAAC;YAEtC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,oBAAoB,MAAM,SAAS,SAAS,EAAE,CAAC,CAAC;YAE3D,+BAA+B;YAC/B,IAAI,SAAS,GAAG,CAAC,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC9B,iBAAiB;gBACjB,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,yEAAyE,OAAO,KAAK,CAAC,CAAC;gBAClG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9B,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9C,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACzB,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEpB,MAAM,eAAe,GAAG,IAAI,mCAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,oCAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAEnJ,MAAM,aAAa,GAAG,IAAA,gCAAoB,EAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAEjE,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAE7B,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,oBAAoB,aAAa,CAAC,MAAM,SAAS,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;gBAEvF,IAAI,aAAa,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBACnC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;oBAC9B,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;oBACpC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;gBAClC,CAAC;YACL,CAAC;YAED,IAAI,SAAS,GAAG,CAAC,IAAI,aAAa,IAAI,wBAAwB,EAAE,CAAC;gBAC7D,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;gBAC/F,4CAA4C;gBAE5C,MAAM,gBAAgB,GAAG,IAAA,+BAAmB,EAAC,aAAa,IAAI,wBAAwB,EAAE,GAAG,CAAC,CAAC;gBAE7F,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,uBAAuB,gBAAgB,CAAC,MAAM,SAAS,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;gBAEhG,IAAI,gBAAgB,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;oBACjC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;oBACnE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;oBACjC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;oBACvC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;gBACrC,CAAC;YACL,CAAC;YAED,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,mBAAmB,MAAM,kCAAkC,SAAS,GAAG,CAAC,CAAC;YAEpF,2EAA2E;YAE3E,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAChB,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,gCAAgC,GAAG,oBAAoB,CAAC,CAAC;gBACpE,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,OAAO,GAAgB;gBACzB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE;iBACxC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,KAAK,EAAE,wBAAwB;oBAC/B,MAAM;oBACN,WAAW,EAAE,IAAI;oBACjB,UAAU,EAAE,SAAS;oBACrB,KAAK,EAAE,CAAC;oBACR,iBAAiB,EAAE,CAAC;oBACpB,gBAAgB,EAAE,CAAC;iBACtB,CAAC;aACL,CAAA;YAED,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5B,IAAI,MAAM,GAAW,GAAG,CAAC;YACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACzB,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;gBACD,OAAO,QAAQ,CAAC;YACpB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACZ,sCAAsC;gBACtC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBAEjB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;gBACnC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,aAAa,eAAe,KAAK,CAAC,iBAAiB,UAAU,KAAK,CAAC,YAAY,EAAE,CAAC,CAAA;gBAEjI,mDAAmD;gBACnD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1D,IAAI,CAAC;oBACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAChC,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;oBAC3C,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,kDAAkD,MAAM,EAAE,CAAC,CAAC;gBACvE,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;CACJ;AAvID,kDAuIC"}
|
package/lib/models.d.ts
CHANGED
|
@@ -93,6 +93,9 @@ export interface BusinessData {
|
|
|
93
93
|
* Category of the business.
|
|
94
94
|
*/
|
|
95
95
|
category?: BusinessCategory;
|
|
96
|
+
/**
|
|
97
|
+
* What services the business provides.
|
|
98
|
+
*/
|
|
96
99
|
services?: (HOME_SERVICES | HOME_CONSTRUCTION_SERVICES | PROFESSIONAL_SERVICES)[];
|
|
97
100
|
/**
|
|
98
101
|
* How the business describes themselves
|
|
@@ -105,6 +108,13 @@ export interface BusinessData {
|
|
|
105
108
|
number: string;
|
|
106
109
|
purpose?: string;
|
|
107
110
|
}[];
|
|
111
|
+
/**
|
|
112
|
+
* Email addresses and their purpose.
|
|
113
|
+
*/
|
|
114
|
+
email?: {
|
|
115
|
+
email: string;
|
|
116
|
+
purpose?: string;
|
|
117
|
+
}[];
|
|
108
118
|
/**
|
|
109
119
|
* Primary business address
|
|
110
120
|
*/
|
package/lib/utils/getPrompt.js
CHANGED
|
@@ -10,7 +10,7 @@ function getTokens(prompt, response = 550) {
|
|
|
10
10
|
}
|
|
11
11
|
exports.getTokens = getTokens;
|
|
12
12
|
function getWebMarkdownPrompt(markdown, url) {
|
|
13
|
-
const prompt = `Your task is to analyze the contents of a website (provided in markdown below) found at ${url} and provide information about the organization from what is on the website. You will only provide information available through the website content about the services they provide, contact information and a description of the business.\n\n===========\n${markdown}\n===========\nPlease print out in JSON format information about the website above with the following keys:\n\n\"organization_name\" - The name of the organization for the website.\n\"phone_numbers\" - An array of phone numbers for the organization. If available, include what they are used for such as \"customer support\" or \"sales\", if unknown then leave it blank. Use an object with keys: number and purpose.\n\"addresses\" - An array of addresses for the organization.\n\"services\" - An array of the top five unique most common services the organization provides, they should be
|
|
13
|
+
const prompt = `Your task is to analyze the contents of a website (provided in markdown below) found at ${url} and provide information about the organization from what is on the website. You will only provide information available through the website content about the services they provide, contact information and a description of the business.\n\n===========\n${markdown}\n===========\nPlease print out in JSON format on one line information about the website above with the following keys:\n\n\"organization_name\" - The name of the organization for the website.\n\"email\" - An array of emails for the organization. If available, include what they are used for such as \"sales\" or \"info\", if unknown then leave it blank. Use an object with keys: email and purpose.\n\"phone_numbers\" - An array of phone numbers for the organization. If available, include what they are used for such as \"main phone\", \"customer support\" or \"sales\", if unknown then leave it blank. Use an object with keys: number and purpose.\n\"addresses\" - An array of addresses for the organization.\n\"services\" - An array of the top five unique most common services the organization provides, they should be concise and no more than a few words such as \"Roofing\", \"Conversational AI Services\", \"Bathroom Remodelling\"\n\"calls_to_action\" - An array of the top five unique calls to action found on the site and their fully formed URL if they have one. Good examples of calls to actions are \"Request Demo\", \"Get Started\", \"Free Quote\", \"Schedule Consultation\", \"Sign Up\". Bad examples are \"Learn More\" or \"Follow us on Facebook\". Use an object with keys: url & callToAction in the array. For the url please combine it properly with the website's URL.\n\"description\" - A description of what the organization does, include the name of the organization, their services, their location, phone number, email. Keep it concise and to a few sentences and around 480 characters.\n\"industry_category\" - A description of which industry category the business is in. Only pick from one of the following and use the value in quotes: \"business-coaching\" - Business provides coaching services for other business, \"consulting\" - Business provides consulting services, \"financial-services\" - Business provides wealth & asset management services, \"home-services-cleaning\" - Provide janitorial and cleaning services, \"home-services-contractors\" - Electricians, plumbers, roofers, and other technicians and contractors, \"home-services-outdoor\" - Lawn care, gardeners and other outsides residential services, \"insurance\" - Insurance agents and brokers, \"legal-services\" - Lawyers, \"life-coaching\" - Life coaching services, \"real-estate\" - Real estate agents and brokers, \"technology-services\" - IT consultants and software services, \"travel\" - Travel agents\n\n{`;
|
|
14
14
|
const tokens = getTokens(prompt);
|
|
15
15
|
return Object.assign({ prompt }, tokens);
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPrompt.js","sourceRoot":"","sources":["../../src/utils/getPrompt.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"getPrompt.js","sourceRoot":"","sources":["../../src/utils/getPrompt.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAQ5C,SAAgB,SAAS,CAAC,MAAc,EAAE,WAAmB,GAAG;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,SAAS,GAAW,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AALD,8BAKC;AAGD,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,GAAW;IAE9D,MAAM,MAAM,GAAG,2FAA2F,GAAG,iQAAiQ,QAAQ,88EAA88E,CAAC;IACr0F,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,uBACI,MAAM,IACH,MAAM,EACZ;AACL,CAAC;AARD,oDAQC;AAED,SAAgB,mBAAmB,CAAC,IAAS,EAAE,GAAW;IAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,UAAU,2DAA2D,GAAG,saAAsa,CAAC;IACjgB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,uBACI,MAAM,IACH,MAAM,EACZ;AACL,CAAC;AAVD,kDAUC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xapp/arachne-web-service",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"types": "lib/index",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"files": [
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
"@microsoft/api-extractor": "7.39.1",
|
|
18
18
|
"@types/chai": "4.3.11",
|
|
19
19
|
"@types/mocha": "10.0.6",
|
|
20
|
-
"@types/node": "18.19.
|
|
20
|
+
"@types/node": "18.19.8",
|
|
21
21
|
"@types/sinon": "17.0.3",
|
|
22
22
|
"@types/sinon-chai": "3.2.12",
|
|
23
23
|
"@xapp/config": "0.2.3",
|
|
24
|
-
"chai": "4.4.
|
|
24
|
+
"chai": "4.4.1",
|
|
25
25
|
"dotenv": "16.3.1",
|
|
26
26
|
"mocha": "10.2.0",
|
|
27
27
|
"sinon": "17.0.1",
|
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
"typescript": "5.3.3"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@xapp/arachne": "1.
|
|
35
|
-
"@xapp/arachne-parsers": "1.
|
|
34
|
+
"@xapp/arachne": "1.2.0",
|
|
35
|
+
"@xapp/arachne-parsers": "1.2.0",
|
|
36
36
|
"abort-controller": "3.0.0",
|
|
37
37
|
"gpt-3-encoder": "1.1.4",
|
|
38
38
|
"ico-to-png": "0.2.1",
|
|
39
39
|
"isomorphic-fetch": "3.0.0",
|
|
40
40
|
"node-vibrant": "3.2.1-alpha.1",
|
|
41
41
|
"schema-dts": "1.1.2",
|
|
42
|
-
"sharp": "0.33.
|
|
43
|
-
"stentor-logger": "1.58.
|
|
44
|
-
"stentor-models": "1.58.
|
|
45
|
-
"stentor-utils": "1.58.
|
|
42
|
+
"sharp": "0.33.2",
|
|
43
|
+
"stentor-logger": "1.58.89",
|
|
44
|
+
"stentor-models": "1.58.87",
|
|
45
|
+
"stentor-utils": "1.58.89"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"api": "api-extractor run --local",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"clean": "rm -rf ./lib/*",
|
|
51
51
|
"test:f": "mocha --recursive -r ts-node/register \"./src/**/*.ftest.ts\""
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "5d8335a9a3b53608e03c81097be860a920e0612e"
|
|
54
54
|
}
|