mirror of
https://github.com/Mintplex-Labs/vector-admin.git
synced 2026-07-20 05:34:24 -04:00
194 lines
4.7 KiB
JavaScript
194 lines
4.7 KiB
JavaScript
const { RagTest } = require('../../../../backend/models/ragTest');
|
|
const { InngestClient } = require('../../../utils/inngest');
|
|
|
|
const runHourlyRagTest = InngestClient.createFunction(
|
|
{
|
|
id: 'rag-testing-hourly-cron',
|
|
name: 'RAG Test for Workspace - Hourly Cron',
|
|
},
|
|
{ cron: 'TZ=America/Los_Angeles * * * * *' },
|
|
async () => {
|
|
try {
|
|
console.log(`\n\x1b[33m[CRON: Running hourly RAG Test Cron]\x1b[0m`);
|
|
const eligibleTests = await RagTest.where(
|
|
{
|
|
enabled: true,
|
|
frequencyType: RagTest.schedules.hourly,
|
|
},
|
|
null,
|
|
null,
|
|
{
|
|
id: true,
|
|
enabled: true,
|
|
organization: true,
|
|
}
|
|
);
|
|
if (eligibleTests.length === 0) return;
|
|
|
|
console.log(
|
|
`\x1b[34m[INFO]\x1b[0m ${eligibleTests.length} eligible tests to run. Fanning out workers.`
|
|
);
|
|
eligibleTests.forEach(async (test) => {
|
|
await InngestClient.send({
|
|
name: 'rag-test/run',
|
|
data: {
|
|
jobId: null, // not associated with a job.
|
|
organization: test.organization,
|
|
testId: test.id,
|
|
},
|
|
});
|
|
});
|
|
|
|
return;
|
|
} catch (e) {
|
|
console.error(e.message);
|
|
return;
|
|
}
|
|
}
|
|
);
|
|
|
|
const runDailyRagTest = InngestClient.createFunction(
|
|
{
|
|
id: 'rag-testing-daily-cron',
|
|
name: 'RAG Test for Workspace - Daily Cron',
|
|
},
|
|
{ cron: 'TZ=America/Los_Angeles 0 18 * * *' },
|
|
async () => {
|
|
try {
|
|
console.log(`\n\x1b[33m[CRON: Running daily RAG Test Cron]\x1b[0m`);
|
|
const eligibleTests = await RagTest.where(
|
|
{
|
|
enabled: true,
|
|
frequencyType: RagTest.schedules.daily,
|
|
},
|
|
null,
|
|
null,
|
|
{
|
|
id: true,
|
|
enabled: true,
|
|
organization: true,
|
|
}
|
|
);
|
|
if (eligibleTests.length === 0) return;
|
|
|
|
console.log(
|
|
`\x1b[34m[INFO]\x1b[0m ${eligibleTests.length} eligible tests to run. Fanning out workers.`
|
|
);
|
|
eligibleTests.forEach(async (test) => {
|
|
await InngestClient.send({
|
|
name: 'rag-test/run',
|
|
data: {
|
|
jobId: null, // not associated with a job.
|
|
organization: test.organization,
|
|
testId: test.id,
|
|
},
|
|
});
|
|
});
|
|
|
|
return;
|
|
} catch (e) {
|
|
console.error(e.message);
|
|
return;
|
|
}
|
|
}
|
|
);
|
|
|
|
const runWeeklyRagTest = InngestClient.createFunction(
|
|
{
|
|
id: 'rag-testing-weekly-cron',
|
|
name: 'RAG Test for Workspace - Weekly Cron',
|
|
},
|
|
{ cron: 'TZ=America/Los_Angeles 0 18 * * WED' },
|
|
async () => {
|
|
try {
|
|
console.log(`\n\x1b[33m[CRON: Running weekly RAG Test Cron]\x1b[0m`);
|
|
const eligibleTests = await RagTest.where(
|
|
{
|
|
enabled: true,
|
|
frequencyType: RagTest.schedules.weekly,
|
|
},
|
|
null,
|
|
null,
|
|
{
|
|
id: true,
|
|
enabled: true,
|
|
organization: true,
|
|
}
|
|
);
|
|
if (eligibleTests.length === 0) return;
|
|
|
|
console.log(
|
|
`\x1b[34m[INFO]\x1b[0m ${eligibleTests.length} eligible tests to run. Fanning out workers.`
|
|
);
|
|
eligibleTests.forEach(async (test) => {
|
|
await InngestClient.send({
|
|
name: 'rag-test/run',
|
|
data: {
|
|
jobId: null, // not associated with a job.
|
|
organization: test.organization,
|
|
testId: test.id,
|
|
},
|
|
});
|
|
});
|
|
|
|
return;
|
|
} catch (e) {
|
|
console.error(e.message);
|
|
return;
|
|
}
|
|
}
|
|
);
|
|
|
|
const runMonthlyRagTest = InngestClient.createFunction(
|
|
{
|
|
id: 'rag-testing-monthly-cron',
|
|
name: 'RAG Test for Workspace - Monthly Cron',
|
|
},
|
|
{ cron: 'TZ=America/Los_Angeles 0 18 15 * *' },
|
|
async () => {
|
|
try {
|
|
console.log(`\n\x1b[33m[CRON: Running monthly RAG Test Cron]\x1b[0m`);
|
|
const eligibleTests = await RagTest.where(
|
|
{
|
|
enabled: true,
|
|
frequencyType: RagTest.schedules.monthly,
|
|
},
|
|
null,
|
|
null,
|
|
{
|
|
id: true,
|
|
enabled: true,
|
|
organization: true,
|
|
}
|
|
);
|
|
if (eligibleTests.length === 0) return;
|
|
|
|
console.log(
|
|
`\x1b[34m[INFO]\x1b[0m ${eligibleTests.length} eligible tests to run. Fanning out workers.`
|
|
);
|
|
eligibleTests.forEach(async (test) => {
|
|
await InngestClient.send({
|
|
name: 'rag-test/run',
|
|
data: {
|
|
jobId: null, // not associated with a job.
|
|
organization: test.organization,
|
|
testId: test.id,
|
|
},
|
|
});
|
|
});
|
|
|
|
return;
|
|
} catch (e) {
|
|
console.error(e.message);
|
|
return;
|
|
}
|
|
}
|
|
);
|
|
|
|
module.exports = {
|
|
runHourlyRagTest,
|
|
runDailyRagTest,
|
|
runWeeklyRagTest,
|
|
runMonthlyRagTest,
|
|
};
|