@revenium/perplexity 1.0.10 → 1.0.14
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/.env.example +2 -2
- package/README.md +448 -566
- package/examples/basic.ts +17 -0
- package/examples/chat-completions.ts +22 -0
- package/examples/enhanced.ts +20 -0
- package/examples/streaming.ts +24 -0
- package/package.json +45 -61
- package/playground/basic.js +7 -17
- package/playground/enhanced.js +9 -22
- package/playground/streaming.js +10 -26
- package/src/index.ts +1 -35
- package/src/interfaces/chatCompletionRequest.ts +9 -0
- package/src/interfaces/credential.ts +4 -0
- package/src/interfaces/meteringRequest.ts +14 -0
- package/src/{types/metering.ts → interfaces/meteringResponse.ts} +3 -3
- package/src/interfaces/operation.ts +4 -0
- package/src/{types → interfaces}/subscriber.ts +1 -1
- package/src/interfaces/tokenCounts.ts +7 -0
- package/src/{types → interfaces}/usageMetadata.ts +1 -1
- package/src/middleware.ts +151 -0
- package/src/models/Logger.ts +5 -5
- package/src/models/Metering.ts +86 -0
- package/src/utils/calculateDurationMs.ts +1 -1
- package/src/utils/constants/constants.ts +9 -16
- package/src/utils/constants/logLevels.ts +1 -0
- package/src/utils/constants/messages.ts +8 -32
- package/src/utils/constants/models.ts +20 -0
- package/src/utils/extractTokenCount.ts +26 -0
- package/src/utils/generateTransactionId.ts +1 -1
- package/src/utils/index.ts +39 -12
- package/src/utils/loadEnv.ts +8 -0
- package/src/utils/safeExtract.ts +60 -11
- package/tsconfig.json +10 -18
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -40
- package/dist/index.js.map +0 -1
- package/dist/models/Exception/ApiResponseError.d.ts +0 -6
- package/dist/models/Exception/ApiResponseError.d.ts.map +0 -1
- package/dist/models/Exception/ApiResponseError.js +0 -13
- package/dist/models/Exception/ApiResponseError.js.map +0 -1
- package/dist/models/Exception/ConfigurationError.d.ts +0 -4
- package/dist/models/Exception/ConfigurationError.d.ts.map +0 -1
- package/dist/models/Exception/ConfigurationError.js +0 -11
- package/dist/models/Exception/ConfigurationError.js.map +0 -1
- package/dist/models/Exception/MeteringError.d.ts +0 -5
- package/dist/models/Exception/MeteringError.d.ts.map +0 -1
- package/dist/models/Exception/MeteringError.js +0 -12
- package/dist/models/Exception/MeteringError.js.map +0 -1
- package/dist/models/Exception/MiddlewareActivationError.d.ts +0 -4
- package/dist/models/Exception/MiddlewareActivationError.d.ts.map +0 -1
- package/dist/models/Exception/MiddlewareActivationError.js +0 -11
- package/dist/models/Exception/MiddlewareActivationError.js.map +0 -1
- package/dist/models/Exception/StreamTrackingError.d.ts +0 -4
- package/dist/models/Exception/StreamTrackingError.d.ts.map +0 -1
- package/dist/models/Exception/StreamTrackingError.js +0 -11
- package/dist/models/Exception/StreamTrackingError.js.map +0 -1
- package/dist/models/Exception/TokenCountingError.d.ts +0 -4
- package/dist/models/Exception/TokenCountingError.d.ts.map +0 -1
- package/dist/models/Exception/TokenCountingError.js +0 -11
- package/dist/models/Exception/TokenCountingError.js.map +0 -1
- package/dist/models/Exception/index.d.ts +0 -7
- package/dist/models/Exception/index.d.ts.map +0 -1
- package/dist/models/Exception/index.js +0 -23
- package/dist/models/Exception/index.js.map +0 -1
- package/dist/models/Logger.d.ts +0 -10
- package/dist/models/Logger.d.ts.map +0 -1
- package/dist/models/Logger.js +0 -36
- package/dist/models/Logger.js.map +0 -1
- package/dist/models/index.d.ts +0 -3
- package/dist/models/index.d.ts.map +0 -1
- package/dist/models/index.js +0 -19
- package/dist/models/index.js.map +0 -1
- package/dist/perplexity-ai/client.d.ts +0 -31
- package/dist/perplexity-ai/client.d.ts.map +0 -1
- package/dist/perplexity-ai/client.js +0 -75
- package/dist/perplexity-ai/client.js.map +0 -1
- package/dist/perplexity-ai/index.d.ts +0 -3
- package/dist/perplexity-ai/index.d.ts.map +0 -1
- package/dist/perplexity-ai/index.js +0 -19
- package/dist/perplexity-ai/index.js.map +0 -1
- package/dist/perplexity-ai/middleware.d.ts +0 -2
- package/dist/perplexity-ai/middleware.d.ts.map +0 -1
- package/dist/perplexity-ai/middleware.js +0 -195
- package/dist/perplexity-ai/middleware.js.map +0 -1
- package/dist/types/context.d.ts +0 -9
- package/dist/types/context.d.ts.map +0 -1
- package/dist/types/context.js +0 -3
- package/dist/types/context.js.map +0 -1
- package/dist/types/index.d.ts +0 -12
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -28
- package/dist/types/index.js.map +0 -1
- package/dist/types/metering.d.ts +0 -28
- package/dist/types/metering.d.ts.map +0 -1
- package/dist/types/metering.js +0 -3
- package/dist/types/metering.js.map +0 -1
- package/dist/types/modelInfo.d.ts +0 -6
- package/dist/types/modelInfo.d.ts.map +0 -1
- package/dist/types/modelInfo.js +0 -3
- package/dist/types/modelInfo.js.map +0 -1
- package/dist/types/operation.d.ts +0 -5
- package/dist/types/operation.d.ts.map +0 -1
- package/dist/types/operation.js +0 -9
- package/dist/types/operation.js.map +0 -1
- package/dist/types/perplexityConfig.d.ts +0 -5
- package/dist/types/perplexityConfig.d.ts.map +0 -1
- package/dist/types/perplexityConfig.js +0 -3
- package/dist/types/perplexityConfig.js.map +0 -1
- package/dist/types/provider.d.ts +0 -4
- package/dist/types/provider.d.ts.map +0 -1
- package/dist/types/provider.js +0 -8
- package/dist/types/provider.js.map +0 -1
- package/dist/types/reveniumConfig.d.ts +0 -6
- package/dist/types/reveniumConfig.d.ts.map +0 -1
- package/dist/types/reveniumConfig.js +0 -3
- package/dist/types/reveniumConfig.js.map +0 -1
- package/dist/types/streamTracker.d.ts +0 -9
- package/dist/types/streamTracker.d.ts.map +0 -1
- package/dist/types/streamTracker.js +0 -3
- package/dist/types/streamTracker.js.map +0 -1
- package/dist/types/subscriber.d.ts +0 -9
- package/dist/types/subscriber.d.ts.map +0 -1
- package/dist/types/subscriber.js +0 -3
- package/dist/types/subscriber.js.map +0 -1
- package/dist/types/tokenCounts.d.ts +0 -6
- package/dist/types/tokenCounts.d.ts.map +0 -1
- package/dist/types/tokenCounts.js +0 -3
- package/dist/types/tokenCounts.js.map +0 -1
- package/dist/types/usageData.d.ts +0 -16
- package/dist/types/usageData.d.ts.map +0 -1
- package/dist/types/usageData.js +0 -3
- package/dist/types/usageData.js.map +0 -1
- package/dist/types/usageMetadata.d.ts +0 -14
- package/dist/types/usageMetadata.d.ts.map +0 -1
- package/dist/types/usageMetadata.js +0 -3
- package/dist/types/usageMetadata.js.map +0 -1
- package/dist/utils/activeMiddleware.d.ts +0 -2
- package/dist/utils/activeMiddleware.d.ts.map +0 -1
- package/dist/utils/activeMiddleware.js +0 -24
- package/dist/utils/activeMiddleware.js.map +0 -1
- package/dist/utils/askConsole.d.ts +0 -2
- package/dist/utils/askConsole.d.ts.map +0 -1
- package/dist/utils/askConsole.js +0 -20
- package/dist/utils/askConsole.js.map +0 -1
- package/dist/utils/calculateDurationMs.d.ts +0 -2
- package/dist/utils/calculateDurationMs.d.ts.map +0 -1
- package/dist/utils/calculateDurationMs.js +0 -7
- package/dist/utils/calculateDurationMs.js.map +0 -1
- package/dist/utils/constants/constants.d.ts +0 -9
- package/dist/utils/constants/constants.d.ts.map +0 -1
- package/dist/utils/constants/constants.js +0 -19
- package/dist/utils/constants/constants.js.map +0 -1
- package/dist/utils/constants/messages.d.ts +0 -19
- package/dist/utils/constants/messages.d.ts.map +0 -1
- package/dist/utils/constants/messages.js +0 -22
- package/dist/utils/constants/messages.js.map +0 -1
- package/dist/utils/createMeteringRequest.d.ts +0 -3
- package/dist/utils/createMeteringRequest.d.ts.map +0 -1
- package/dist/utils/createMeteringRequest.js +0 -10
- package/dist/utils/createMeteringRequest.js.map +0 -1
- package/dist/utils/createPerplexityMetadata.d.ts +0 -3
- package/dist/utils/createPerplexityMetadata.d.ts.map +0 -1
- package/dist/utils/createPerplexityMetadata.js +0 -12
- package/dist/utils/createPerplexityMetadata.js.map +0 -1
- package/dist/utils/extractModelName.d.ts +0 -2
- package/dist/utils/extractModelName.d.ts.map +0 -1
- package/dist/utils/extractModelName.js +0 -15
- package/dist/utils/extractModelName.js.map +0 -1
- package/dist/utils/extractPerplexityTokenCounts.d.ts +0 -3
- package/dist/utils/extractPerplexityTokenCounts.d.ts.map +0 -1
- package/dist/utils/extractPerplexityTokenCounts.js +0 -17
- package/dist/utils/extractPerplexityTokenCounts.js.map +0 -1
- package/dist/utils/extractStopReason.d.ts +0 -2
- package/dist/utils/extractStopReason.d.ts.map +0 -1
- package/dist/utils/extractStopReason.js +0 -14
- package/dist/utils/extractStopReason.js.map +0 -1
- package/dist/utils/extractUsageMetadata.d.ts +0 -3
- package/dist/utils/extractUsageMetadata.d.ts.map +0 -1
- package/dist/utils/extractUsageMetadata.js +0 -15
- package/dist/utils/extractUsageMetadata.js.map +0 -1
- package/dist/utils/formatTimestamp.d.ts +0 -2
- package/dist/utils/formatTimestamp.d.ts.map +0 -1
- package/dist/utils/formatTimestamp.js +0 -7
- package/dist/utils/formatTimestamp.js.map +0 -1
- package/dist/utils/generateTransactionId.d.ts +0 -2
- package/dist/utils/generateTransactionId.d.ts.map +0 -1
- package/dist/utils/generateTransactionId.js +0 -8
- package/dist/utils/generateTransactionId.js.map +0 -1
- package/dist/utils/getEnv.d.ts +0 -4
- package/dist/utils/getEnv.d.ts.map +0 -1
- package/dist/utils/getEnv.js +0 -16
- package/dist/utils/getEnv.js.map +0 -1
- package/dist/utils/index.d.ts +0 -13
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -29
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/safeExtract.d.ts +0 -2
- package/dist/utils/safeExtract.d.ts.map +0 -1
- package/dist/utils/safeExtract.js +0 -22
- package/dist/utils/safeExtract.js.map +0 -1
- package/dist/utils/sendMeteringData.d.ts +0 -3
- package/dist/utils/sendMeteringData.d.ts.map +0 -1
- package/dist/utils/sendMeteringData.js +0 -35
- package/dist/utils/sendMeteringData.js.map +0 -1
- package/dist/utils/verifyLogVerbose.d.ts +0 -2
- package/dist/utils/verifyLogVerbose.d.ts.map +0 -1
- package/dist/utils/verifyLogVerbose.js +0 -10
- package/dist/utils/verifyLogVerbose.js.map +0 -1
- package/examples/basic-client-example.ts +0 -36
- package/examples/metadata-example.ts +0 -97
- package/examples/multiple-models-example.ts +0 -65
- package/examples/openai-client-example.ts +0 -76
- package/examples/perplexity_basic_example.ts +0 -24
- package/examples/perplexity_middleware_example.ts +0 -222
- package/examples/run-all-examples.ts +0 -118
- package/examples/simple-test.ts +0 -278
- package/examples/streaming-example.ts +0 -46
- package/playground/custom-config.js +0 -82
- package/playground/metadata.js +0 -94
- package/playground/multiple-models.js +0 -62
- package/playground/openai-client.js +0 -73
- package/src/models/Exception/ApiResponseError.ts +0 -6
- package/src/models/Exception/ConfigurationError.ts +0 -6
- package/src/models/Exception/MeteringError.ts +0 -6
- package/src/models/Exception/MiddlewareActivationError.ts +0 -6
- package/src/models/Exception/StreamTrackingError.ts +0 -6
- package/src/models/Exception/TokenCountingError.ts +0 -6
- package/src/models/Exception/index.ts +0 -6
- package/src/models/index.ts +0 -2
- package/src/perplexity-ai/client.ts +0 -100
- package/src/perplexity-ai/index.ts +0 -2
- package/src/perplexity-ai/middleware.ts +0 -297
- package/src/types/context.ts +0 -9
- package/src/types/index.ts +0 -11
- package/src/types/modelInfo.ts +0 -5
- package/src/types/operation.ts +0 -4
- package/src/types/perplexityConfig.ts +0 -4
- package/src/types/provider.ts +0 -3
- package/src/types/reveniumConfig.ts +0 -5
- package/src/types/streamTracker.ts +0 -9
- package/src/types/tokenCounts.ts +0 -5
- package/src/types/usageData.ts +0 -16
- package/src/utils/activeMiddleware.ts +0 -34
- package/src/utils/askConsole.ts +0 -15
- package/src/utils/createMeteringRequest.ts +0 -16
- package/src/utils/createPerplexityMetadata.ts +0 -11
- package/src/utils/extractModelName.ts +0 -14
- package/src/utils/extractPerplexityTokenCounts.ts +0 -16
- package/src/utils/extractStopReason.ts +0 -13
- package/src/utils/extractUsageMetadata.ts +0 -15
- package/src/utils/getEnv.ts +0 -16
- package/src/utils/sendMeteringData.ts +0 -46
- package/src/utils/verifyLogVerbose.ts +0 -7
- /package/src/utils/{formatTimestamp.ts → formatTimeStamp.ts} +0 -0
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateTransactionId = generateTransactionId;
|
|
4
|
-
const uuid_1 = require("uuid");
|
|
5
|
-
function generateTransactionId() {
|
|
6
|
-
return (0, uuid_1.v4)();
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=generateTransactionId.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateTransactionId.js","sourceRoot":"","sources":["../../src/utils/generateTransactionId.ts"],"names":[],"mappings":";;AAEA,sDAEC;AAJD,+BAAoC;AAEpC,SAAgB,qBAAqB;IACnC,OAAO,IAAA,SAAM,GAAE,CAAC;AAClB,CAAC"}
|
package/dist/utils/getEnv.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getEnv.d.ts","sourceRoot":"","sources":["../../src/utils/getEnv.ts"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
package/dist/utils/getEnv.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getReveniumApiKey = getReveniumApiKey;
|
|
4
|
-
exports.getReveniumBaseUrl = getReveniumBaseUrl;
|
|
5
|
-
exports.getPerplexityBaseUrl = getPerplexityBaseUrl;
|
|
6
|
-
const constants_1 = require("./constants/constants");
|
|
7
|
-
function getReveniumApiKey() {
|
|
8
|
-
return process.env.REVENIUM_METERING_API_KEY ?? "";
|
|
9
|
-
}
|
|
10
|
-
function getReveniumBaseUrl() {
|
|
11
|
-
return process.env.REVENIUM_METERING_BASE_URL || constants_1.REVENIUM_METERING_BASE_URL;
|
|
12
|
-
}
|
|
13
|
-
function getPerplexityBaseUrl() {
|
|
14
|
-
return process.env.PERPLEXITY_BASE_URL || constants_1.CURRENT_PERPLEXITY_BASE_URL;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=getEnv.js.map
|
package/dist/utils/getEnv.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getEnv.js","sourceRoot":"","sources":["../../src/utils/getEnv.ts"],"names":[],"mappings":";;AAKA,8CAEC;AAED,gDAEC;AAED,oDAEC;AAfD,qDAG+B;AAE/B,SAAgB,iBAAiB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC;AACrD,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,sCAA0B,CAAC;AAC9E,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uCAA2B,CAAC;AACxE,CAAC"}
|
package/dist/utils/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export * from "./activeMiddleware";
|
|
2
|
-
export * from "./calculateDurationMs";
|
|
3
|
-
export * from "./createMeteringRequest";
|
|
4
|
-
export * from "./createPerplexityMetadata";
|
|
5
|
-
export * from "./extractModelName";
|
|
6
|
-
export * from "./extractPerplexityTokenCounts";
|
|
7
|
-
export * from "./extractStopReason";
|
|
8
|
-
export * from "./extractUsageMetadata";
|
|
9
|
-
export * from "./formatTimestamp";
|
|
10
|
-
export * from "./generateTransactionId";
|
|
11
|
-
export * from "./safeExtract";
|
|
12
|
-
export * from "./sendMeteringData";
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
|
package/dist/utils/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./activeMiddleware"), exports);
|
|
18
|
-
__exportStar(require("./calculateDurationMs"), exports);
|
|
19
|
-
__exportStar(require("./createMeteringRequest"), exports);
|
|
20
|
-
__exportStar(require("./createPerplexityMetadata"), exports);
|
|
21
|
-
__exportStar(require("./extractModelName"), exports);
|
|
22
|
-
__exportStar(require("./extractPerplexityTokenCounts"), exports);
|
|
23
|
-
__exportStar(require("./extractStopReason"), exports);
|
|
24
|
-
__exportStar(require("./extractUsageMetadata"), exports);
|
|
25
|
-
__exportStar(require("./formatTimestamp"), exports);
|
|
26
|
-
__exportStar(require("./generateTransactionId"), exports);
|
|
27
|
-
__exportStar(require("./safeExtract"), exports);
|
|
28
|
-
__exportStar(require("./sendMeteringData"), exports);
|
|
29
|
-
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,wDAAsC;AACtC,0DAAwC;AACxC,6DAA2C;AAC3C,qDAAmC;AACnC,iEAA+C;AAC/C,sDAAoC;AACpC,yDAAuC;AACvC,oDAAkC;AAClC,0DAAwC;AACxC,gDAA8B;AAC9B,qDAAmC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safeExtract.d.ts","sourceRoot":"","sources":["../../src/utils/safeExtract.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAiBzE"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.safeExtract = safeExtract;
|
|
4
|
-
function safeExtract(obj, path, defaultValue) {
|
|
5
|
-
try {
|
|
6
|
-
const keys = path.split(".");
|
|
7
|
-
let result = obj;
|
|
8
|
-
for (const key of keys) {
|
|
9
|
-
if (result && typeof result === "object" && key in result) {
|
|
10
|
-
result = result[key];
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
return defaultValue;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return result ?? defaultValue;
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
return defaultValue;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=safeExtract.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safeExtract.js","sourceRoot":"","sources":["../../src/utils/safeExtract.ts"],"names":[],"mappings":";;AAAA,kCAiBC;AAjBD,SAAgB,WAAW,CAAI,GAAQ,EAAE,IAAY,EAAE,YAAe;IACpE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBAC1D,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,IAAI,YAAY,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendMeteringData.d.ts","sourceRoot":"","sources":["../../src/utils/sendMeteringData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3C,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.sendMeteringData = sendMeteringData;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const models_1 = require("../models");
|
|
9
|
-
const constants_1 = require("./constants/constants");
|
|
10
|
-
async function sendMeteringData(meteringRequest, apiKey, baseUrl) {
|
|
11
|
-
try {
|
|
12
|
-
const response = await axios_1.default.post(`${baseUrl}/v2/ai/completions`, meteringRequest, {
|
|
13
|
-
headers: {
|
|
14
|
-
"Content-Type": "application/json",
|
|
15
|
-
Accept: "application/json",
|
|
16
|
-
"x-api-key": apiKey,
|
|
17
|
-
},
|
|
18
|
-
timeout: constants_1.TIMEOUT_MS,
|
|
19
|
-
});
|
|
20
|
-
if (response.status !== constants_1.STATUS_CODE.SUCCESS &&
|
|
21
|
-
response.status !== constants_1.STATUS_CODE.CREATED) {
|
|
22
|
-
throw new models_1.MeteringError(`Failed to send metering data. Status: ${response.status}`, new Error(`HTTP ${response.status}`));
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
console.log("🔍 [DEBUG] Metering data sent successfully");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
if (error instanceof models_1.MeteringError) {
|
|
30
|
-
throw error;
|
|
31
|
-
}
|
|
32
|
-
throw new models_1.MeteringError("Failed to send metering data to Revenium", error);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=sendMeteringData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendMeteringData.js","sourceRoot":"","sources":["../../src/utils/sendMeteringData.ts"],"names":[],"mappings":";;;;;AAKA,4CAwCC;AA7CD,kDAA0B;AAE1B,sCAA0C;AAC1C,qDAAgE;AAEzD,KAAK,UAAU,gBAAgB,CACpC,eAAgC,EAChC,MAAc,EACd,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,OAAO,oBAAoB,EAC9B,eAAe,EACf;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,WAAW,EAAE,MAAM;aACpB;YACD,OAAO,EAAE,sBAAU;SACpB,CACF,CAAC;QAEF,IACE,QAAQ,CAAC,MAAM,KAAK,uBAAW,CAAC,OAAO;YACvC,QAAQ,CAAC,MAAM,KAAK,uBAAW,CAAC,OAAO,EACvC,CAAC;YACD,MAAM,IAAI,sBAAa,CACrB,yCAAyC,QAAQ,CAAC,MAAM,EAAE,EAC1D,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CACrC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAa,EAAE,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,sBAAa,CACrB,0CAA0C,EAC1C,KAAc,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verifyLogVerbose.d.ts","sourceRoot":"","sources":["../../src/utils/verifyLogVerbose.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIxE"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.verifyLogVerbose = verifyLogVerbose;
|
|
4
|
-
const models_1 = require("../models");
|
|
5
|
-
function verifyLogVerbose(verbose, message) {
|
|
6
|
-
if (verbose) {
|
|
7
|
-
models_1.Logger.info(message);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=verifyLogVerbose.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verifyLogVerbose.js","sourceRoot":"","sources":["../../src/utils/verifyLogVerbose.ts"],"names":[],"mappings":";;AAEA,4CAIC;AAND,sCAAmC;AAEnC,SAAgB,gBAAgB,CAAC,OAAgB,EAAE,OAAe;IAChE,IAAI,OAAO,EAAE,CAAC;QACZ,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { config } from "dotenv";
|
|
2
|
-
|
|
3
|
-
// Cargar variables de entorno ANTES de importar el middleware
|
|
4
|
-
config();
|
|
5
|
-
|
|
6
|
-
import { createPerplexityClient } from "../src/perplexity-ai";
|
|
7
|
-
|
|
8
|
-
async function basicExample() {
|
|
9
|
-
console.log("\n🤖 Perplexity AI - Basic Client Example");
|
|
10
|
-
console.log("=".repeat(50));
|
|
11
|
-
|
|
12
|
-
try {
|
|
13
|
-
// Create client instance
|
|
14
|
-
const client = createPerplexityClient();
|
|
15
|
-
|
|
16
|
-
// Make a simple chat completion
|
|
17
|
-
const response = await client.createChatCompletion({
|
|
18
|
-
model: "sonar-pro",
|
|
19
|
-
messages: [
|
|
20
|
-
{
|
|
21
|
-
role: "user",
|
|
22
|
-
content: "What is the meaning of life, the universe and everything?",
|
|
23
|
-
},
|
|
24
|
-
],
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
console.log("✅ Response received:");
|
|
28
|
-
console.log(response.choices[0].message.content);
|
|
29
|
-
console.log("\n📊 Token usage automatically tracked by middleware");
|
|
30
|
-
console.log("🎉 Basic client example successful!");
|
|
31
|
-
} catch (error) {
|
|
32
|
-
console.error("❌ Error:", error);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
basicExample().catch(console.error);
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { config } from "dotenv";
|
|
2
|
-
import { createPerplexityClient } from "../src/perplexity-ai";
|
|
3
|
-
|
|
4
|
-
config();
|
|
5
|
-
|
|
6
|
-
async function metadataExample() {
|
|
7
|
-
console.log("\n📊 Perplexity AI - Metadata Tracking Example");
|
|
8
|
-
console.log("=".repeat(50));
|
|
9
|
-
|
|
10
|
-
try {
|
|
11
|
-
// Create client instance
|
|
12
|
-
const client = createPerplexityClient();
|
|
13
|
-
|
|
14
|
-
// Example 1: Basic metadata
|
|
15
|
-
console.log("\n1️⃣ Basic metadata tracking:");
|
|
16
|
-
const basicResponse = await client.createChatCompletion({
|
|
17
|
-
model: "sonar-pro",
|
|
18
|
-
messages: [
|
|
19
|
-
{
|
|
20
|
-
role: "user",
|
|
21
|
-
content: "Analyze this quarterly report for key insights",
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
usageMetadata: {
|
|
25
|
-
traceId: "conv-28a7e9d4",
|
|
26
|
-
taskType: "document-analysis",
|
|
27
|
-
subscriberEmail: "user@example.com",
|
|
28
|
-
organizationId: "acme-corp",
|
|
29
|
-
subscriptionId: "premium-plan",
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
console.log(
|
|
34
|
-
"✅ Response:",
|
|
35
|
-
basicResponse.choices[0]?.message?.content?.substring(0, 100) + "..."
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
// Example 2: Advanced metadata
|
|
39
|
-
console.log("\n2️⃣ Advanced metadata tracking:");
|
|
40
|
-
const advancedResponse = await client.createChatCompletion({
|
|
41
|
-
model: "sonar-pro",
|
|
42
|
-
messages: [
|
|
43
|
-
{
|
|
44
|
-
role: "user",
|
|
45
|
-
content: "What are the latest developments in AI?",
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
usageMetadata: {
|
|
49
|
-
traceId: "conv-advanced-123",
|
|
50
|
-
taskType: "research",
|
|
51
|
-
subscriberId: "user-12345",
|
|
52
|
-
subscriberCredentialName: "api-key-1",
|
|
53
|
-
productId: "business-intelligence",
|
|
54
|
-
agent: "research-assistant-v2",
|
|
55
|
-
responseQualityScore: 0.95,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
console.log(
|
|
60
|
-
"✅ Response:",
|
|
61
|
-
advancedResponse.choices[0]?.message?.content?.substring(0, 100) + "..."
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
// Example 3: Streaming with metadata
|
|
65
|
-
console.log("\n3️⃣ Streaming with metadata:");
|
|
66
|
-
const stream = await client.createStreamingChatCompletion({
|
|
67
|
-
model: "sonar-pro",
|
|
68
|
-
messages: [
|
|
69
|
-
{
|
|
70
|
-
role: "user",
|
|
71
|
-
content: "Write a creative story about AI",
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
usageMetadata: {
|
|
75
|
-
traceId: "conv-streaming-456",
|
|
76
|
-
taskType: "creative-writing",
|
|
77
|
-
organizationId: "creative-studio",
|
|
78
|
-
agent: "story-generator",
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
console.log("📝 Streaming response with metadata:");
|
|
83
|
-
for await (const chunk of stream) {
|
|
84
|
-
const content = chunk.choices[0]?.delta?.content;
|
|
85
|
-
if (content) {
|
|
86
|
-
process.stdout.write(content);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
console.log("\n\n🎉 All metadata examples completed successfully!");
|
|
91
|
-
console.log("📊 All usage tracked with custom metadata");
|
|
92
|
-
} catch (error) {
|
|
93
|
-
console.error("❌ Error:", error);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
metadataExample().catch(console.error);
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { config } from "dotenv";
|
|
2
|
-
import { createPerplexityClient } from "../src/perplexity-ai";
|
|
3
|
-
|
|
4
|
-
config();
|
|
5
|
-
|
|
6
|
-
async function multipleModelsExample() {
|
|
7
|
-
console.log("\n🔧 Perplexity AI - Multiple Models Example");
|
|
8
|
-
console.log("=".repeat(50));
|
|
9
|
-
|
|
10
|
-
try {
|
|
11
|
-
// Create client instance
|
|
12
|
-
const client = createPerplexityClient();
|
|
13
|
-
|
|
14
|
-
// Test different prompts with the same model
|
|
15
|
-
const testCases = [
|
|
16
|
-
{
|
|
17
|
-
name: "sonar-pro (Quantum Computing)",
|
|
18
|
-
description: "Latest and most capable model",
|
|
19
|
-
prompt: "Explain quantum computing in simple terms",
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
name: "sonar-pro (AI Developments)",
|
|
23
|
-
description: "Latest and most capable model",
|
|
24
|
-
prompt: "What are the latest developments in AI?",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "sonar-pro (Weather)",
|
|
28
|
-
description: "Latest and most capable model",
|
|
29
|
-
prompt: "What is the weather like today?",
|
|
30
|
-
},
|
|
31
|
-
];
|
|
32
|
-
|
|
33
|
-
for (const testCase of testCases) {
|
|
34
|
-
console.log(`\n🤖 Testing: ${testCase.name}`);
|
|
35
|
-
console.log(`📝 Description: ${testCase.description}`);
|
|
36
|
-
console.log("-".repeat(40));
|
|
37
|
-
|
|
38
|
-
try {
|
|
39
|
-
const response = await client.createChatCompletion({
|
|
40
|
-
model: "sonar-pro",
|
|
41
|
-
messages: [
|
|
42
|
-
{
|
|
43
|
-
role: "user",
|
|
44
|
-
content: testCase.prompt,
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
console.log("✅ Response:");
|
|
50
|
-
console.log(response.choices[0]?.message?.content?.substring(0, 200) + "...");
|
|
51
|
-
console.log("📊 Usage tracked by middleware");
|
|
52
|
-
|
|
53
|
-
} catch (error) {
|
|
54
|
-
console.log(`❌ Error with ${testCase.name}:`, error);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
console.log("\n🎉 Multiple models example completed!");
|
|
59
|
-
|
|
60
|
-
} catch (error) {
|
|
61
|
-
console.error("❌ Error:", error);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
multipleModelsExample().catch(console.error);
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { config } from "dotenv";
|
|
2
|
-
import { OpenAI } from "openai";
|
|
3
|
-
|
|
4
|
-
// Import middleware to activate automatic tracking
|
|
5
|
-
import "../src/perplexity-ai";
|
|
6
|
-
|
|
7
|
-
config();
|
|
8
|
-
|
|
9
|
-
async function openaiClientExample() {
|
|
10
|
-
console.log("\n🤖 Perplexity AI - OpenAI Client Example");
|
|
11
|
-
console.log("=".repeat(50));
|
|
12
|
-
|
|
13
|
-
try {
|
|
14
|
-
// Create OpenAI client configured for Perplexity (like in basic example)
|
|
15
|
-
const client = new OpenAI({
|
|
16
|
-
apiKey: process.env.PERPLEXITY_API_KEY,
|
|
17
|
-
baseURL: "https://api.perplexity.ai",
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
console.log("✅ OpenAI client configured for Perplexity AI");
|
|
21
|
-
console.log("📊 Middleware automatically tracking all requests");
|
|
22
|
-
|
|
23
|
-
// Test different types of requests
|
|
24
|
-
console.log("\n1️⃣ Basic chat completion:");
|
|
25
|
-
const basicResponse = await client.chat.completions.create({
|
|
26
|
-
model: "sonar-pro",
|
|
27
|
-
messages: [
|
|
28
|
-
{
|
|
29
|
-
role: "user",
|
|
30
|
-
content: "What is the meaning of life, the universe and everything?",
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
});
|
|
34
|
-
console.log("✅ Response:", basicResponse.choices[0]?.message?.content?.substring(0, 100) + "...");
|
|
35
|
-
|
|
36
|
-
console.log("\n2️⃣ Streaming chat completion:");
|
|
37
|
-
const stream = await client.chat.completions.create({
|
|
38
|
-
model: "sonar-pro",
|
|
39
|
-
messages: [
|
|
40
|
-
{
|
|
41
|
-
role: "user",
|
|
42
|
-
content: "Write a short poem about AI",
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
stream: true,
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
console.log("📝 Streaming response:");
|
|
49
|
-
for await (const chunk of stream) {
|
|
50
|
-
const content = chunk.choices[0]?.delta?.content;
|
|
51
|
-
if (content) {
|
|
52
|
-
process.stdout.write(content);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
console.log("\n\n3️⃣ Different prompt:");
|
|
57
|
-
const differentResponse = await client.chat.completions.create({
|
|
58
|
-
model: "sonar-pro",
|
|
59
|
-
messages: [
|
|
60
|
-
{
|
|
61
|
-
role: "user",
|
|
62
|
-
content: "Explain machine learning in one sentence",
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
});
|
|
66
|
-
console.log("✅ Response:", differentResponse.choices[0]?.message?.content);
|
|
67
|
-
|
|
68
|
-
console.log("\n🎉 All examples completed successfully!");
|
|
69
|
-
console.log("📊 All usage automatically tracked by middleware");
|
|
70
|
-
|
|
71
|
-
} catch (error) {
|
|
72
|
-
console.error("❌ Error:", error);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
openaiClientExample().catch(console.error);
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { config } from "dotenv";
|
|
2
|
-
import { OpenAI } from "openai";
|
|
3
|
-
|
|
4
|
-
config();
|
|
5
|
-
|
|
6
|
-
const client = new OpenAI({
|
|
7
|
-
apiKey: process.env.PERPLEXITY_API_KEY,
|
|
8
|
-
baseURL: "https://api.perplexity.ai",
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
const getResponse = async () => {
|
|
12
|
-
const response = await client.chat.completions.create({
|
|
13
|
-
model: "sonar-pro",
|
|
14
|
-
messages: [
|
|
15
|
-
{
|
|
16
|
-
role: "user",
|
|
17
|
-
content: "What is the meaning of life, the universe and everything?",
|
|
18
|
-
},
|
|
19
|
-
],
|
|
20
|
-
});
|
|
21
|
-
console.log("response", response);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
getResponse();
|