@retrivora-ai/rag-engine 2.1.3 → 2.1.4
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/dist/{ILLMProvider-0rRBYbVW.d.mts → ILLMProvider-BWa68XX5.d.mts} +2 -0
- package/dist/{ILLMProvider-0rRBYbVW.d.ts → ILLMProvider-BWa68XX5.d.ts} +2 -0
- package/dist/handlers/index.d.mts +2 -2
- package/dist/handlers/index.d.ts +2 -2
- package/dist/handlers/index.js +240 -59
- package/dist/handlers/index.mjs +240 -59
- package/dist/{index-B1wGUlSL.d.mts → index-BCbeeh74.d.ts} +11 -2
- package/dist/{index-DcklhThn.d.ts → index-BbJGyNmW.d.mts} +11 -2
- package/dist/{index-BIHHp_f6.d.ts → index-C6ehmP0b.d.ts} +1 -1
- package/dist/{index-BvODr57d.d.mts → index-DFc_Ll9z.d.mts} +1 -1
- package/dist/index.css +23 -0
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +191 -21
- package/dist/index.mjs +190 -21
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/server.js +242 -59
- package/dist/server.mjs +241 -59
- package/package.json +1 -1
- package/src/components/DocumentUpload.tsx +50 -18
- package/src/config/serverConfig.ts +2 -2
- package/src/core/Pipeline.ts +23 -1
- package/src/handlers/index.ts +34 -10
- package/src/index.css +23 -0
- package/src/index.ts +1 -0
- package/src/server.ts +1 -0
- package/src/types/index.ts +2 -0
- package/src/types/props.ts +4 -0
- package/src/version.ts +6 -0
package/src/core/Pipeline.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseVectorProvider } from '../providers/vectordb/BaseVectorProvider';
|
|
2
|
+
import { SDK_VERSION } from '../version';
|
|
2
3
|
import { BaseGraphProvider } from '../providers/graphdb/BaseGraphProvider';
|
|
3
4
|
import { ILLMProvider } from '../llm/ILLMProvider';
|
|
4
5
|
import { ChatMessage } from '../types';
|
|
@@ -933,6 +934,14 @@ You are a helpful assistant. Use the provided context to answer questions accura
|
|
|
933
934
|
}
|
|
934
935
|
}
|
|
935
936
|
|
|
937
|
+
const modelName = finalTrace?.model || this.config.llm?.model || 'llama-3.1-8b-instant';
|
|
938
|
+
const providerName = finalTrace?.provider || this.config.llm?.provider || 'groq';
|
|
939
|
+
const tokenCount = Number(finalTrace?.tokens?.totalTokens || 0);
|
|
940
|
+
const costEst = Number(finalTrace?.tokens?.estimatedCostUsd || 0);
|
|
941
|
+
const latencyDuration = Number(finalTrace?.latency?.totalMs || 0);
|
|
942
|
+
|
|
943
|
+
console.log(`[Retrivora Pipeline Telemetry] 📊 Dispatching RAG telemetry -> Project: "${ns}", Model: "${providerName}/${modelName}", Tokens: ${tokenCount}, Latency: ${latencyDuration}ms`);
|
|
944
|
+
|
|
936
945
|
await fetch(absoluteUrl, {
|
|
937
946
|
method: 'POST',
|
|
938
947
|
headers: {
|
|
@@ -941,7 +950,20 @@ You are a helpful assistant. Use the provided context to answer questions accura
|
|
|
941
950
|
body: JSON.stringify({
|
|
942
951
|
trace: finalTrace,
|
|
943
952
|
licenseKey: this.config.licenseKey,
|
|
944
|
-
projectId: ns
|
|
953
|
+
projectId: ns,
|
|
954
|
+
organization: process.env.RETRIVORA_ORGANIZATION || 'default-org',
|
|
955
|
+
sdkVersion: SDK_VERSION,
|
|
956
|
+
model: modelName,
|
|
957
|
+
provider: providerName,
|
|
958
|
+
tokens: tokenCount,
|
|
959
|
+
cost: costEst,
|
|
960
|
+
costUsd: costEst,
|
|
961
|
+
latencyMs: latencyDuration,
|
|
962
|
+
status: 'success',
|
|
963
|
+
action: 'RAG_QUERY',
|
|
964
|
+
feature: 'RAG',
|
|
965
|
+
timestamp: new Date().toISOString(),
|
|
966
|
+
details: `Org: default-org | Model: ${providerName}/${modelName} | Tokens: ${tokenCount} | Latency: ${latencyDuration}ms | Cost: $${costEst} | SDK: v${SDK_VERSION} | Feature: RAG`
|
|
945
967
|
})
|
|
946
968
|
});
|
|
947
969
|
} catch (err: any) {
|
package/src/handlers/index.ts
CHANGED
|
@@ -147,6 +147,8 @@ function getOrCreatePlugin(configOrPlugin: Partial<RagConfig> | VectorPlugin | u
|
|
|
147
147
|
|
|
148
148
|
// ─── Telemetry Reporter Helper ───────────────────────────────────────────────
|
|
149
149
|
|
|
150
|
+
import { SDK_VERSION } from '../version';
|
|
151
|
+
|
|
150
152
|
/**
|
|
151
153
|
* Asynchronously sends telemetry payload to telemetryUrl when telemetry is enabled
|
|
152
154
|
* or when a licenseKey is set. Non-blocking.
|
|
@@ -157,7 +159,7 @@ function reportTelemetry(
|
|
|
157
159
|
action: string,
|
|
158
160
|
status: 'success' | 'error',
|
|
159
161
|
details: string,
|
|
160
|
-
trace?:
|
|
162
|
+
trace?: any
|
|
161
163
|
) {
|
|
162
164
|
try {
|
|
163
165
|
const config = plugin.getConfig();
|
|
@@ -171,6 +173,7 @@ function reportTelemetry(
|
|
|
171
173
|
|
|
172
174
|
const telemetryUrl = telemetryConfig?.url || process.env.TELEMETRY_URL || process.env.NEXT_PUBLIC_TELEMETRY_URL || defaultUrl;
|
|
173
175
|
const host = req.headers.get('host') || 'localhost';
|
|
176
|
+
const userAgent = req.headers.get('user-agent') || `Retrivora-SDK/${SDK_VERSION}`;
|
|
174
177
|
|
|
175
178
|
let absoluteUrl = telemetryUrl;
|
|
176
179
|
if (!telemetryUrl.startsWith('http')) {
|
|
@@ -179,6 +182,33 @@ function reportTelemetry(
|
|
|
179
182
|
}
|
|
180
183
|
|
|
181
184
|
const projectId = config.projectId || 'default';
|
|
185
|
+
const model = trace?.model || config.llm?.model || config.embedding?.model || 'llama-3.1-8b-instant';
|
|
186
|
+
const provider = trace?.provider || config.llm?.provider || config.embedding?.provider || 'groq';
|
|
187
|
+
const tokens = Number(trace?.tokens?.totalTokens || trace?.totalTokens || 0);
|
|
188
|
+
const costUsd = Number(trace?.tokens?.estimatedCostUsd || trace?.costUsd || 0);
|
|
189
|
+
const latencyMs = Number(trace?.latency?.totalMs || trace?.latencyMs || 0);
|
|
190
|
+
|
|
191
|
+
const payload = {
|
|
192
|
+
trace,
|
|
193
|
+
licenseKey,
|
|
194
|
+
projectId,
|
|
195
|
+
organization: process.env.RETRIVORA_ORGANIZATION || 'default-org',
|
|
196
|
+
sdkVersion: SDK_VERSION,
|
|
197
|
+
model,
|
|
198
|
+
provider,
|
|
199
|
+
tokens,
|
|
200
|
+
cost: costUsd,
|
|
201
|
+
costUsd,
|
|
202
|
+
latencyMs,
|
|
203
|
+
status,
|
|
204
|
+
action,
|
|
205
|
+
feature: action,
|
|
206
|
+
userAgent,
|
|
207
|
+
timestamp: new Date().toISOString(),
|
|
208
|
+
details,
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
console.log(`[Retrivora SDK Telemetry] 📊 Dispatching telemetry -> Feature: "${action}", Status: "${status}", Project: "${projectId}", Model: "${provider}/${model}", Latency: ${latencyMs}ms`);
|
|
182
212
|
|
|
183
213
|
fetch(absoluteUrl, {
|
|
184
214
|
method: 'POST',
|
|
@@ -186,17 +216,11 @@ function reportTelemetry(
|
|
|
186
216
|
'Content-Type': 'application/json',
|
|
187
217
|
'x-forwarded-for': req.headers.get('x-forwarded-for') || '',
|
|
188
218
|
'x-real-ip': req.headers.get('x-real-ip') || '',
|
|
219
|
+
'user-agent': userAgent,
|
|
189
220
|
},
|
|
190
|
-
body: JSON.stringify(
|
|
191
|
-
trace,
|
|
192
|
-
licenseKey,
|
|
193
|
-
projectId,
|
|
194
|
-
action,
|
|
195
|
-
status,
|
|
196
|
-
details,
|
|
197
|
-
}),
|
|
221
|
+
body: JSON.stringify(payload),
|
|
198
222
|
}).catch(err => {
|
|
199
|
-
console.warn('[Retrivora Telemetry] Async report warning:', err.message);
|
|
223
|
+
console.warn('[Retrivora SDK Telemetry] Async report warning:', err.message);
|
|
200
224
|
});
|
|
201
225
|
} catch {
|
|
202
226
|
/* non-blocking */
|
package/src/index.css
CHANGED
|
@@ -2259,6 +2259,11 @@
|
|
|
2259
2259
|
cursor: not-allowed;
|
|
2260
2260
|
}
|
|
2261
2261
|
}
|
|
2262
|
+
.disabled\:text-slate-400 {
|
|
2263
|
+
&:disabled {
|
|
2264
|
+
color: var(--color-slate-400);
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2262
2267
|
.disabled\:opacity-30 {
|
|
2263
2268
|
&:disabled {
|
|
2264
2269
|
opacity: 30%;
|
|
@@ -2912,6 +2917,14 @@
|
|
|
2912
2917
|
color: var(--color-amber-400);
|
|
2913
2918
|
}
|
|
2914
2919
|
}
|
|
2920
|
+
.dark\:text-amber-400\/90 {
|
|
2921
|
+
@media (prefers-color-scheme: dark) {
|
|
2922
|
+
color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 90%, transparent);
|
|
2923
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2924
|
+
color: color-mix(in oklab, var(--color-amber-400) 90%, transparent);
|
|
2925
|
+
}
|
|
2926
|
+
}
|
|
2927
|
+
}
|
|
2915
2928
|
.dark\:text-blue-100 {
|
|
2916
2929
|
@media (prefers-color-scheme: dark) {
|
|
2917
2930
|
color: var(--color-blue-100);
|
|
@@ -3371,6 +3384,16 @@
|
|
|
3371
3384
|
}
|
|
3372
3385
|
}
|
|
3373
3386
|
}
|
|
3387
|
+
.dark\:disabled\:text-white\/30 {
|
|
3388
|
+
@media (prefers-color-scheme: dark) {
|
|
3389
|
+
&:disabled {
|
|
3390
|
+
color: color-mix(in srgb, #fff 30%, transparent);
|
|
3391
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3392
|
+
color: color-mix(in oklab, var(--color-white) 30%, transparent);
|
|
3393
|
+
}
|
|
3394
|
+
}
|
|
3395
|
+
}
|
|
3396
|
+
}
|
|
3374
3397
|
}
|
|
3375
3398
|
@layer base {
|
|
3376
3399
|
:root {
|
package/src/index.ts
CHANGED
|
@@ -15,6 +15,7 @@ export { MessageBubble } from './components/MessageBubble';
|
|
|
15
15
|
export { SourceCard } from './components/SourceCard';
|
|
16
16
|
export { ObservabilityPanel } from './components/ObservabilityPanel';
|
|
17
17
|
export { ConfigProvider, useConfig } from './components/ConfigProvider';
|
|
18
|
+
export { SDK_VERSION } from './version';
|
|
18
19
|
export { CodeViewer } from './components/CodeViewer';
|
|
19
20
|
export { ProductCard } from './components/ProductCard';
|
|
20
21
|
export { ProductCarousel } from './components/ProductCarousel';
|
package/src/server.ts
CHANGED
|
@@ -36,6 +36,7 @@ export { ConfigResolver } from './core/ConfigResolver';
|
|
|
36
36
|
export { ProviderRegistry } from './core/ProviderRegistry';
|
|
37
37
|
export { ConfigValidator } from './core/ConfigValidator';
|
|
38
38
|
export { LicenseVerifier } from './core/LicenseVerifier';
|
|
39
|
+
export { SDK_VERSION } from './version';
|
|
39
40
|
export { ProviderHealthCheck } from './core/ProviderHealthCheck';
|
|
40
41
|
export { BatchProcessor } from './core/BatchProcessor';
|
|
41
42
|
|
package/src/types/index.ts
CHANGED
|
@@ -40,6 +40,8 @@ export interface ObservabilityTrace {
|
|
|
40
40
|
chunks: RetrievedChunk[];
|
|
41
41
|
latency: LatencyBreakdown;
|
|
42
42
|
tokens?: TokenUsage;
|
|
43
|
+
model?: string;
|
|
44
|
+
provider?: string;
|
|
43
45
|
/** 0 = fully grounded, 1 = likely hallucinated. */
|
|
44
46
|
hallucinationScore?: number;
|
|
45
47
|
hallucinationReason?: string;
|
package/src/types/props.ts
CHANGED
|
@@ -109,6 +109,10 @@ export interface ProductCarouselProps {
|
|
|
109
109
|
export interface DocumentUploadProps {
|
|
110
110
|
/** Optional namespace for the upload */
|
|
111
111
|
namespace?: string;
|
|
112
|
+
/** Custom upload API endpoint URL (defaults to /api/retrivora/upload or /api/upload) */
|
|
113
|
+
uploadUrl?: string;
|
|
114
|
+
/** Base URL for Retrivora SDK endpoints (defaults to /api/retrivora) */
|
|
115
|
+
retrivoraApiBase?: string;
|
|
112
116
|
/** Callback when upload completes */
|
|
113
117
|
onUploadComplete?: (results: unknown) => void;
|
|
114
118
|
/** Additional className */
|