作者 lyh

gx

... ... @@ -59,7 +59,13 @@ class Common
if($info === false){
response('指令不存在',400);
}
$lang = self::detectLanguage($param['keywords']);
//带原语种翻译
$result = Translate::translateSl($param['keywords'])->json();
if (FALSE == empty($result['texts']['sl']) && FALSE == empty(Translate::$tls_list[$result['texts']['sl']])) {
$lang = Translate::$tls_list[$result['texts']['sl']]['lang_en'];
} else {
$lang = '中文';
}
$str = ',请使用'.$lang.'回答';
//替换关键字
$content = str_replace('$keyword$', $param['keywords'], $info['ai']);
... ...
... ... @@ -745,6 +745,24 @@ class Translate
return $retsult[0]['texts'] ?? '';
}
/**
* 翻译带源语种
* @param $message
* @param string $tl
* @return \Illuminate\Http\Client\Response
*/
public static function translateSl($message, $tl = 'en')
{
$action = 'auto_sl';
if (is_string($message)) {
$message = [$message];
}
$data = [
'texts' => $message,
'sl' => 'auto',
'tl' => $tl,
];
return Http::post(self::$url . $action, $data);
}
}
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Bside\Ai;
use App\Enums\Common\Code;
use App\Helper\Common;
use App\Helper\Translate;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Controllers\Bside\:写入日志;
use App\Models\Ai\AiLog;
... ... @@ -53,5 +54,35 @@ class AiCommandController extends BaseController
return $aiLog->add($param);
}
/**
* 处理指令中的参数
* 语种
* @param $prompt
* @param $model_config
* @param $message
* @return string|string[]
*/
public static function promptParamDeal($prompt, $model_config, $message)
{
if (FALSE === strpos($prompt, '{lang}')) {
return $prompt;
}
// 没有设置或者没有获取到正确的语种信息 则通过接口获取回复语种
if (empty($model_config['lang']) || empty(Translate::$tls_list[$model_config['lang']])) {
$string = is_array($message) ? end($message) : $message;
$result = Translate::translateSl($string)->json();
if (FALSE == empty($result['texts']['sl']) && FALSE == empty(Translate::$tls_list[$result['texts']['sl']])) {
$lang = 'use ' . Translate::$tls_list[$result['texts']['sl']]['lang_en'];
} else {
$lang = '';
}
} else {
$lang = Translate::$tls_list[$model_config['lang']]['lang_en'];
$lang = 'use ' . $lang;
}
// 指令中有需要替换语种的地方
$prompt = str_replace('{lang}', $lang, $prompt);
return $prompt;
}
}
... ...