You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.2 KiB
PHP

<?php
namespace Isekai\AIToolbox\Job;
use Job;
use MediaWiki\MediaWikiServices;
use Title;
class UpdateTitleIndexJob extends Job {
public function __construct(Title $title) {
parent::__construct('isekaiAIUpdateTitleIndex', $title);
}
/**
* 触发AI后端更新标题索引
*/
public function run() {
$services = MediaWikiServices::getInstance();
$config = $services->getMainConfig();
$endpoint = $config->get('IsekaiAIBackendEndpoint');
$authToken = $config->get('IsekaiAIToolboxToken');
$title = $this->title;
$pageTitle = $title->getText();
$factory = MediaWikiServices::getInstance()->getHttpRequestFactory();
$req = $factory->create($endpoint . '/sys/embedding_search/title/update', [
'method' => 'POST',
'postData' => [
'title' => $pageTitle
],
'timeout' => 20
], __METHOD__);
$req->setHeader('Authorization', 'Bearer ' . $authToken);
$status = \Status::wrap($req->execute());
if(!$status->isOK()){
$this->setLastError($status->getMessage());
return false;
}
return true;
}
}