Classes/Components/OAIGPT.ps1
class OAIGPT { [OAIComplianceRequestClient]$Client OAIGPT([OAIComplianceRequestClient]$client) { $this.Client = $client } #region GPT Operations # Get all workspace GPTs with optional top limit [object]GetGPTs([int]$top = 0) { return $this.Client.Paginate(@("gpts"), @{}, $top) } # Get specific GPT by ID [object]GetGPT([string]$gptId) { $segments = @("gpts", $gptId) return $this.Client.InvokeGetRequest($segments, @{}) } # Delete specific GPT [object]DeleteGPT([string]$gptId) { $segments = @("gpts", $gptId) return $this.Client.InvokeDeleteRequest($segments, @{}) } # Get GPT configurations [object]GetGPTConfigurations([string]$gptId, [int]$top = 0) { $segments = @("gpts", $gptId, "configs") return $this.Client.Paginate($segments, @{}, $top) } # Get GPT shared users [object]GetGPTSharedUsers([string]$gptId, [int]$top = 0) { $segments = @("gpts", $gptId, "shared_users") return $this.Client.Paginate($segments, @{}, $top) } # Isolate GPT (remove all shared users) [object]IsolateGPT([string]$gptId) { $segments = @("gpts", $gptId, "shared_users") return $this.Client.InvokeDeleteRequest($segments, @{}) } # Get GPT file content [object]GetGPTFileContent([string]$fileId) { $segments = @("gpt_files", $fileId) return $this.Client.InvokeGetRequest($segments, @{}) } # Delete GPT file [object]DeleteGPTFile([string]$gptId, [string]$fileId) { $segments = @("gpts", $gptId, "files", $fileId) return $this.Client.InvokeDeleteRequest($segments, @{}) } #endregion } |