|
|
@@ -34,6 +34,7 @@ class AiTaskPrepare
|
|
|
}
|
|
|
}
|
|
|
if (!isset($params['type'])) {
|
|
|
+ Log::error('no $params.type');
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
@@ -43,12 +44,14 @@ class AiTaskPrepare
|
|
|
switch ($params['type']) {
|
|
|
case 'sentence':
|
|
|
if (!isset($params['id'])) {
|
|
|
+ Log::error('no $params.id');
|
|
|
return false;
|
|
|
}
|
|
|
$sentences[] = explode('-', $params['id']);
|
|
|
break;
|
|
|
case 'para':
|
|
|
if (!isset($params['book']) || !isset($params['paragraphs'])) {
|
|
|
+ Log::error('no $params.book or paragraphs');
|
|
|
return false;
|
|
|
}
|
|
|
$sent = PaliSentence::where('book', $params['book'])
|
|
|
@@ -67,13 +70,14 @@ class AiTaskPrepare
|
|
|
}
|
|
|
break;
|
|
|
case 'chapter':
|
|
|
- if (!isset($params['book']) || !isset($params['para'])) {
|
|
|
+ if (!isset($params['book']) || !isset($params['paragraphs'])) {
|
|
|
+ Log::error('no $params.book or paragraphs');
|
|
|
return false;
|
|
|
}
|
|
|
$chapterLen = PaliText::where('book', $params['book'])
|
|
|
- ->where('paragraph', $params['para'])->value('chapter_len');
|
|
|
+ ->where('paragraph', $params['paragraphs'])->value('chapter_len');
|
|
|
$sent = PaliSentence::where('book', $params['book'])
|
|
|
- ->whereBetween('paragraph', [$params['para'], $params['para'] + $chapterLen - 1])
|
|
|
+ ->whereBetween('paragraph', [$params['paragraphs'], $params['paragraphs'] + $chapterLen - 1])
|
|
|
->orderBy('paragraph')
|
|
|
->orderBy('word_begin')->get();
|
|
|
foreach ($sent as $key => $value) {
|
|
|
@@ -115,15 +119,19 @@ class AiTaskPrepare
|
|
|
$sumLen += $sentence['strlen'];
|
|
|
$sid = implode('-', $sentence['id']);
|
|
|
Log::debug($sid);
|
|
|
+ $sentChannelInfo = explode('@', $params['channel']);
|
|
|
+ $channelId = $sentChannelInfo[0];
|
|
|
+ $data = [];
|
|
|
$data['origin'] = '{{' . $sid . '}}';
|
|
|
$data['translation'] = '{{sent|id=' . $sid;
|
|
|
- $data['translation'] .= '|channel=' . $params['channel'];
|
|
|
+ $data['translation'] .= '|channel=' . $channelId;
|
|
|
$data['translation'] .= '|text=translation}}';
|
|
|
- if (isset($params['nissaya'])) {
|
|
|
- $data['nissaya'] = [];
|
|
|
+ if (isset($params['nissaya']) && !empty($params['nissaya'])) {
|
|
|
+ $nissayaArray = [];
|
|
|
$nissayaChannels = explode(',', $params['nissaya']);
|
|
|
foreach ($nissayaChannels as $key => $channel) {
|
|
|
- $channelInfo = ChannelApi::getById($channel);
|
|
|
+ $nissayaChannel = explode('@', $channel);
|
|
|
+ $channelInfo = ChannelApi::getById($nissayaChannel[0]);
|
|
|
if (!$channelInfo) {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -132,7 +140,7 @@ class AiTaskPrepare
|
|
|
->where('paragraph', $sentence['id'][1])
|
|
|
->where('word_start', $sentence['id'][2])
|
|
|
->where('word_end', $sentence['id'][3])
|
|
|
- ->where('channel_uid', $channel)->first();
|
|
|
+ ->where('channel_uid', $nissayaChannel[0])->first();
|
|
|
if (!$nissayaSent) {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -142,11 +150,15 @@ class AiTaskPrepare
|
|
|
$nissayaData = [];
|
|
|
$nissayaData['channel'] = $channelInfo;
|
|
|
$nissayaData['data'] = '{{sent|id=' . $sid;
|
|
|
- $nissayaData['data'] .= '|channel=' . $channel;
|
|
|
+ $nissayaData['data'] .= '|channel=' . $nissayaChannel[0];
|
|
|
$nissayaData['data'] .= '|text=translation}}';
|
|
|
- $data['nissaya'][] = $nissayaData;
|
|
|
+ $nissayaArray[] = $nissayaData;
|
|
|
}
|
|
|
}
|
|
|
+ if (isset($nissayaArray) && count($nissayaArray) > 0) {
|
|
|
+ $data['nissaya'] = $nissayaArray;
|
|
|
+ }
|
|
|
+ Log::debug('mustache render', ['tpl' => $description, 'data' => $data]);
|
|
|
$content = $m->render($description, $data);
|
|
|
$prompt = $mdRender->convert($content, []);
|
|
|
//gen mq
|
|
|
@@ -165,10 +177,10 @@ class AiTaskPrepare
|
|
|
'paragraph' => $sentence['id'][1],
|
|
|
'word_start' => $sentence['id'][2],
|
|
|
'word_end' => $sentence['id'][3],
|
|
|
- 'channel_uid' => $params['channel'],
|
|
|
+ 'channel_uid' => $channelId,
|
|
|
'content' => $prompt,
|
|
|
'content_type' => 'markdown',
|
|
|
- 'access_token' => $params['token'],
|
|
|
+ 'access_token' => $sentChannelInfo[1] ?? $params['token'],
|
|
|
],
|
|
|
];
|
|
|
array_push($mqData, $aiMqData);
|