This commit is contained in:
NAME
2026-05-15 07:08:56 +00:00
parent 5f16ed135d
commit 7730c76e08
20 changed files with 945 additions and 316 deletions
@@ -1,8 +1,9 @@
// services/provider-router.service.ts
import { Injectable } from '@nestjs/common';
import { ContentStyle } from '../enum/style.enum';
import { ProviderName } from '../providers/ai-provider.factory';
import {Injectable} from '@nestjs/common';
import {ContentStyle} from '../enum/style.enum';
import {ProviderName} from '../providers/ai-provider.factory';
import {Language} from "../../../common/interfaces/language.prompt.interface";
import {ContentTone, isEdgyTone} from "../enum/tone.enum";
interface ProviderPair {
writer: ProviderName;
@@ -49,10 +50,37 @@ export class ProviderRouterService {
language: Language;
contentType: ContentType;
style?: ContentStyle;
tone?: string;
tone?: ContentTone;
}): RoutingDecision {
const { language, contentType, style, tone } = params;
// 🔥 EDGY TONES: route mạnh sang Grok (EN) hoặc DeepSeek (others)
// GPT thường refuse hoặc water down → tránh
if (tone && isEdgyTone(tone)) {
if (language === 'en') {
return {
writer: 'grok',
reviewer: 'deepseek',
useXEnrichment: false,
reason: `Edgy tone (${tone}) EN: Grok (handles edge best)`,
};
}
if (tone === ContentTone.SPICY) {
return {
writer: 'openai',
reviewer: 'deepseek',
useXEnrichment: false,
reason: `Edgy tone (${tone}) EN: Grok (handles edge best)`,
};
}
return {
writer: 'deepseek',
reviewer: 'deepseek',
useXEnrichment: false,
reason: `Edgy tone (${tone}) ${language}: DeepSeek (less refusal)`,
};
}
// === ENGLISH ===
if (language === 'en') {
// Breaking news EN -> Grok (real-time + X-native)