This commit is contained in:
NAME
2026-05-23 06:27:07 +00:00
parent 60dd0730f0
commit 83553be5b3
35 changed files with 763 additions and 126 deletions
@@ -5,12 +5,13 @@ import {ProviderName} from '../providers/ai-provider.factory';
import {Language} from "../../../common/interfaces/language.prompt.interface";
import {ContentTone, isEdgyTone} from "../enum/tone.enum";
import {AngleEnum} from "../enum/angle.enum";
import {getRandomElement} from "../../../shared/helper";
interface ProviderPair {
writer: ProviderName;
reviewer: ProviderName;
}
export type ContentType = 'post' | 'comment';
export type ContentType = 'post' | 'comment' | 'translation';
interface RoutingDecision {
writer: ProviderName;
reviewer: ProviderName;
@@ -55,6 +56,24 @@ export class ProviderRouterService {
}): RoutingDecision {
const { language, contentType, style, tone } = params;
if(contentType ==='translation') {
if (language === 'cn') {
// Default EN
return {
writer: 'deepseek',
reviewer: 'deepseek',
useXEnrichment: false,
reason: 'CN default: GPT reliable',
};
}
return {
writer: getRandomElement([ 'openai',]),
reviewer: 'openai',
useXEnrichment: false,
reason: 'EN default: GPT reliable',
};
}
if (tone === ContentTone.EMPATHETIC) {
return {
writer: 'openai', // warmest voice, less "AI-ish"
@@ -69,7 +88,7 @@ export class ProviderRouterService {
if (tone && isEdgyTone(tone)) {
if (language === 'en') {
return {
writer: 'grok',
writer: getRandomElement(['openai', 'google', 'grok']),
reviewer: 'deepseek',
useXEnrichment: false,
reason: `Edgy tone (${tone}) EN: Grok (handles edge best)`,
@@ -77,14 +96,14 @@ export class ProviderRouterService {
}
if (tone === ContentTone.SPICY) {
return {
writer: 'openai',
writer: getRandomElement(['deepseek', 'google', 'openai',]),
reviewer: 'deepseek',
useXEnrichment: false,
reason: `Edgy tone (${tone}) EN: Grok (handles edge best)`,
};
}
return {
writer: 'deepseek',
writer: getRandomElement(['deepseek', 'google',]),
reviewer: 'deepseek',
useXEnrichment: false,
reason: `Edgy tone (${tone}) ${language}: DeepSeek (less refusal)`,
@@ -96,9 +115,9 @@ export class ProviderRouterService {
// Breaking news EN -> Grok (real-time + X-native)
if (style === ContentStyle.BREAKING_NEWS) {
return {
writer: 'grok',
writer: 'google',
reviewer: 'deepseek',
useXEnrichment: true,
useXEnrichment: false,
reason: 'EN breaking news: Grok has real-time X context',
};
}
@@ -106,7 +125,7 @@ export class ProviderRouterService {
// Comment EN casual/witty -> Grok
if (contentType === 'comment' && tone !== 'professional') {
return {
writer: 'grok',
writer: 'google',
reviewer: 'deepseek',
useXEnrichment: false,
reason: 'EN casual comment: Grok sounds most human on X',