作者 lyh

gx

... ... @@ -59,12 +59,19 @@ class Common
if($info === false){
response('指令不存在',400);
}
//带原语种翻译
$result = Translate::translateSl($param['keywords'])->json();
if (isset($result['texts']['sl']) && isset(Translate::$tls_list[$result['texts']['sl']])) {
$lang = Translate::$tls_list[$result['texts']['sl']]['text'];
if (strpos($param['keywords'], '{') !== false && strpos($param['keywords'], '}') !== false) {
$pattern = '/\{([^}]+)\}/'; // 匹配大括号及其内容
if (preg_match($pattern, $param['keywords'], $matches)) {
$lang = $matches[1]; // 获取捕获的内容
}
} else {
$lang = '中文';
//带原语种翻译
$result = Translate::translateSl($param['keywords'])->json();
if (isset($result['texts']['sl']) && isset(Translate::$tls_list[$result['texts']['sl']])) {
$lang = Translate::$tls_list[$result['texts']['sl']]['text'];
} else {
$lang = '中文';
}
}
$str = ',请使用'.$lang.'回答';
//替换关键字
... ...
... ... @@ -53,36 +53,4 @@ class AiCommandController extends BaseController
$aiLog = new AiLog();
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;
}
}
... ...