@revenium/perplexity 2.0.3 → 2.0.5
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/CHANGELOG.md +47 -10
- package/README.md +144 -720
- package/SECURITY.md +34 -0
- package/dist/cjs/constants/models.js +38 -0
- package/dist/cjs/constants/models.js.map +1 -0
- package/dist/cjs/core/client/index.js +13 -0
- package/dist/cjs/core/client/index.js.map +1 -0
- package/dist/cjs/core/client/manager.js +85 -0
- package/dist/cjs/core/client/manager.js.map +1 -0
- package/dist/cjs/core/config/index.js +21 -0
- package/dist/cjs/core/config/index.js.map +1 -0
- package/dist/cjs/core/config/loader.js +48 -0
- package/dist/cjs/core/config/loader.js.map +1 -0
- package/dist/cjs/core/config/manager.js +77 -0
- package/dist/cjs/core/config/manager.js.map +1 -0
- package/dist/cjs/core/config/validator.js +45 -0
- package/dist/cjs/core/config/validator.js.map +1 -0
- package/dist/cjs/core/middleware/index.js +14 -0
- package/dist/cjs/core/middleware/index.js.map +1 -0
- package/dist/cjs/core/middleware/interfaces.js +94 -0
- package/dist/cjs/core/middleware/interfaces.js.map +1 -0
- package/dist/cjs/core/middleware/revenium-client.js +44 -0
- package/dist/cjs/core/middleware/revenium-client.js.map +1 -0
- package/dist/cjs/core/middleware/streaming-wrapper.js +80 -0
- package/dist/cjs/core/middleware/streaming-wrapper.js.map +1 -0
- package/dist/cjs/core/providers/detector.js +38 -0
- package/dist/cjs/core/providers/detector.js.map +1 -0
- package/dist/cjs/core/providers/index.js +14 -0
- package/dist/cjs/core/providers/index.js.map +1 -0
- package/dist/cjs/core/tracking/api-client.js +67 -0
- package/dist/cjs/core/tracking/api-client.js.map +1 -0
- package/dist/cjs/core/tracking/index.js +21 -0
- package/dist/cjs/core/tracking/index.js.map +1 -0
- package/dist/cjs/core/tracking/payload-builder.js +95 -0
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -0
- package/dist/cjs/core/tracking/usage-tracker.js +83 -0
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -0
- package/dist/cjs/index.js +60 -54
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types/function-parameters.js +14 -0
- package/dist/cjs/types/function-parameters.js.map +1 -0
- package/dist/cjs/types/index.js +20 -16
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/utils/constants.js +20 -0
- package/dist/cjs/utils/constants.js.map +1 -0
- package/dist/cjs/utils/error-handler.js +194 -0
- package/dist/cjs/utils/error-handler.js.map +1 -0
- package/dist/cjs/utils/metadata-builder.js +191 -0
- package/dist/cjs/utils/metadata-builder.js.map +1 -0
- package/dist/cjs/utils/stop-reason-mapper.js +74 -0
- package/dist/cjs/utils/stop-reason-mapper.js.map +1 -0
- package/dist/cjs/utils/transaction-id.js +19 -0
- package/dist/cjs/utils/transaction-id.js.map +1 -0
- package/dist/cjs/utils/url-builder.js +57 -0
- package/dist/cjs/utils/url-builder.js.map +1 -0
- package/dist/esm/constants/models.js +35 -0
- package/dist/esm/constants/models.js.map +1 -0
- package/dist/esm/core/client/index.js +5 -0
- package/dist/esm/core/client/index.js.map +1 -0
- package/dist/esm/core/client/manager.js +78 -0
- package/dist/esm/core/client/manager.js.map +1 -0
- package/dist/esm/core/config/index.js +11 -0
- package/dist/esm/core/config/index.js.map +1 -0
- package/dist/esm/core/config/loader.js +45 -0
- package/dist/esm/core/config/loader.js.map +1 -0
- package/dist/esm/core/config/manager.js +70 -0
- package/dist/esm/core/config/manager.js.map +1 -0
- package/dist/esm/core/config/validator.js +42 -0
- package/dist/esm/core/config/validator.js.map +1 -0
- package/dist/esm/core/middleware/index.js +7 -0
- package/dist/esm/core/middleware/index.js.map +1 -0
- package/dist/esm/core/middleware/interfaces.js +89 -0
- package/dist/esm/core/middleware/interfaces.js.map +1 -0
- package/dist/esm/core/middleware/revenium-client.js +37 -0
- package/dist/esm/core/middleware/revenium-client.js.map +1 -0
- package/dist/esm/core/middleware/streaming-wrapper.js +76 -0
- package/dist/esm/core/middleware/streaming-wrapper.js.map +1 -0
- package/dist/esm/core/providers/detector.js +34 -0
- package/dist/esm/core/providers/detector.js.map +1 -0
- package/dist/esm/core/providers/index.js +9 -0
- package/dist/esm/core/providers/index.js.map +1 -0
- package/dist/esm/core/tracking/api-client.js +64 -0
- package/dist/esm/core/tracking/api-client.js.map +1 -0
- package/dist/esm/core/tracking/index.js +13 -0
- package/dist/esm/core/tracking/index.js.map +1 -0
- package/dist/esm/core/tracking/payload-builder.js +92 -0
- package/dist/esm/core/tracking/payload-builder.js.map +1 -0
- package/dist/esm/core/tracking/usage-tracker.js +79 -0
- package/dist/esm/core/tracking/usage-tracker.js.map +1 -0
- package/dist/esm/index.js +46 -36
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/function-parameters.js +13 -0
- package/dist/esm/types/function-parameters.js.map +1 -0
- package/dist/esm/types/index.js +6 -15
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/utils/constants.js +17 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/error-handler.js +182 -0
- package/dist/esm/utils/error-handler.js.map +1 -0
- package/dist/esm/utils/metadata-builder.js +183 -0
- package/dist/esm/utils/metadata-builder.js.map +1 -0
- package/dist/esm/utils/stop-reason-mapper.js +69 -0
- package/dist/esm/utils/stop-reason-mapper.js.map +1 -0
- package/dist/esm/utils/transaction-id.js +16 -0
- package/dist/esm/utils/transaction-id.js.map +1 -0
- package/dist/esm/utils/url-builder.js +53 -0
- package/dist/esm/utils/url-builder.js.map +1 -0
- package/dist/types/constants/models.d.ts +39 -0
- package/dist/types/constants/models.d.ts.map +1 -0
- package/dist/types/core/client/index.d.ts +5 -0
- package/dist/types/core/client/index.d.ts.map +1 -0
- package/dist/types/core/client/manager.d.ts +44 -0
- package/dist/types/core/client/manager.d.ts.map +1 -0
- package/dist/types/core/config/index.d.ts +10 -0
- package/dist/types/core/config/index.d.ts.map +1 -0
- package/dist/types/core/config/loader.d.ts +13 -0
- package/dist/types/core/config/loader.d.ts.map +1 -0
- package/dist/types/core/config/manager.d.ts +28 -0
- package/dist/types/core/config/manager.d.ts.map +1 -0
- package/dist/types/core/config/validator.d.ts +12 -0
- package/dist/types/core/config/validator.d.ts.map +1 -0
- package/dist/types/core/middleware/index.d.ts +7 -0
- package/dist/types/core/middleware/index.d.ts.map +1 -0
- package/dist/types/core/middleware/interfaces.d.ts +35 -0
- package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
- package/dist/types/core/middleware/revenium-client.d.ts +25 -0
- package/dist/types/core/middleware/revenium-client.d.ts.map +1 -0
- package/dist/types/core/middleware/streaming-wrapper.d.ts +21 -0
- package/dist/types/core/middleware/streaming-wrapper.d.ts.map +1 -0
- package/dist/types/core/providers/detector.d.ts +24 -0
- package/dist/types/core/providers/detector.d.ts.map +1 -0
- package/dist/types/core/providers/index.d.ts +8 -0
- package/dist/types/core/providers/index.d.ts.map +1 -0
- package/dist/types/core/tracking/api-client.d.ts +17 -0
- package/dist/types/core/tracking/api-client.d.ts.map +1 -0
- package/dist/types/core/tracking/index.d.ts +11 -0
- package/dist/types/core/tracking/index.d.ts.map +1 -0
- package/dist/types/core/tracking/payload-builder.d.ts +24 -0
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -0
- package/dist/types/core/tracking/usage-tracker.d.ts +30 -0
- package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -0
- package/dist/types/index.d.ts +56 -27
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/function-parameters.d.ts +185 -0
- package/dist/types/types/function-parameters.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +108 -137
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +9 -0
- package/dist/types/utils/constants.d.ts.map +1 -0
- package/dist/types/utils/error-handler.d.ts +95 -0
- package/dist/types/utils/error-handler.d.ts.map +1 -0
- package/dist/types/utils/metadata-builder.d.ts +65 -0
- package/dist/types/utils/metadata-builder.d.ts.map +1 -0
- package/dist/types/utils/stop-reason-mapper.d.ts +29 -0
- package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -0
- package/dist/types/utils/transaction-id.d.ts +14 -0
- package/dist/types/utils/transaction-id.d.ts.map +1 -0
- package/dist/types/utils/url-builder.d.ts +22 -0
- package/dist/types/utils/url-builder.d.ts.map +1 -0
- package/examples/README.md +136 -233
- package/examples/advanced.ts +123 -0
- package/examples/basic.ts +36 -46
- package/examples/getting_started.ts +41 -0
- package/examples/metadata.ts +55 -59
- package/examples/stream.ts +53 -0
- package/package.json +12 -17
- package/dist/cjs/core/config/perplexity-config.js +0 -45
- package/dist/cjs/core/config/revenium-config.js +0 -80
- package/dist/cjs/core/tracking/metering.js +0 -131
- package/dist/cjs/core/wrapper/perplexity-client.js +0 -177
- package/dist/cjs/utils/logger.js +0 -23
- package/dist/esm/core/config/perplexity-config.js +0 -40
- package/dist/esm/core/config/revenium-config.js +0 -72
- package/dist/esm/core/tracking/metering.js +0 -126
- package/dist/esm/core/wrapper/perplexity-client.js +0 -170
- package/dist/esm/utils/logger.js +0 -20
- package/dist/types/core/config/perplexity-config.d.ts +0 -24
- package/dist/types/core/config/revenium-config.d.ts +0 -37
- package/dist/types/core/tracking/metering.d.ts +0 -31
- package/dist/types/core/wrapper/perplexity-client.d.ts +0 -32
- package/dist/types/utils/logger.d.ts +0 -10
- package/examples/chat.ts +0 -87
- package/examples/streaming.ts +0 -61
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Revenium Metering Module
|
|
3
|
-
* Handles tracking and sending metering data to Revenium
|
|
4
|
-
*/
|
|
5
|
-
import type { MeteringData, UsageMetadata } from "../../types";
|
|
6
|
-
/**
|
|
7
|
-
* Generate a unique transaction ID
|
|
8
|
-
*/
|
|
9
|
-
export declare function generateTransactionId(): string;
|
|
10
|
-
/**
|
|
11
|
-
* Build metering data from request information
|
|
12
|
-
*/
|
|
13
|
-
export declare function buildMeteringData(params: {
|
|
14
|
-
model: string;
|
|
15
|
-
startTime: Date;
|
|
16
|
-
endTime: Date;
|
|
17
|
-
inputTokens: number;
|
|
18
|
-
outputTokens: number;
|
|
19
|
-
totalTokens: number;
|
|
20
|
-
reasoningTokens?: number;
|
|
21
|
-
cachedTokens?: number;
|
|
22
|
-
transactionId: string;
|
|
23
|
-
isStreamed: boolean;
|
|
24
|
-
stopReason: string;
|
|
25
|
-
usageMetadata?: UsageMetadata;
|
|
26
|
-
}): MeteringData;
|
|
27
|
-
/**
|
|
28
|
-
* Send metering data to Revenium
|
|
29
|
-
*/
|
|
30
|
-
export declare function sendMeteringData(meteringData: MeteringData): Promise<void>;
|
|
31
|
-
//# sourceMappingURL=metering.d.ts.map
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Perplexity Client Wrapper
|
|
3
|
-
* Wraps Perplexity API calls with Revenium metering
|
|
4
|
-
*/
|
|
5
|
-
import type { PerplexityMessage, UsageMetadata, ChatCompletionResult, StreamingResult } from "../../types";
|
|
6
|
-
/**
|
|
7
|
-
* Create a chat completion
|
|
8
|
-
*/
|
|
9
|
-
export declare function createChatCompletion(params: {
|
|
10
|
-
messages: PerplexityMessage[];
|
|
11
|
-
model: string;
|
|
12
|
-
maxTokens?: number;
|
|
13
|
-
temperature?: number;
|
|
14
|
-
topP?: number;
|
|
15
|
-
presencePenalty?: number;
|
|
16
|
-
frequencyPenalty?: number;
|
|
17
|
-
usageMetadata?: UsageMetadata;
|
|
18
|
-
}): Promise<ChatCompletionResult>;
|
|
19
|
-
/**
|
|
20
|
-
* Create a streaming chat completion
|
|
21
|
-
*/
|
|
22
|
-
export declare function createStreamingChatCompletion(params: {
|
|
23
|
-
messages: PerplexityMessage[];
|
|
24
|
-
model: string;
|
|
25
|
-
maxTokens?: number;
|
|
26
|
-
temperature?: number;
|
|
27
|
-
topP?: number;
|
|
28
|
-
presencePenalty?: number;
|
|
29
|
-
frequencyPenalty?: number;
|
|
30
|
-
usageMetadata?: UsageMetadata;
|
|
31
|
-
}): Promise<StreamingResult>;
|
|
32
|
-
//# sourceMappingURL=perplexity-client.d.ts.map
|
package/examples/chat.ts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-turn Chat Example
|
|
3
|
-
*
|
|
4
|
-
* This example demonstrates how to have a multi-turn conversation
|
|
5
|
-
* with the Perplexity middleware.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
initializeReveniumFromEnv,
|
|
10
|
-
initializePerplexityFromEnv,
|
|
11
|
-
createChatCompletion,
|
|
12
|
-
PERPLEXITY_MODELS,
|
|
13
|
-
type PerplexityMessage,
|
|
14
|
-
} from "../src";
|
|
15
|
-
|
|
16
|
-
async function main() {
|
|
17
|
-
console.log("Multi-turn Chat Example\n");
|
|
18
|
-
|
|
19
|
-
// Initialize configurations from environment variables
|
|
20
|
-
console.log("Initializing configurations...");
|
|
21
|
-
initializeReveniumFromEnv();
|
|
22
|
-
initializePerplexityFromEnv();
|
|
23
|
-
console.log("Configurations initialized\n");
|
|
24
|
-
|
|
25
|
-
// Start a conversation
|
|
26
|
-
const messages: PerplexityMessage[] = [
|
|
27
|
-
{
|
|
28
|
-
role: "system",
|
|
29
|
-
content: "You are a helpful assistant that provides concise answers.",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
role: "user",
|
|
33
|
-
content: "What is the capital of France?",
|
|
34
|
-
},
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
console.log("Turn 1:");
|
|
38
|
-
console.log("User: What is the capital of France?");
|
|
39
|
-
|
|
40
|
-
const response1 = await createChatCompletion({
|
|
41
|
-
messages,
|
|
42
|
-
model: PERPLEXITY_MODELS.SONAR_PRO,
|
|
43
|
-
maxTokens: 100,
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
console.log(`Assistant: ${response1.content}\n`);
|
|
47
|
-
|
|
48
|
-
// Continue the conversation
|
|
49
|
-
messages.push({
|
|
50
|
-
role: "assistant",
|
|
51
|
-
content: response1.content,
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
messages.push({
|
|
55
|
-
role: "user",
|
|
56
|
-
content: "What is its population?",
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
console.log("Turn 2:");
|
|
60
|
-
console.log("User: What is its population?");
|
|
61
|
-
|
|
62
|
-
const response2 = await createChatCompletion({
|
|
63
|
-
messages,
|
|
64
|
-
model: PERPLEXITY_MODELS.SONAR_PRO,
|
|
65
|
-
maxTokens: 100,
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
console.log(`Assistant: ${response2.content}\n`);
|
|
69
|
-
|
|
70
|
-
console.log("Summary:");
|
|
71
|
-
console.log("─────────────────────────────────────────");
|
|
72
|
-
console.log(`Total turns: 2`);
|
|
73
|
-
console.log(`Transaction ID 1: ${response1.transactionId}`);
|
|
74
|
-
console.log(`Transaction ID 2: ${response2.transactionId}`);
|
|
75
|
-
console.log(
|
|
76
|
-
`Total tokens used: ${response1.usage.totalTokens + response2.usage.totalTokens}`
|
|
77
|
-
);
|
|
78
|
-
console.log("─────────────────────────────────────────\n");
|
|
79
|
-
|
|
80
|
-
console.log("Chat completed successfully!");
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
main().catch((error) => {
|
|
84
|
-
console.error("Error:", error.message);
|
|
85
|
-
process.exit(1);
|
|
86
|
-
});
|
|
87
|
-
|
package/examples/streaming.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streaming Chat Completion Example
|
|
3
|
-
*
|
|
4
|
-
* This example demonstrates how to use streaming responses
|
|
5
|
-
* with the Perplexity middleware and Revenium metering.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
initializeReveniumFromEnv,
|
|
10
|
-
initializePerplexityFromEnv,
|
|
11
|
-
createStreamingChatCompletion,
|
|
12
|
-
PERPLEXITY_MODELS,
|
|
13
|
-
} from "../src";
|
|
14
|
-
|
|
15
|
-
async function main() {
|
|
16
|
-
console.log("Streaming Chat Completion Example\n");
|
|
17
|
-
|
|
18
|
-
// Initialize configurations from environment variables
|
|
19
|
-
console.log("Initializing configurations...");
|
|
20
|
-
initializeReveniumFromEnv();
|
|
21
|
-
initializePerplexityFromEnv();
|
|
22
|
-
console.log("Configurations initialized\n");
|
|
23
|
-
|
|
24
|
-
// Create a streaming chat completion
|
|
25
|
-
console.log("Creating streaming chat completion...");
|
|
26
|
-
const result = await createStreamingChatCompletion({
|
|
27
|
-
messages: [
|
|
28
|
-
{
|
|
29
|
-
role: "user",
|
|
30
|
-
content: "Count from 1 to 5 slowly, one number per line.",
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
model: PERPLEXITY_MODELS.SONAR_PRO,
|
|
34
|
-
maxTokens: 100,
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
console.log("\nStreaming Response:");
|
|
38
|
-
console.log("─────────────────────────────────────────");
|
|
39
|
-
console.log(`Transaction ID: ${result.transactionId}`);
|
|
40
|
-
console.log(`Model: ${result.model}\n`);
|
|
41
|
-
|
|
42
|
-
// Process the stream
|
|
43
|
-
let fullContent = "";
|
|
44
|
-
for await (const chunk of result.stream) {
|
|
45
|
-
const content = chunk.choices[0]?.delta?.content || "";
|
|
46
|
-
if (content) {
|
|
47
|
-
process.stdout.write(content);
|
|
48
|
-
fullContent += content;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
console.log("\n─────────────────────────────────────────");
|
|
53
|
-
console.log(`\nFull Response: ${fullContent}`);
|
|
54
|
-
console.log("\nStreaming completed successfully!");
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
main().catch((error) => {
|
|
58
|
-
console.error("Error:", error.message);
|
|
59
|
-
process.exit(1);
|
|
60
|
-
});
|
|
61
|
-
|