@retrivora-ai/rag-engine 2.1.2 → 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 +278 -69
- package/dist/handlers/index.mjs +278 -69
- 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 +280 -69
- package/dist/server.mjs +279 -69
- package/package.json +1 -1
- package/src/components/DocumentUpload.tsx +50 -18
- package/src/config/serverConfig.ts +7 -7
- 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
|
@@ -375,6 +375,8 @@ interface ObservabilityTrace {
|
|
|
375
375
|
chunks: RetrievedChunk[];
|
|
376
376
|
latency: LatencyBreakdown;
|
|
377
377
|
tokens?: TokenUsage;
|
|
378
|
+
model?: string;
|
|
379
|
+
provider?: string;
|
|
378
380
|
/** 0 = fully grounded, 1 = likely hallucinated. */
|
|
379
381
|
hallucinationScore?: number;
|
|
380
382
|
hallucinationReason?: string;
|
|
@@ -375,6 +375,8 @@ interface ObservabilityTrace {
|
|
|
375
375
|
chunks: RetrievedChunk[];
|
|
376
376
|
latency: LatencyBreakdown;
|
|
377
377
|
tokens?: TokenUsage;
|
|
378
|
+
model?: string;
|
|
379
|
+
provider?: string;
|
|
378
380
|
/** 0 = fully grounded, 1 = likely hallucinated. */
|
|
379
381
|
hallucinationScore?: number;
|
|
380
382
|
hallucinationReason?: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'next/server';
|
|
2
|
-
export { o as HandlerOptions, c as createChatHandler, d as createFeedbackHandler, e as createHealthHandler, f as createHistoryHandler, g as createIngestHandler, h as createRagHandler, i as createSessionsHandler, j as createStreamHandler, p as createSuggestionsHandler, k as createUploadHandler, s as sseErrorFrame, l as sseFrame, m as sseMetaFrame, q as sseObservabilityFrame, n as sseTextFrame, r as sseUIFrame } from '../index-
|
|
3
|
-
import '../ILLMProvider-
|
|
2
|
+
export { o as HandlerOptions, c as createChatHandler, d as createFeedbackHandler, e as createHealthHandler, f as createHistoryHandler, g as createIngestHandler, h as createRagHandler, i as createSessionsHandler, j as createStreamHandler, p as createSuggestionsHandler, k as createUploadHandler, s as sseErrorFrame, l as sseFrame, m as sseMetaFrame, q as sseObservabilityFrame, n as sseTextFrame, r as sseUIFrame } from '../index-DFc_Ll9z.mjs';
|
|
3
|
+
import '../ILLMProvider-BWa68XX5.mjs';
|
package/dist/handlers/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'next/server';
|
|
2
|
-
export { o as HandlerOptions, c as createChatHandler, d as createFeedbackHandler, e as createHealthHandler, f as createHistoryHandler, g as createIngestHandler, h as createRagHandler, i as createSessionsHandler, j as createStreamHandler, p as createSuggestionsHandler, k as createUploadHandler, s as sseErrorFrame, l as sseFrame, m as sseMetaFrame, q as sseObservabilityFrame, n as sseTextFrame, r as sseUIFrame } from '../index-
|
|
3
|
-
import '../ILLMProvider-
|
|
2
|
+
export { o as HandlerOptions, c as createChatHandler, d as createFeedbackHandler, e as createHealthHandler, f as createHistoryHandler, g as createIngestHandler, h as createRagHandler, i as createSessionsHandler, j as createStreamHandler, p as createSuggestionsHandler, k as createUploadHandler, s as sseErrorFrame, l as sseFrame, m as sseMetaFrame, q as sseObservabilityFrame, n as sseTextFrame, r as sseUIFrame } from '../index-C6ehmP0b.js';
|
|
3
|
+
import '../ILLMProvider-BWa68XX5.js';
|
package/dist/handlers/index.js
CHANGED
|
@@ -591,26 +591,54 @@ function cleanApiKeyOverride(apiKeyOverride) {
|
|
|
591
591
|
}
|
|
592
592
|
return key;
|
|
593
593
|
}
|
|
594
|
+
async function resolveUserGatewayConfig(apiKeyOverride) {
|
|
595
|
+
var _a2;
|
|
596
|
+
if (!apiKeyOverride || !process.env.NEXT_PUBLIC_SUPABASE_URL || !process.env.SUPABASE_SERVICE_ROLE_KEY) {
|
|
597
|
+
return {};
|
|
598
|
+
}
|
|
599
|
+
try {
|
|
600
|
+
const { createAdminClient } = await import("@/lib/supabase-server");
|
|
601
|
+
const supabase = createAdminClient();
|
|
602
|
+
const { data: licenseRecord } = await supabase.from("licenses").select("project_id, customer_name, tier").eq("license_key", apiKeyOverride.trim()).single();
|
|
603
|
+
if (!licenseRecord) {
|
|
604
|
+
return {};
|
|
605
|
+
}
|
|
606
|
+
const projectId = licenseRecord.project_id;
|
|
607
|
+
const { data: configs } = await supabase.from("gateway_config").select("project_id, default_model, provider_keys, is_active").in("project_id", [projectId, "global"]).eq("is_active", true);
|
|
608
|
+
if (!configs || configs.length === 0) {
|
|
609
|
+
return {};
|
|
610
|
+
}
|
|
611
|
+
const matchedConfig = configs.find((c) => c.project_id === projectId) || configs.find((c) => c.project_id === "global");
|
|
612
|
+
const customGroqKey = (_a2 = matchedConfig == null ? void 0 : matchedConfig.provider_keys) == null ? void 0 : _a2.groq;
|
|
613
|
+
const targetModel = matchedConfig == null ? void 0 : matchedConfig.default_model;
|
|
614
|
+
return { customGroqKey, targetModel };
|
|
615
|
+
} catch (err) {
|
|
616
|
+
console.warn("[LLM Gateway Router] Error resolving user gateway_config:", err.message);
|
|
617
|
+
return {};
|
|
618
|
+
}
|
|
619
|
+
}
|
|
594
620
|
async function dispatchChatCompletion(req, apiKeyOverride) {
|
|
595
|
-
const
|
|
596
|
-
const
|
|
597
|
-
|
|
621
|
+
const { customGroqKey, targetModel } = await resolveUserGatewayConfig(apiKeyOverride);
|
|
622
|
+
const effectiveKey = customGroqKey || cleanApiKeyOverride(apiKeyOverride);
|
|
623
|
+
const activeModel = req.model || targetModel || "llama-3.1-8b-instant";
|
|
624
|
+
const provider = resolveProvider(activeModel);
|
|
625
|
+
console.log(`[LLM Gateway Router] Dispatching chat request: model=${activeModel}, provider=${provider}, hasCustomKey=${Boolean(customGroqKey)}, hasGlobalGroqKey=${Boolean(process.env.GROQ_API_KEY)}`);
|
|
598
626
|
try {
|
|
599
627
|
switch (provider) {
|
|
600
628
|
case "groq":
|
|
601
|
-
return await handleGroqRequest(req, effectiveKey);
|
|
629
|
+
return await handleGroqRequest(__spreadProps(__spreadValues({}, req), { model: activeModel }), effectiveKey);
|
|
602
630
|
case "openai":
|
|
603
|
-
return await handleOpenAIRequest(req, effectiveKey);
|
|
631
|
+
return await handleOpenAIRequest(__spreadProps(__spreadValues({}, req), { model: activeModel }), effectiveKey);
|
|
604
632
|
case "gemini":
|
|
605
|
-
return await handleGeminiRequest(req, effectiveKey);
|
|
633
|
+
return await handleGeminiRequest(__spreadProps(__spreadValues({}, req), { model: activeModel }), effectiveKey);
|
|
606
634
|
case "anthropic":
|
|
607
|
-
return await handleAnthropicRequest(req, effectiveKey);
|
|
635
|
+
return await handleAnthropicRequest(__spreadProps(__spreadValues({}, req), { model: activeModel }), effectiveKey);
|
|
608
636
|
case "ollama":
|
|
609
|
-
return await handleOllamaRequest(req);
|
|
637
|
+
return await handleOllamaRequest(__spreadProps(__spreadValues({}, req), { model: activeModel }));
|
|
610
638
|
case "huggingface":
|
|
611
|
-
return await handleHuggingFaceChatRequest(req, effectiveKey);
|
|
639
|
+
return await handleHuggingFaceChatRequest(__spreadProps(__spreadValues({}, req), { model: activeModel }), effectiveKey);
|
|
612
640
|
default:
|
|
613
|
-
throw new Error(`Unsupported LLM provider for model: ${
|
|
641
|
+
throw new Error(`Unsupported LLM provider for model: ${activeModel}`);
|
|
614
642
|
}
|
|
615
643
|
} catch (error) {
|
|
616
644
|
console.error(`[LLM Gateway Router] Provider '${provider}' failed for model '${req.model}':`, {
|
|
@@ -3052,7 +3080,7 @@ function readEnum(env, name, fallback, allowed) {
|
|
|
3052
3080
|
throw new Error(`[getRagConfig] ${name} must be one of: ${allowed.join(", ")}`);
|
|
3053
3081
|
}
|
|
3054
3082
|
function getEnvConfig(env = process.env, base) {
|
|
3055
|
-
var _a2, _b, _c, _d, _e, _f, _g2, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb;
|
|
3083
|
+
var _a2, _b, _c, _d, _e, _f, _g2, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib;
|
|
3056
3084
|
const projectId = (_c = (_b = (_a2 = readString(env, "RAG_PROJECT_ID")) != null ? _a2 : readString(env, "NEXT_PUBLIC_PROJECT_ID")) != null ? _b : base == null ? void 0 : base.projectId) != null ? _c : "__default__";
|
|
3057
3085
|
const licenseKey = (_g2 = (_f = (_e = (_d = readString(env, "RAG_LICENSE_KEY")) != null ? _d : readString(env, "RETRIVORA_LICENSE_KEY")) != null ? _e : readString(env, "NEXT_PUBLIC_RETRIVORA_LICENSE_KEY")) != null ? _f : readString(env, "LICENSE_KEY")) != null ? _g2 : base == null ? void 0 : base.licenseKey;
|
|
3058
3086
|
const telemetryEnabled = readString(env, "TELEMETRY_ENABLED") === "true" || readString(env, "NEXT_PUBLIC_TELEMETRY_ENABLED") === "true" || ((_h = base == null ? void 0 : base.telemetry) == null ? void 0 : _h.enabled) || Boolean(licenseKey);
|
|
@@ -3060,38 +3088,38 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3060
3088
|
const embeddingDimensions = readNumber(env, "EMBEDDING_DIMENSIONS", 768);
|
|
3061
3089
|
const vectorDbOptions = {};
|
|
3062
3090
|
if (vectorProvider === "pinecone") {
|
|
3063
|
-
vectorDbOptions.apiKey = (_l = (_k = readString(env, "PINECONE_API_KEY")) != null ? _k : (_j = (_i = base == null ? void 0 : base.vectorDb) == null ? void 0 : _i.options) == null ? void 0 : _j.apiKey) != null ? _l : "";
|
|
3064
|
-
vectorDbOptions.indexName = (
|
|
3091
|
+
vectorDbOptions.apiKey = (_m = (_l = (_k = readString(env, "PINECONE_API_KEY")) != null ? _k : (_j = (_i = base == null ? void 0 : base.vectorDb) == null ? void 0 : _i.options) == null ? void 0 : _j.apiKey) != null ? _l : process.env.PINECONE_API_KEY) != null ? _m : "";
|
|
3092
|
+
vectorDbOptions.indexName = (_t = (_s = (_r = (_o = readString(env, "PINECONE_INDEX")) != null ? _o : (_n = base == null ? void 0 : base.vectorDb) == null ? void 0 : _n.indexName) != null ? _r : (_q = (_p = base == null ? void 0 : base.vectorDb) == null ? void 0 : _p.options) == null ? void 0 : _q.indexName) != null ? _s : process.env.PINECONE_INDEX) != null ? _t : "retrivora-free";
|
|
3065
3093
|
} else if (vectorProvider === "pgvector" || vectorProvider === "postgresql") {
|
|
3066
|
-
vectorDbOptions.connectionString = (
|
|
3067
|
-
vectorDbOptions.tables = (
|
|
3068
|
-
vectorDbOptions.searchFields = (
|
|
3094
|
+
vectorDbOptions.connectionString = (_y = (_x = (_u = readString(env, "PGVECTOR_CONNECTION_STRING")) != null ? _u : readString(env, "POSTGRES_URL")) != null ? _x : (_w = (_v = base == null ? void 0 : base.vectorDb) == null ? void 0 : _v.options) == null ? void 0 : _w.connectionString) != null ? _y : "";
|
|
3095
|
+
vectorDbOptions.tables = (_D = (_A = (_z = readString(env, "VECTOR_DB_TABLES")) != null ? _z : readString(env, "POSTGRES_TABLES")) == null ? void 0 : _A.split(",").map((t) => t.trim())) != null ? _D : (_C = (_B = base == null ? void 0 : base.vectorDb) == null ? void 0 : _B.options) == null ? void 0 : _C.tables;
|
|
3096
|
+
vectorDbOptions.searchFields = (_H = (_E = readString(env, "POSTGRES_SEARCH_FIELDS")) == null ? void 0 : _E.split(",").map((f) => f.trim())) != null ? _H : (_G = (_F = base == null ? void 0 : base.vectorDb) == null ? void 0 : _F.options) == null ? void 0 : _G.searchFields;
|
|
3069
3097
|
vectorDbOptions.dimensions = embeddingDimensions;
|
|
3070
3098
|
} else if (vectorProvider === "mongodb") {
|
|
3071
|
-
vectorDbOptions.uri = (
|
|
3072
|
-
vectorDbOptions.database = (
|
|
3073
|
-
vectorDbOptions.collection = (
|
|
3074
|
-
vectorDbOptions.indexName = (
|
|
3099
|
+
vectorDbOptions.uri = (_L = (_K = readString(env, "MONGODB_URI")) != null ? _K : (_J = (_I = base == null ? void 0 : base.vectorDb) == null ? void 0 : _I.options) == null ? void 0 : _J.uri) != null ? _L : "";
|
|
3100
|
+
vectorDbOptions.database = (_P = (_O = readString(env, "MONGODB_DB")) != null ? _O : (_N = (_M = base == null ? void 0 : base.vectorDb) == null ? void 0 : _M.options) == null ? void 0 : _N.database) != null ? _P : "";
|
|
3101
|
+
vectorDbOptions.collection = (_T = (_S = readString(env, "MONGODB_COLLECTION")) != null ? _S : (_R = (_Q = base == null ? void 0 : base.vectorDb) == null ? void 0 : _Q.options) == null ? void 0 : _R.collection) != null ? _T : "";
|
|
3102
|
+
vectorDbOptions.indexName = (_Z = (_Y = (_V = readString(env, "MONGODB_INDEX_NAME")) != null ? _V : (_U = base == null ? void 0 : base.vectorDb) == null ? void 0 : _U.indexName) != null ? _Y : (_X = (_W = base == null ? void 0 : base.vectorDb) == null ? void 0 : _W.options) == null ? void 0 : _X.indexName) != null ? _Z : "vector_index";
|
|
3075
3103
|
} else if (vectorProvider === "qdrant") {
|
|
3076
|
-
vectorDbOptions.baseUrl = (
|
|
3077
|
-
vectorDbOptions.apiKey = (
|
|
3104
|
+
vectorDbOptions.baseUrl = (_ba = (_aa = readString(env, "QDRANT_URL")) != null ? _aa : (_$ = (__ = base == null ? void 0 : base.vectorDb) == null ? void 0 : __.options) == null ? void 0 : _$.baseUrl) != null ? _ba : "http://localhost:6333";
|
|
3105
|
+
vectorDbOptions.apiKey = (_ea = readString(env, "QDRANT_API_KEY")) != null ? _ea : (_da = (_ca = base == null ? void 0 : base.vectorDb) == null ? void 0 : _ca.options) == null ? void 0 : _da.apiKey;
|
|
3078
3106
|
vectorDbOptions.dimensions = embeddingDimensions;
|
|
3079
3107
|
} else if (vectorProvider === "milvus") {
|
|
3080
|
-
vectorDbOptions.baseUrl = (
|
|
3108
|
+
vectorDbOptions.baseUrl = (_fa = readString(env, "MILVUS_URL")) != null ? _fa : "http://localhost:19530";
|
|
3081
3109
|
vectorDbOptions.apiKey = readString(env, "MILVUS_API_KEY");
|
|
3082
3110
|
} else if (vectorProvider === "chromadb") {
|
|
3083
|
-
vectorDbOptions.baseUrl = (
|
|
3111
|
+
vectorDbOptions.baseUrl = (_ga = readString(env, "CHROMADB_URL")) != null ? _ga : "http://localhost:8000";
|
|
3084
3112
|
} else if (vectorProvider === "weaviate") {
|
|
3085
|
-
vectorDbOptions.baseUrl = (
|
|
3113
|
+
vectorDbOptions.baseUrl = (_ha = readString(env, "WEAVIATE_URL")) != null ? _ha : "http://localhost:8080";
|
|
3086
3114
|
vectorDbOptions.apiKey = readString(env, "WEAVIATE_API_KEY");
|
|
3087
3115
|
} else if (vectorProvider === "redis") {
|
|
3088
|
-
vectorDbOptions.baseUrl = (
|
|
3116
|
+
vectorDbOptions.baseUrl = (_ia = readString(env, "REDIS_URL")) != null ? _ia : "";
|
|
3089
3117
|
vectorDbOptions.apiKey = readString(env, "REDIS_API_KEY");
|
|
3090
3118
|
} else if (vectorProvider === "rest") {
|
|
3091
|
-
vectorDbOptions.baseUrl = (
|
|
3119
|
+
vectorDbOptions.baseUrl = (_ja = readString(env, "VECTOR_DB_REST_URL")) != null ? _ja : "";
|
|
3092
3120
|
vectorDbOptions.headers = readString(env, "VECTOR_DB_REST_API_KEY") ? { "api-key": readString(env, "VECTOR_DB_REST_API_KEY") } : {};
|
|
3093
3121
|
} else if (vectorProvider === "universal_rest") {
|
|
3094
|
-
vectorDbOptions.baseUrl = (
|
|
3122
|
+
vectorDbOptions.baseUrl = (_la = (_ka = readString(env, "VECTOR_BASE_URL")) != null ? _ka : readString(env, "VECTOR_DB_REST_URL")) != null ? _la : "";
|
|
3095
3123
|
vectorDbOptions.profile = readString(env, "VECTOR_UNIVERSAL_PROFILE");
|
|
3096
3124
|
vectorDbOptions.headers = readString(env, "VECTOR_DB_REST_API_KEY") ? { Authorization: `Bearer ${readString(env, "VECTOR_DB_REST_API_KEY")}` } : {};
|
|
3097
3125
|
}
|
|
@@ -3110,8 +3138,8 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3110
3138
|
// Anthropic needs a separate embedding provider; key kept for completeness
|
|
3111
3139
|
gemini: readString(env, "GEMINI_API_KEY"),
|
|
3112
3140
|
ollama: void 0,
|
|
3113
|
-
universal_rest: (
|
|
3114
|
-
custom: (
|
|
3141
|
+
universal_rest: (_ma = readString(env, "EMBEDDING_API_KEY")) != null ? _ma : readString(env, "OPENAI_API_KEY"),
|
|
3142
|
+
custom: (_na = readString(env, "EMBEDDING_API_KEY")) != null ? _na : readString(env, "OPENAI_API_KEY")
|
|
3115
3143
|
};
|
|
3116
3144
|
const DEFAULT_MODEL_BY_PROVIDER = {
|
|
3117
3145
|
openai: "gpt-4o",
|
|
@@ -3132,25 +3160,25 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3132
3160
|
return true;
|
|
3133
3161
|
}
|
|
3134
3162
|
})();
|
|
3135
|
-
const
|
|
3163
|
+
const defaultGatewayUrl = (_pa = (_oa = readString(env, "LITELLM_BASE_URL")) != null ? _oa : readString(env, "LLM_BASE_URL")) != null ? _pa : "https://llm.retrivora.com/api/v1";
|
|
3136
3164
|
const defaultLlmProvider = isFreeTier ? "universal_rest" : "universal_rest";
|
|
3137
|
-
const llmProvider = (
|
|
3138
|
-
const llmBaseUrl = (
|
|
3139
|
-
const llmModel = (
|
|
3140
|
-
const llmApiKey = (
|
|
3141
|
-
const llmProfile = (
|
|
3165
|
+
const llmProvider = (_sa = (_ra = readEnum(env, "LLM_PROVIDER", defaultLlmProvider, LLM_PROVIDERS)) != null ? _ra : (_qa = base == null ? void 0 : base.llm) == null ? void 0 : _qa.provider) != null ? _sa : defaultLlmProvider;
|
|
3166
|
+
const llmBaseUrl = (_wa = (_va = (_ta = readString(env, "LITELLM_BASE_URL")) != null ? _ta : readString(env, "LLM_BASE_URL")) != null ? _va : (_ua = base == null ? void 0 : base.llm) == null ? void 0 : _ua.baseUrl) != null ? _wa : defaultGatewayUrl;
|
|
3167
|
+
const llmModel = (_Aa = (_ya = readString(env, "LLM_MODEL")) != null ? _ya : (_xa = base == null ? void 0 : base.llm) == null ? void 0 : _xa.model) != null ? _Aa : isFreeTier ? "llama-3.1-8b-instant" : (_za = DEFAULT_MODEL_BY_PROVIDER[llmProvider]) != null ? _za : "gpt-4o";
|
|
3168
|
+
const llmApiKey = (_Ga = (_Fa = (_Da = (_Ca = (_Ba = llmApiKeyByProvider[llmProvider]) != null ? _Ba : readString(env, "LLM_API_KEY")) != null ? _Ca : readString(env, "LITELLM_MASTER_KEY")) != null ? _Da : readString(env, "LITELLM_API_KEY")) != null ? _Fa : (_Ea = base == null ? void 0 : base.llm) == null ? void 0 : _Ea.apiKey) != null ? _Ga : licenseKey;
|
|
3169
|
+
const llmProfile = (_Ka = (_Ja = readString(env, "LLM_UNIVERSAL_PROFILE")) != null ? _Ja : (_Ia = (_Ha = base == null ? void 0 : base.llm) == null ? void 0 : _Ha.options) == null ? void 0 : _Ia.profile) != null ? _Ka : "litellm";
|
|
3142
3170
|
const defaultEmbeddingProvider = isFreeTier ? "universal_rest" : "universal_rest";
|
|
3143
|
-
const embeddingProvider = (
|
|
3144
|
-
const embeddingBaseUrl = (
|
|
3145
|
-
const embeddingModel = (
|
|
3146
|
-
const embeddingApiKey = (
|
|
3147
|
-
const embeddingProfile = (
|
|
3171
|
+
const embeddingProvider = (_Na = (_Ma = readEnum(env, "EMBEDDING_PROVIDER", defaultEmbeddingProvider, EMBEDDING_PROVIDERS)) != null ? _Ma : (_La = base == null ? void 0 : base.embedding) == null ? void 0 : _La.provider) != null ? _Na : defaultEmbeddingProvider;
|
|
3172
|
+
const embeddingBaseUrl = (_Sa = (_Ra = (_Pa = (_Oa = readString(env, "LITELLM_BASE_URL")) != null ? _Oa : readString(env, "EMBEDDING_BASE_URL")) != null ? _Pa : readString(env, "LLM_BASE_URL")) != null ? _Ra : (_Qa = base == null ? void 0 : base.embedding) == null ? void 0 : _Qa.baseUrl) != null ? _Sa : defaultGatewayUrl;
|
|
3173
|
+
const embeddingModel = (_Va = (_Ua = readString(env, "EMBEDDING_MODEL")) != null ? _Ua : (_Ta = base == null ? void 0 : base.embedding) == null ? void 0 : _Ta.model) != null ? _Va : "text-embedding-004";
|
|
3174
|
+
const embeddingApiKey = (_ab = (_$a = (_Za = (_Ya = (_Xa = (_Wa = embeddingApiKeyByProvider[embeddingProvider]) != null ? _Wa : readString(env, "EMBEDDING_API_KEY")) != null ? _Xa : readString(env, "LLM_API_KEY")) != null ? _Ya : readString(env, "LITELLM_MASTER_KEY")) != null ? _Za : readString(env, "LITELLM_API_KEY")) != null ? _$a : (__a = base == null ? void 0 : base.embedding) == null ? void 0 : __a.apiKey) != null ? _ab : licenseKey;
|
|
3175
|
+
const embeddingProfile = (_eb = (_db = readString(env, "EMBEDDING_UNIVERSAL_PROFILE")) != null ? _db : (_cb = (_bb = base == null ? void 0 : base.embedding) == null ? void 0 : _bb.options) == null ? void 0 : _cb.profile) != null ? _eb : "litellm";
|
|
3148
3176
|
return __spreadProps(__spreadValues({
|
|
3149
3177
|
projectId,
|
|
3150
3178
|
licenseKey,
|
|
3151
3179
|
vectorDb: {
|
|
3152
3180
|
provider: vectorProvider,
|
|
3153
|
-
indexName: (
|
|
3181
|
+
indexName: (_gb = (_fb = readString(env, "VECTOR_DB_INDEX")) != null ? _fb : vectorDbOptions.indexName) != null ? _gb : "rag-index",
|
|
3154
3182
|
options: vectorDbOptions
|
|
3155
3183
|
},
|
|
3156
3184
|
llm: {
|
|
@@ -3180,30 +3208,30 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3180
3208
|
}
|
|
3181
3209
|
},
|
|
3182
3210
|
ui: {
|
|
3183
|
-
title: (
|
|
3184
|
-
subtitle: (
|
|
3185
|
-
primaryColor: (
|
|
3186
|
-
accentColor: (
|
|
3187
|
-
logoUrl: (
|
|
3188
|
-
placeholder: (
|
|
3189
|
-
showSources: ((
|
|
3190
|
-
welcomeMessage: (
|
|
3191
|
-
visualStyle: (
|
|
3192
|
-
borderRadius: (
|
|
3193
|
-
allowUpload: ((
|
|
3211
|
+
title: (_ib = (_hb = readString(env, "NEXT_PUBLIC_UI_TITLE")) != null ? _hb : readString(env, "UI_TITLE")) != null ? _ib : "AI Assistant",
|
|
3212
|
+
subtitle: (_kb = (_jb = readString(env, "NEXT_PUBLIC_UI_SUBTITLE")) != null ? _jb : readString(env, "UI_SUBTITLE")) != null ? _kb : "Powered by RAG",
|
|
3213
|
+
primaryColor: (_mb = (_lb = readString(env, "NEXT_PUBLIC_PRIMARY_COLOR")) != null ? _lb : readString(env, "UI_PRIMARY_COLOR")) != null ? _mb : "#10b981",
|
|
3214
|
+
accentColor: (_ob = (_nb = readString(env, "NEXT_PUBLIC_ACCENT_COLOR")) != null ? _nb : readString(env, "UI_ACCENT_COLOR")) != null ? _ob : "#3b82f6",
|
|
3215
|
+
logoUrl: (_pb = readString(env, "NEXT_PUBLIC_LOGO_URL")) != null ? _pb : readString(env, "UI_LOGO_URL"),
|
|
3216
|
+
placeholder: (_rb = (_qb = readString(env, "NEXT_PUBLIC_PLACEHOLDER")) != null ? _qb : readString(env, "UI_PLACEHOLDER")) != null ? _rb : "Ask me anything\u2026",
|
|
3217
|
+
showSources: ((_tb = (_sb = readString(env, "NEXT_PUBLIC_SHOW_SOURCES")) != null ? _sb : readString(env, "UI_SHOW_SOURCES")) != null ? _tb : "true") !== "false",
|
|
3218
|
+
welcomeMessage: (_vb = (_ub = readString(env, "NEXT_PUBLIC_WELCOME_MESSAGE")) != null ? _ub : readString(env, "UI_WELCOME_MESSAGE")) != null ? _vb : "Hello! I'm your AI assistant. Ask me anything about your documents.",
|
|
3219
|
+
visualStyle: (_xb = (_wb = readString(env, "NEXT_PUBLIC_UI_VISUAL_STYLE")) != null ? _wb : readString(env, "UI_VISUAL_STYLE")) != null ? _xb : "glass",
|
|
3220
|
+
borderRadius: (_zb = (_yb = readString(env, "NEXT_PUBLIC_UI_BORDER_RADIUS")) != null ? _yb : readString(env, "UI_BORDER_RADIUS")) != null ? _zb : "xl",
|
|
3221
|
+
allowUpload: ((_Bb = (_Ab = readString(env, "NEXT_PUBLIC_ALLOW_UPLOAD")) != null ? _Ab : readString(env, "UI_ALLOW_UPLOAD")) != null ? _Bb : "false") === "true"
|
|
3194
3222
|
},
|
|
3195
3223
|
rag: {
|
|
3196
3224
|
topK: readNumber(env, "RAG_TOP_K", 5),
|
|
3197
3225
|
scoreThreshold: readNumber(env, "RAG_SCORE_THRESHOLD", 0),
|
|
3198
3226
|
chunkSize: readNumber(env, "RAG_CHUNK_SIZE", 1e3),
|
|
3199
3227
|
chunkOverlap: readNumber(env, "RAG_CHUNK_OVERLAP", 200),
|
|
3200
|
-
filterableFields: (
|
|
3228
|
+
filterableFields: (_Cb = readString(env, "RAG_FILTERABLE_FIELDS")) == null ? void 0 : _Cb.split(",").map((f) => f.trim()),
|
|
3201
3229
|
// Query pipeline toggles — read from .env.local
|
|
3202
3230
|
useQueryTransformation: readString(env, "RAG_USE_QUERY_TRANSFORMATION") === "true",
|
|
3203
3231
|
useReranking: readString(env, "RAG_USE_RERANKING") === "true",
|
|
3204
3232
|
useGraphRetrieval: readString(env, "RAG_USE_GRAPH_RETRIEVAL") === "true",
|
|
3205
|
-
architecture: (
|
|
3206
|
-
chunkingStrategy: (
|
|
3233
|
+
architecture: (_Db = readString(env, "RAG_ARCHITECTURE")) != null ? _Db : "simple",
|
|
3234
|
+
chunkingStrategy: (_Eb = readString(env, "RAG_CHUNKING_STRATEGY")) != null ? _Eb : "recursive",
|
|
3207
3235
|
uiMapping: (() => {
|
|
3208
3236
|
const raw = readString(env, "RAG_UI_MAPPING");
|
|
3209
3237
|
if (!raw) return void 0;
|
|
@@ -3216,7 +3244,7 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3216
3244
|
},
|
|
3217
3245
|
telemetry: {
|
|
3218
3246
|
enabled: telemetryEnabled,
|
|
3219
|
-
url: (
|
|
3247
|
+
url: (_Ib = (_Hb = (_Fb = readString(env, "TELEMETRY_URL")) != null ? _Fb : readString(env, "NEXT_PUBLIC_TELEMETRY_URL")) != null ? _Hb : (_Gb = base == null ? void 0 : base.telemetry) == null ? void 0 : _Gb.url) != null ? _Ib : process.env.NODE_ENV === "development" ? "http://localhost:3001/api/telemetry" : "https://retrivora.com/api/telemetry"
|
|
3220
3248
|
}
|
|
3221
3249
|
}, readString(env, "GRAPH_DB_PROVIDER") ? {
|
|
3222
3250
|
graphDb: {
|
|
@@ -5216,6 +5244,147 @@ var ConfigValidator = class {
|
|
|
5216
5244
|
}
|
|
5217
5245
|
};
|
|
5218
5246
|
|
|
5247
|
+
// package.json
|
|
5248
|
+
var package_default = {
|
|
5249
|
+
name: "@retrivora-ai/rag-engine",
|
|
5250
|
+
version: "2.1.4",
|
|
5251
|
+
description: "Retrivora AI is a plug-and-play AI engine for RAG chat experiences \u2014 generic vector DB + LLM provider, embeddable or standalone.",
|
|
5252
|
+
author: "Abhinav Alkuchi",
|
|
5253
|
+
license: "UNLICENSED",
|
|
5254
|
+
keywords: [
|
|
5255
|
+
"rag",
|
|
5256
|
+
"retrieval-augmented-generation",
|
|
5257
|
+
"chatbot",
|
|
5258
|
+
"vector-database",
|
|
5259
|
+
"pinecone",
|
|
5260
|
+
"pgvector",
|
|
5261
|
+
"postgresql",
|
|
5262
|
+
"milvus",
|
|
5263
|
+
"qdrant",
|
|
5264
|
+
"chromadb",
|
|
5265
|
+
"redis",
|
|
5266
|
+
"weaviate",
|
|
5267
|
+
"mongodb",
|
|
5268
|
+
"openai",
|
|
5269
|
+
"anthropic",
|
|
5270
|
+
"ollama",
|
|
5271
|
+
"nextjs",
|
|
5272
|
+
"react",
|
|
5273
|
+
"ai",
|
|
5274
|
+
"llm",
|
|
5275
|
+
"embeddings"
|
|
5276
|
+
],
|
|
5277
|
+
main: "dist/index.js",
|
|
5278
|
+
module: "dist/index.mjs",
|
|
5279
|
+
types: "dist/index.d.ts",
|
|
5280
|
+
exports: {
|
|
5281
|
+
".": {
|
|
5282
|
+
types: "./dist/index.d.ts",
|
|
5283
|
+
require: "./dist/index.js",
|
|
5284
|
+
import: "./dist/index.mjs"
|
|
5285
|
+
},
|
|
5286
|
+
"./style.css": "./dist/index.css",
|
|
5287
|
+
"./handlers": {
|
|
5288
|
+
types: "./dist/handlers/index.d.ts",
|
|
5289
|
+
require: "./dist/handlers/index.js",
|
|
5290
|
+
import: "./dist/handlers/index.mjs"
|
|
5291
|
+
},
|
|
5292
|
+
"./server": {
|
|
5293
|
+
types: "./dist/server.d.ts",
|
|
5294
|
+
require: "./dist/server.js",
|
|
5295
|
+
import: "./dist/server.mjs"
|
|
5296
|
+
}
|
|
5297
|
+
},
|
|
5298
|
+
browser: {
|
|
5299
|
+
child_process: false,
|
|
5300
|
+
fs: false,
|
|
5301
|
+
net: false,
|
|
5302
|
+
tls: false,
|
|
5303
|
+
crypto: false,
|
|
5304
|
+
os: false,
|
|
5305
|
+
path: false,
|
|
5306
|
+
stream: false,
|
|
5307
|
+
http: false,
|
|
5308
|
+
https: false,
|
|
5309
|
+
zlib: false,
|
|
5310
|
+
mongodb: false,
|
|
5311
|
+
pg: false,
|
|
5312
|
+
"pdf-parse": false,
|
|
5313
|
+
mammoth: false
|
|
5314
|
+
},
|
|
5315
|
+
files: [
|
|
5316
|
+
"dist",
|
|
5317
|
+
"src",
|
|
5318
|
+
".env.example",
|
|
5319
|
+
"README.md",
|
|
5320
|
+
"FREE_TIER_ARCHITECTURE.md"
|
|
5321
|
+
],
|
|
5322
|
+
scripts: {
|
|
5323
|
+
dev: "npx @tailwindcss/cli -i src/tailwind.css -o src/index.css && tsup src/index.ts src/handlers/index.ts src/server.ts --format cjs,esm --watch --tsconfig tsconfig.build.json --external react,react-dom,next,mongodb,pg,openai,@anthropic-ai/sdk,@pinecone-database/pinecone,axios,lucide-react,mammoth,pdf-parse,xlsx,react-markdown,remark-gfm,next-themes,langchain,@langchain/core,@langchain/openai,llamaindex --inject-style",
|
|
5324
|
+
build: "npm run build:pkg",
|
|
5325
|
+
"build:pkg": "npx @tailwindcss/cli -i src/tailwind.css -o src/index.css && tsup src/index.ts src/handlers/index.ts src/server.ts --format cjs,esm --dts --clean --no-splitting --tsconfig tsconfig.build.json --external react,react-dom,next,mongodb,pg,openai,@anthropic-ai/sdk,@pinecone-database/pinecone,axios,lucide-react,mammoth,pdf-parse,xlsx,react-markdown,remark-gfm,next-themes,langchain,@langchain/core,@langchain/openai,llamaindex --inject-style && npx @tailwindcss/cli -i src/tailwind.css -o dist/index.css",
|
|
5326
|
+
lint: "eslint",
|
|
5327
|
+
clean: "rm -rf dist"
|
|
5328
|
+
},
|
|
5329
|
+
peerDependencies: {
|
|
5330
|
+
next: ">=15.0.0",
|
|
5331
|
+
react: ">=18.0.0",
|
|
5332
|
+
"react-dom": ">=18.0.0"
|
|
5333
|
+
},
|
|
5334
|
+
peerDependenciesMeta: {
|
|
5335
|
+
next: {
|
|
5336
|
+
optional: true
|
|
5337
|
+
}
|
|
5338
|
+
},
|
|
5339
|
+
dependencies: {
|
|
5340
|
+
"@anthropic-ai/sdk": "^0.95.1",
|
|
5341
|
+
"@google/genai": "^0.8.0",
|
|
5342
|
+
"@google/generative-ai": "^0.24.1",
|
|
5343
|
+
"@pinecone-database/pinecone": "^7.2.0",
|
|
5344
|
+
"@types/papaparse": "^5.5.2",
|
|
5345
|
+
axios: "^1.15.0",
|
|
5346
|
+
"lucide-react": "^1.8.0",
|
|
5347
|
+
"next-themes": "^0.4.6",
|
|
5348
|
+
openai: "^6.34.0",
|
|
5349
|
+
papaparse: "^5.5.3",
|
|
5350
|
+
"react-is": "^18.3.1",
|
|
5351
|
+
"react-markdown": "^10.1.0",
|
|
5352
|
+
recharts: "^3.8.1",
|
|
5353
|
+
"remark-gfm": "^4.0.1",
|
|
5354
|
+
xlsx: "^0.18.5"
|
|
5355
|
+
},
|
|
5356
|
+
optionalDependencies: {
|
|
5357
|
+
"@langchain/core": "^1.1.42",
|
|
5358
|
+
"@langchain/openai": "^1.4.5",
|
|
5359
|
+
langchain: "^1.3.5",
|
|
5360
|
+
llamaindex: "^0.11.9",
|
|
5361
|
+
mammoth: "^1.8.0",
|
|
5362
|
+
mongodb: "^7.1.1",
|
|
5363
|
+
"pdf-parse": "^1.1.1",
|
|
5364
|
+
pg: "^8.20.0"
|
|
5365
|
+
},
|
|
5366
|
+
devDependencies: {
|
|
5367
|
+
"@tailwindcss/cli": "^4",
|
|
5368
|
+
"@tailwindcss/postcss": "^4",
|
|
5369
|
+
"@types/estree": "^1.0.9",
|
|
5370
|
+
"@types/node": "^20",
|
|
5371
|
+
"@types/pdf-parse": "^1.1.5",
|
|
5372
|
+
"@types/pg": "^8.20.0",
|
|
5373
|
+
"@types/react": "^19.2.14",
|
|
5374
|
+
"@types/react-dom": "^19.2.3",
|
|
5375
|
+
dotenv: "^17.4.2",
|
|
5376
|
+
eslint: "^9",
|
|
5377
|
+
"eslint-config-next": "16.2.4",
|
|
5378
|
+
next: "16.2.10",
|
|
5379
|
+
tailwindcss: "^4",
|
|
5380
|
+
tsup: "^8.5.1",
|
|
5381
|
+
typescript: "^5"
|
|
5382
|
+
}
|
|
5383
|
+
};
|
|
5384
|
+
|
|
5385
|
+
// src/version.ts
|
|
5386
|
+
var SDK_VERSION = package_default.version || "2.1.3";
|
|
5387
|
+
|
|
5219
5388
|
// src/rag/DocumentChunker.ts
|
|
5220
5389
|
var DocumentChunker = class {
|
|
5221
5390
|
constructor(chunkSize = 1e3, chunkOverlap = 200, separators = ["\n# ", "\n## ", "\n### ", "\n#### ", "\n\n", "\n", " ", ""]) {
|
|
@@ -9485,6 +9654,7 @@ ${context}`;
|
|
|
9485
9654
|
const telemetryUrl = ((_B = this.config.telemetry) == null ? void 0 : _B.url) || process.env.TELEMETRY_URL || process.env.NEXT_PUBLIC_TELEMETRY_URL || defaultUrl;
|
|
9486
9655
|
const absoluteUrl = telemetryUrl.startsWith("http") ? telemetryUrl : (process.env.NEXT_PUBLIC_APP_URL || `http://localhost:${process.env.PORT || 3e3}`) + telemetryUrl;
|
|
9487
9656
|
(async () => {
|
|
9657
|
+
var _a3, _b2, _c2, _d2, _e2;
|
|
9488
9658
|
try {
|
|
9489
9659
|
let finalTrace = trace;
|
|
9490
9660
|
if (!awaitHallucination && runHallucination) {
|
|
@@ -9493,6 +9663,12 @@ ${context}`;
|
|
|
9493
9663
|
finalTrace = buildTrace(backgroundScoreResult);
|
|
9494
9664
|
}
|
|
9495
9665
|
}
|
|
9666
|
+
const modelName = (finalTrace == null ? void 0 : finalTrace.model) || ((_a3 = this.config.llm) == null ? void 0 : _a3.model) || "llama-3.1-8b-instant";
|
|
9667
|
+
const providerName = (finalTrace == null ? void 0 : finalTrace.provider) || ((_b2 = this.config.llm) == null ? void 0 : _b2.provider) || "groq";
|
|
9668
|
+
const tokenCount = Number(((_c2 = finalTrace == null ? void 0 : finalTrace.tokens) == null ? void 0 : _c2.totalTokens) || 0);
|
|
9669
|
+
const costEst = Number(((_d2 = finalTrace == null ? void 0 : finalTrace.tokens) == null ? void 0 : _d2.estimatedCostUsd) || 0);
|
|
9670
|
+
const latencyDuration = Number(((_e2 = finalTrace == null ? void 0 : finalTrace.latency) == null ? void 0 : _e2.totalMs) || 0);
|
|
9671
|
+
console.log(`[Retrivora Pipeline Telemetry] \u{1F4CA} Dispatching RAG telemetry -> Project: "${ns}", Model: "${providerName}/${modelName}", Tokens: ${tokenCount}, Latency: ${latencyDuration}ms`);
|
|
9496
9672
|
await fetch(absoluteUrl, {
|
|
9497
9673
|
method: "POST",
|
|
9498
9674
|
headers: {
|
|
@@ -9501,7 +9677,20 @@ ${context}`;
|
|
|
9501
9677
|
body: JSON.stringify({
|
|
9502
9678
|
trace: finalTrace,
|
|
9503
9679
|
licenseKey: this.config.licenseKey,
|
|
9504
|
-
projectId: ns
|
|
9680
|
+
projectId: ns,
|
|
9681
|
+
organization: process.env.RETRIVORA_ORGANIZATION || "default-org",
|
|
9682
|
+
sdkVersion: SDK_VERSION,
|
|
9683
|
+
model: modelName,
|
|
9684
|
+
provider: providerName,
|
|
9685
|
+
tokens: tokenCount,
|
|
9686
|
+
cost: costEst,
|
|
9687
|
+
costUsd: costEst,
|
|
9688
|
+
latencyMs: latencyDuration,
|
|
9689
|
+
status: "success",
|
|
9690
|
+
action: "RAG_QUERY",
|
|
9691
|
+
feature: "RAG",
|
|
9692
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
9693
|
+
details: `Org: default-org | Model: ${providerName}/${modelName} | Tokens: ${tokenCount} | Latency: ${latencyDuration}ms | Cost: $${costEst} | SDK: v${SDK_VERSION} | Feature: RAG`
|
|
9505
9694
|
})
|
|
9506
9695
|
});
|
|
9507
9696
|
} catch (err) {
|
|
@@ -10598,7 +10787,7 @@ function getOrCreatePlugin(configOrPlugin) {
|
|
|
10598
10787
|
return _g[cacheKey];
|
|
10599
10788
|
}
|
|
10600
10789
|
function reportTelemetry(req, plugin, action, status, details, trace) {
|
|
10601
|
-
var _a2;
|
|
10790
|
+
var _a2, _b, _c, _d, _e, _f, _g2, _h;
|
|
10602
10791
|
try {
|
|
10603
10792
|
const config = plugin.getConfig();
|
|
10604
10793
|
const licenseKey = config.licenseKey || process.env.RAG_LICENSE_KEY || process.env.RETRIVORA_LICENSE_KEY || process.env.NEXT_PUBLIC_RETRIVORA_LICENSE_KEY;
|
|
@@ -10607,29 +10796,49 @@ function reportTelemetry(req, plugin, action, status, details, trace) {
|
|
|
10607
10796
|
const defaultUrl = process.env.NODE_ENV === "development" && !process.env.TELEMETRY_URL && !process.env.NEXT_PUBLIC_TELEMETRY_URL ? "http://localhost:3001/api/telemetry" : "https://retrivora.com/api/telemetry";
|
|
10608
10797
|
const telemetryUrl = (telemetryConfig == null ? void 0 : telemetryConfig.url) || process.env.TELEMETRY_URL || process.env.NEXT_PUBLIC_TELEMETRY_URL || defaultUrl;
|
|
10609
10798
|
const host = req.headers.get("host") || "localhost";
|
|
10799
|
+
const userAgent = req.headers.get("user-agent") || `Retrivora-SDK/${SDK_VERSION}`;
|
|
10610
10800
|
let absoluteUrl = telemetryUrl;
|
|
10611
10801
|
if (!telemetryUrl.startsWith("http")) {
|
|
10612
10802
|
const proto = req.headers.get("x-forwarded-proto") || "http";
|
|
10613
10803
|
absoluteUrl = `${proto}://${host}${telemetryUrl}`;
|
|
10614
10804
|
}
|
|
10615
10805
|
const projectId = config.projectId || "default";
|
|
10806
|
+
const model = (trace == null ? void 0 : trace.model) || ((_b = config.llm) == null ? void 0 : _b.model) || ((_c = config.embedding) == null ? void 0 : _c.model) || "llama-3.1-8b-instant";
|
|
10807
|
+
const provider = (trace == null ? void 0 : trace.provider) || ((_d = config.llm) == null ? void 0 : _d.provider) || ((_e = config.embedding) == null ? void 0 : _e.provider) || "groq";
|
|
10808
|
+
const tokens = Number(((_f = trace == null ? void 0 : trace.tokens) == null ? void 0 : _f.totalTokens) || (trace == null ? void 0 : trace.totalTokens) || 0);
|
|
10809
|
+
const costUsd = Number(((_g2 = trace == null ? void 0 : trace.tokens) == null ? void 0 : _g2.estimatedCostUsd) || (trace == null ? void 0 : trace.costUsd) || 0);
|
|
10810
|
+
const latencyMs = Number(((_h = trace == null ? void 0 : trace.latency) == null ? void 0 : _h.totalMs) || (trace == null ? void 0 : trace.latencyMs) || 0);
|
|
10811
|
+
const payload = {
|
|
10812
|
+
trace,
|
|
10813
|
+
licenseKey,
|
|
10814
|
+
projectId,
|
|
10815
|
+
organization: process.env.RETRIVORA_ORGANIZATION || "default-org",
|
|
10816
|
+
sdkVersion: SDK_VERSION,
|
|
10817
|
+
model,
|
|
10818
|
+
provider,
|
|
10819
|
+
tokens,
|
|
10820
|
+
cost: costUsd,
|
|
10821
|
+
costUsd,
|
|
10822
|
+
latencyMs,
|
|
10823
|
+
status,
|
|
10824
|
+
action,
|
|
10825
|
+
feature: action,
|
|
10826
|
+
userAgent,
|
|
10827
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
10828
|
+
details
|
|
10829
|
+
};
|
|
10830
|
+
console.log(`[Retrivora SDK Telemetry] \u{1F4CA} Dispatching telemetry -> Feature: "${action}", Status: "${status}", Project: "${projectId}", Model: "${provider}/${model}", Latency: ${latencyMs}ms`);
|
|
10616
10831
|
fetch(absoluteUrl, {
|
|
10617
10832
|
method: "POST",
|
|
10618
10833
|
headers: {
|
|
10619
10834
|
"Content-Type": "application/json",
|
|
10620
10835
|
"x-forwarded-for": req.headers.get("x-forwarded-for") || "",
|
|
10621
|
-
"x-real-ip": req.headers.get("x-real-ip") || ""
|
|
10836
|
+
"x-real-ip": req.headers.get("x-real-ip") || "",
|
|
10837
|
+
"user-agent": userAgent
|
|
10622
10838
|
},
|
|
10623
|
-
body: JSON.stringify(
|
|
10624
|
-
trace,
|
|
10625
|
-
licenseKey,
|
|
10626
|
-
projectId,
|
|
10627
|
-
action,
|
|
10628
|
-
status,
|
|
10629
|
-
details
|
|
10630
|
-
})
|
|
10839
|
+
body: JSON.stringify(payload)
|
|
10631
10840
|
}).catch((err) => {
|
|
10632
|
-
console.warn("[Retrivora Telemetry] Async report warning:", err.message);
|
|
10841
|
+
console.warn("[Retrivora SDK Telemetry] Async report warning:", err.message);
|
|
10633
10842
|
});
|
|
10634
10843
|
} catch (e) {
|
|
10635
10844
|
}
|