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