$this->uid, 'name' => $this->name, 'description' => $this->description, 'url' => $this->url, 'model' => $this->model, 'privacy' => $this->privacy, 'owner_id' => $this->owner_id, 'editor_id' => $this->editor_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'user' => AiAssistantApi::userInfo($this), ]; if ($this->isRequestedByOwner($request)) { $data['key'] = $this->key; $data['system_prompt'] = $this->system_prompt; } return $data; } /** * 请求者是否为本模型的 owner。 * * 结果按请求缓存:index() 一次可返回上千行,逐行解一次 JWT 代价过高。 */ private function isRequestedByOwner($request): bool { if (! $request->attributes->has('auth.current')) { $request->attributes->set('auth.current', AuthService::current($request)); } $user = $request->attributes->get('auth.current'); return $user && $user['user_uid'] === $this->owner_id; } }