UNPKG

@mastra/core

Version:
48 lines (44 loc) 1.79 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_trip_wire = require("../trip-wire-dxd_uCHj.cjs"); const require_agent = require("../agent-DCD4MApC.cjs"); //#region src/relevance/relevance-score-provider.ts function createSimilarityPrompt(query, text) { return `Rate the semantic similarity between the following the query and the text on a scale from 0 to 1 (decimals allowed), where 1 means exactly the same meaning and 0 means completely different: Query: ${query} Text: ${text} Relevance score (0-1):`; } //#endregion //#region src/relevance/mastra-agent/index.ts var MastraAgentRelevanceScorer = class { agent; constructor(name, model) { this.agent = new require_agent.Agent({ id: `relevance-scorer-${name}`, name: `Relevance Scorer ${name}`, instructions: `You are a specialized agent for evaluating the relevance of text to queries. Your task is to rate how well a text passage answers a given query. Output only a number between 0 and 1, where: 1.0 = Perfectly relevant, directly answers the query 0.0 = Completely irrelevant Consider: - Direct relevance to the question - Completeness of information - Quality and specificity Always return just the number, no explanation.`, model }); } async getRelevanceScore(query, text) { const prompt = createSimilarityPrompt(query, text); const model = await this.agent.getModel(); let response; if (require_trip_wire.isSupportedLanguageModel(model)) response = (await this.agent.generate(prompt)).text; else response = (await this.agent.generateLegacy(prompt)).text; return parseFloat(response); } }; //#endregion exports.MastraAgentRelevanceScorer = MastraAgentRelevanceScorer; exports.createSimilarityPrompt = createSimilarityPrompt; //# sourceMappingURL=index.cjs.map