Update
This commit is contained in:
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user