AI相关调整

This commit is contained in:
chengxl
2025-08-15 15:17:52 +08:00
parent 603deadbb4
commit f16ac88ec4
6 changed files with 942 additions and 647 deletions

View File

@@ -3,6 +3,7 @@ namespace app\common;
use think\Db;
use app\common\OpenAi;
use app\common\Aireview;
use app\common\HelperFunction;
class Article
{
//JAVA接口
@@ -10,7 +11,9 @@ class Article
//官网文件地址
protected $sFileUrl = "https://submission.tmrjournals.com/public/";
//Ai地址
protected $sAiUrl = "http://125.39.141.154:10002";
protected $sAiUrl = "http://chat.taimed.cn/v1/chat/completions";
//tmr
protected $sTmrUrl = "http://journalapi.tmrjournals.com/public/index.php";//"http://zmzm.journal.dev.com/"; //
/**
* 获取文章文件内容
*/
@@ -48,7 +51,8 @@ class Article
//接口获取期刊内容
$sUrl = $this->sTmrUrl."/api/Supplementary/getJournalPaperArt";
$aParam = ['issn' => $sIssn];
$aResult = object_to_array(json_decode(myPost($sUrl,$aParam),true));
$aResult = object_to_array(json_decode(myPost1($sUrl,$aParam),true));
return json_encode($aResult);
}
/**
@@ -83,6 +87,8 @@ class Article
$aFields = ['article_id','article_type','media_type','journal_id','journal_issn','title_english','title_chinese','covered','research_method','digest','research_background','overview','summary','conclusion','is_generate'];
$sFiled = '';
$aUpdateParam = [];
$oHelperFunction = new HelperFunction;
foreach($aFields as $val){
if(!isset($aParam[$val])){
continue;
@@ -90,7 +96,7 @@ class Article
if(is_array($aParam[$val])){
$aParam[$val] = implode(";",$aParam[$val]);
}
$aUpdateParam[$val] = empty($aParam[$val]) ? '' : $this->func_safe($aParam[$val]);
$aUpdateParam[$val] = empty($aParam[$val]) ? '' : $oHelperFunction->func_safe($aParam[$val]);
}
if(empty($aUpdateParam)){
return json_encode(['status' => 1,'msg' => 'No data currently being processed']);
@@ -119,11 +125,11 @@ class Article
你是一位资深的医学期刊学术评审专家负责严谨、客观地评估学术文章。返回格式必须严格遵循以下JSON结构!请根据文章的标题和摘要从目标期刊下所有领域中筛选出符合文章的领域';
$sSysMessagePrompt .= json_encode([
"article_field" => [
"assessment" => [
"article_field_assessment" => [
"major_id" => "领域ID多个,分隔",
"major_name" => "领域名称多个,分隔"
],
"explanation" =>"请详细解释说明.请返回中文解释!"
"article_field_explanation" =>"请详细解释说明.请返回中文解释!"
]
],JSON_UNESCAPED_UNICODE);
//组装问题
@@ -155,9 +161,9 @@ class Article
//获取文章领域
$aArticleField = $this->getArticleField($aWhere);
if(!empty($aArticleField['data'])){
return json_encode(array('status' => 4,'msg' =>'The article has been added to the field' ));
}
// if(!empty($aArticleField['data'])){
// return json_encode(array('status' => 4,'msg' =>'The article has been added to the field' ));
// }
//文章标题
$title = empty($aArticle['title']) ? '' : $aArticle['title'];
if(empty($title)){
@@ -204,14 +210,15 @@ class Article
}
//数据处理
$aData = $oOpenAi->extractAndParse($aData);
$oHelperFunction = new HelperFunction;
$aData = $oHelperFunction->extractAndParse($aData);
if(empty($aData['data'])){
return json_encode($aData);
}
//关联文章领域
$aData = $aData['data'];
$aMaJorId = empty($aData['article_field']['assessment']) ? [] : $aData['article_field']['assessment'];
$aData = empty($aData['data']['article_field']) ? [] : $aData['data']['article_field'];
$aMaJorId = empty($aData['article_field_assessment']) ? [] : $aData['article_field_assessment'];
$sMaJorId = empty($aMaJorId['major_id']) ? '' : $aMaJorId['major_id'];
$aAddResult = $this->addArticleField(['article_field' => $sMaJorId,'article_id' => $iArticleId]);
@@ -360,6 +367,7 @@ class Article
$aFields = ['article_id','title','content','current_am_id','next_am_id','ami_id'];
$sFiled = '';
$aUpdateParam = [];
$oHelperFunction = new HelperFunction;
foreach($aFields as $val){
if(!isset($aParam[$val])){
continue;
@@ -367,7 +375,7 @@ class Article
if(is_array($aParam[$val])){
$aParam[$val] = implode(";",$aParam[$val]);
}
$aUpdateParam[$val] = empty($aParam[$val]) ? '' : $this->func_safe($aParam[$val]);
$aUpdateParam[$val] = empty($aParam[$val]) ? '' : $oHelperFunction->func_safe($aParam[$val]);
}
if(empty($aUpdateParam)){
return json_encode(['status' => 1,'msg' => 'No data currently being processed']);
@@ -384,26 +392,5 @@ class Article
}
return json_encode(['status' => 1,'msg' => 'success']);
}
/**
* 字符串过滤
* @param $messages 内容
* @param $model 模型类型
*/
private function func_safe($data,$ignore_magic_quotes=false){
if(is_string($data)){
$data=trim(htmlspecialchars($data));//防止被挂马,跨站攻击
if(($ignore_magic_quotes==true)||(!get_magic_quotes_gpc())){
$data = addslashes($data);//防止sql注入
}
return $data;
}else if(is_array($data)){//如果是数组采用递归过滤
foreach($data as $key=>$value){
$data[$key]=func_safe($value);
}
return $data;
}else{
return $data;
}
}
}