Files
chat/backend/app/controller/api/Settings.php
T
2026-08-05 15:56:08 +08:00

63 lines
1.8 KiB
PHP

<?php
namespace app\controller\api;
use app\model\AiModel;
use app\service\AgentCatalog;
use app\service\CosyVoiceService;
use app\service\GuestAccessService;
use app\service\SettingsService;
class Settings extends BaseApi
{
public function features()
{
return $this->success(SettingsService::getFeatures());
}
public function publicSettings()
{
$allow = SettingsService::get('allow_register', true);
return $this->success([
'site_name' => SettingsService::get('site_name', 'AI Chat'),
'allow_register' => $allow === true || $allow === 'true',
'registration_requires_invite' => true,
'features' => SettingsService::getFeatures(),
'voice_persona' => CosyVoiceService::publicPersona(),
]);
}
public function models()
{
$user = $this->authUser();
if (GuestAccessService::isGuest($user)) {
$model = GuestAccessService::model();
return $this->success([[
'id' => (int) $model->id,
'name' => $model->name,
'provider' => $model->provider,
'model_id' => $model->model_id,
'is_default' => 1,
'support_context' => (int) $model->support_context,
'support_image' => 0,
]]);
}
$list = AiModel::where('enabled', 1)
->field('id,name,provider,model_id,is_default,support_context,support_image')
->order('sort_order,id')
->select();
return $this->success($list);
}
public function agents()
{
if (GuestAccessService::isGuest($this->authUser())) {
return $this->success([]);
}
return $this->success(AgentCatalog::publicList());
}
}