11import * as traceloop from '@traceloop/node-server-sdk' ;
2+ import { CanonicalEvaluationStrategy } from './frameworks/canonical' ;
23import { ClaudeCanonicalEvaluationStrategy } from './frameworks/claude/claude-converter' ;
34import { GeminiAICanonicalEvaluationStrategy } from './frameworks/gemini/gemini-converter' ;
45import { OpenAICanonicalEvaluationStrategy } from './frameworks/openai/openai-converter' ;
56import { VercelAICanonicalEvaluationStrategy } from './frameworks/vercelai/vercelai-converter' ;
67import { EvaluationProxyAPIRequest , EvaluationProxyAPIRequestSchema , EvaluationRequestV2Schema , type EvaluationRequestV2 , type EvaluationResponse , type Framework } from './types' ;
7- import { CanonicalEvaluationStrategy } from './frameworks/canonical' ;
88
99export type {
10- EvaluationRequestV2 ,
11- EvaluationProxyAPIRequest ,
12- EvaluationResponse , Framework , LLMMessage
10+ EvaluationProxyAPIRequest , EvaluationRequestV2 , EvaluationResponse , Framework , LLMMessage , ModelMode , PolicyTarget
1311} from './types' ;
1412
1513
@@ -102,15 +100,12 @@ export class Qualifire {
102100 * framework: 'openai',
103101 * request: openaiRequest, // As given to openaiClient.chat.completions.create(), openaiClient.responses.create()
104102 * response: openaiResponse, // Response as returned by openaiClient.chat.completions.create() or openaiClient.responses.create()
105- * dangerousContentCheck : true,
103+ * contentModerationCheck : true,
106104 * groundingCheck: true,
107105 * hallucinationsCheck: true,
108- * harassmentCheck: true,
109- * hateSpeechCheck: true,
110106 * instructionsFollowingCheck: true,
111107 * piiCheck: true,
112108 * promptInjections: true,
113- * sexualContentCheck: true,
114109 * toolSelectionQualityCheck: false,
115110 * });
116111 *
@@ -158,7 +153,7 @@ export class Qualifire {
158153 * { role: 'user', content: 'What is the capital of France?' },
159154 * { role: 'assistant', content: 'Paris' }
160155 * ],
161- * dangerousContentCheck : true,
156+ * contentModerationCheck : true,
162157 * hallucinationsCheck: true,
163158 * });
164159 * ```
@@ -202,21 +197,29 @@ export class Qualifire {
202197 * Evaluates using direct messages without conversion (overrides request/response if both are provided)
203198 */
204199 private evaluateWithBackwardCompatibility = async ( evaluationProxyAPIRequest : EvaluationProxyAPIRequest ) : Promise < EvaluationResponse | undefined > => {
200+ // Compute contentModerationCheck from deprecated fields or use the new field
201+ const contentModerationCheck = evaluationProxyAPIRequest . contentModerationCheck ||
202+ evaluationProxyAPIRequest . dangerous_content_check ||
203+ evaluationProxyAPIRequest . dangerousContentCheck ||
204+ evaluationProxyAPIRequest . harassment_check ||
205+ evaluationProxyAPIRequest . harassmentCheck ||
206+ evaluationProxyAPIRequest . hate_speech_check ||
207+ evaluationProxyAPIRequest . hateSpeechCheck ||
208+ evaluationProxyAPIRequest . sexual_content_check ||
209+ evaluationProxyAPIRequest . sexualContentCheck ;
210+
205211 const url = `${ this . baseUrl } /api/evaluation/evaluate` ;
206212 const body = {
207213 input : evaluationProxyAPIRequest . input ,
208214 output : evaluationProxyAPIRequest . output ,
209215 messages : evaluationProxyAPIRequest . messages ,
210216 available_tools : evaluationProxyAPIRequest . available_tools ,
211- dangerous_content_check : evaluationProxyAPIRequest . dangerous_content_check || evaluationProxyAPIRequest . dangerousContentCheck ,
217+ content_moderation_check : contentModerationCheck ,
212218 grounding_check : evaluationProxyAPIRequest . grounding_check || evaluationProxyAPIRequest . groundingCheck ,
213219 hallucinations_check : evaluationProxyAPIRequest . hallucinations_check || evaluationProxyAPIRequest . hallucinationsCheck ,
214- harassment_check : evaluationProxyAPIRequest . harassment_check || evaluationProxyAPIRequest . harassmentCheck ,
215- hate_speech_check : evaluationProxyAPIRequest . hate_speech_check || evaluationProxyAPIRequest . hateSpeechCheck ,
216220 instructions_following_check : evaluationProxyAPIRequest . instructions_following_check || evaluationProxyAPIRequest . instructionsFollowingCheck ,
217221 pii_check : evaluationProxyAPIRequest . pii_check || evaluationProxyAPIRequest . piiCheck ,
218222 prompt_injections : evaluationProxyAPIRequest . prompt_injections || evaluationProxyAPIRequest . promptInjections ,
219- sexual_content_check : evaluationProxyAPIRequest . sexual_content_check || evaluationProxyAPIRequest . sexualContentCheck ,
220223 syntax_checks : evaluationProxyAPIRequest . syntax_checks || evaluationProxyAPIRequest . syntaxChecks ,
221224 tool_selection_quality_check : evaluationProxyAPIRequest . tool_selection_quality_check || evaluationProxyAPIRequest . toolSelectionQualityCheck ,
222225 assertions : evaluationProxyAPIRequest . assertions ,
@@ -245,6 +248,13 @@ export class Qualifire {
245248 * Evaluates using framework converters for request/response
246249 */
247250 private evaluateWithConverters = async ( EvaluationRequestV2 : EvaluationRequestV2 ) : Promise < EvaluationResponse | undefined > => {
251+ // Compute contentModerationCheck from deprecated fields or use the new field
252+ const contentModerationCheck = EvaluationRequestV2 . contentModerationCheck ||
253+ EvaluationRequestV2 . dangerousContentCheck ||
254+ EvaluationRequestV2 . harassmentCheck ||
255+ EvaluationRequestV2 . hateSpeechCheck ||
256+ EvaluationRequestV2 . sexualContentCheck ;
257+
248258 const frameworkConverters : Record < Framework , ( ) => CanonicalEvaluationStrategy < any , any > > = {
249259 'openai' : ( ) => new OpenAICanonicalEvaluationStrategy ( ) ,
250260 'vercelai' : ( ) => new VercelAICanonicalEvaluationStrategy ( ) ,
@@ -268,15 +278,12 @@ export class Qualifire {
268278 const body = {
269279 messages : evaluationRequest . messages ,
270280 available_tools : evaluationRequest . available_tools ,
271- dangerous_content_check : EvaluationRequestV2 . dangerousContentCheck ,
281+ content_moderation_check : contentModerationCheck ,
272282 grounding_check : EvaluationRequestV2 . groundingCheck ,
273283 hallucinations_check : EvaluationRequestV2 . hallucinationsCheck ,
274- harassment_check : EvaluationRequestV2 . harassmentCheck ,
275- hate_speech_check : EvaluationRequestV2 . hateSpeechCheck ,
276284 instructions_following_check : EvaluationRequestV2 . instructionsFollowingCheck ,
277285 pii_check : EvaluationRequestV2 . piiCheck ,
278286 prompt_injections : EvaluationRequestV2 . promptInjections ,
279- sexual_content_check : EvaluationRequestV2 . sexualContentCheck ,
280287 syntax_checks : EvaluationRequestV2 . syntaxChecks ,
281288 tool_selection_quality_check : EvaluationRequestV2 . toolSelectionQualityCheck ,
282289 assertions : EvaluationRequestV2 . assertions ,
0 commit comments