推送公众号接口调整

This commit is contained in:
chengxl
2025-05-22 16:35:15 +08:00
parent d0f4f65444
commit 4aa3ff1750

View File

@@ -32,7 +32,7 @@ class Aiarticle extends Base
/**OPENAI相关配置----------end**/
//数据表必填字段[ai_article]
protected $aAiFileds = ['article_id','title_english','title_chinese','journal_issn','covered','digest','research_result','content','highlights','discussion','prospect','research_background',];
protected $aAiFileds = ['article_id','title_english','title_chinese','journal_issn','covered','digest','research_result','content','highlights','discussion','prospect','research_background','discussion_results','research_method'];
//期刊接口地址
protected $sJournalUrl = 'http://journalapi.tmrjournals.com/public/index.php';//'http://zmzm.journal.dev.com'; // 'http://zmzm.journal.dev.com'; // 'http://journalapi.tmrjournals.com/public/index.php';//'http://zmzm.journal.dev.com'; //
@@ -41,31 +41,19 @@ class Aiarticle extends Base
//投稿系统
protected $sSubmissionUrl = 'https://submission.tmrjournals.com/';
protected $aOpenAiAsk = [
1 => '"将以下内容翻译为中文,仅返回翻译结果,不要解释:\n {#content#}"',
1 => '"将以下内容翻译为中文,仅返回翻译结果,不要解释:\n {#content#}"',
2 => '
**核心要求**
1 内容涵盖哪些学科及方法请罗列
2 结构化摘要生成【四要素模版】
3 研究背景提炼【三段式结构】
发病率+当前治疗缺口如5年OS<20%
引用2-3篇高被引论文的矛盾结论如Nature vs Cell观点分歧
基于团队前期工作如预实验发现X调控Y
4 针对稿件内容进行结论撰写
与TOP3高被引文献的对比用"与A研究的X结论不同..."句式) 机制解释的3级证据链基因敲除→通路抑制→表型逆转 临床转化的可行性路径基于RECIST标准的ORR提升研究局限性分方法学/样本量/随访维度)
5 针对稿件内容进行展望撰写
现有方法的可扩展性(如空间组学升级计划)
6 按点总结归纳研究结果并做简要阐述【3点以上】
2 学术规范翻译并提炼摘要更强调逻辑性、科学术语准确性和表达的严谨性并且不需要分点展示字数小于200字以便更方便读者阅读
3 研究背景提炼,大于500字
4 针对文章简单总结讨论和结果, 大于450字
5 简单总结文章的研究方法, 大于300字
6 针对稿件内容进行展望撰写
7 总结归纳亮点【3点以上】
8 禁用清单
直接复制讨论部分的原文
未达到统计学显著性的趋势描述
稿件内未提及的内容一定不要总结归纳出来
"可能""或许"等不确定性词汇
单纯古籍原文翻译(需结合现代数据解读)
未经验证的因果断言(如"证明XX药治愈癌症"
9 请将标题翻译成中文
8 你是一名资深医学翻译专家,请将标题翻译成中文【内容需自然流畅、口语化、连贯性、学术性】
{#title_chinese#}
10 请将稿件内容翻译成中文
9.你是一名资深医学翻译专家,请将文章内容翻译成中文【内容需自然流畅、口语化、连贯性、学术性】
{#content#}
**稿件关键信息**
- 稿件简介:{#abstract#}
@@ -73,7 +61,7 @@ class Aiarticle extends Base
**输出格式**
中文格式[英文简写忽略首字母大写]
格式内容
```json{ "title_chinese": "", "content": "", "covered": "【总字数<=100】", "digest": "【总字数<=500】", "research_background": "", "research_result": "", "highlights": "", "prospect": "", "discussion": ""}'
```json{"covered": "【总字数<=100】", "digest": "【总字数<=500】", "research_background": "【总字数>200】", "discussion_results": "【总字数>450】","research_method" => "【总字数>300】", "prospect": "", "highlights": "", "title_chinese": "", "content": "", }'
];
//文章图片icon地址
@@ -115,7 +103,8 @@ class Aiarticle extends Base
$data = [
'model' => $model,
'messages' => $messages,
'temperature' => 0.7
'temperature' => 0,
'top_p' => 1,
];
$oCurl = curl_init();
@@ -168,7 +157,7 @@ class Aiarticle extends Base
]
];
//请求接口
$sModel = $aParam['api_model'] ?? 'gpt-4o';
$sModel = empty($aParam['api_model']) ? 'gpt-4o' : $aParam['api_model'];
$result = $this->curlOpenAI($messages,$sModel);
if($result == FALSE){
return json_encode(array('status' => 2,'msg' => 'Interface request failed'.$this->sError));
@@ -1116,7 +1105,7 @@ class Aiarticle extends Base
//数据处理-标题
$sTitle = empty($aAiArticle['title']) ? '' : $aAiArticle['title'];
$sTitle = mb_convert_encoding($sTitle, 'UTF-8', 'auto');
$aAiArticle['title'] = $this->truncateByBytes($sTitle, 64);
$aAiArticle['title'] = $this->truncateByBytes($sTitle);
//数据处理-摘要
$sDigest = empty($aAiArticle['digest']) ? '' : $aAiArticle['digest'];
$sDigest = mb_convert_encoding($sDigest, 'UTF-8', 'auto');
@@ -1165,24 +1154,12 @@ class Aiarticle extends Base
* 字符串处理
* @param article_id 文章ID
*/
private function truncateByBytes($str, $maxBytes) {
$len = 0;
$result = '';
$i = 0;
while ($i < mb_strlen($str, 'UTF-8')) {
$char = mb_substr($str, $i, 1, 'UTF-8');
$charBytes = strlen($char); // UTF-8 下实际字节数
if ($len + $charBytes > $maxBytes) {
break;
}
$result .= $char;
$len += $charBytes;
$i++;
private function truncateByBytes($str, $maxLength = 64) {
$totalChars = mb_strlen($str, 'UTF-8');
if($totalChars >= $maxLength){
return mb_substr($str,0,$maxLength);
}
return $result;
return $str;
}
/**
@@ -1533,4 +1510,5 @@ class Aiarticle extends Base
$oMaterial = new Material;
return $oMaterial->uploadMaterial($aUpload);
}
}