Public/Get-DifyModelProviderCredential.ps1
function Get-DifyModelProviderCredential { [CmdletBinding()] param( [String] $Provider = $null, [String] $From = $null, [String] $Name = $null, [String] $Type = $null ) if ($From) { $ValidFroms = @("predefined", "customizable") if ($From -notin $ValidFroms) { throw "Invalid value for From. Must be one of: $($ValidFroms -join ', ')" } } if ($Type) { $ValidTypes = @("llm", "text-embedding", "speech2text", "moderation", "tts", "rerank") if ($Type -notin $ValidTypes) { throw "Invalid value for Type. Must be one of: $($ValidTypes -join ', ')" } } $Credentials = @() $Endpoint = Join-Url -Segments @($env:PSDIFY_URL, "/console/api/workspaces/current/model-providers") $Method = "GET" try { $Response = Invoke-DifyRestMethod -Uri $Endpoint -Method $Method -Token $env:PSDIFY_CONSOLE_TOKEN } catch { throw "Failed to get model provider credentials: $_" } foreach ($Data in $Response.data) { $CurrentProvider = $Data.provider foreach ($AvailableCredential in $Data.custom_configuration.available_credentials) { $Credentials += [PSCustomObject]@{ "Provider" = $CurrentProvider "ModelType" = $null "ModelName" = $null "From" = "predefined" "CredentialId" = $AvailableCredential.credential_id "CredentialName" = $AvailableCredential.credential_name } } foreach ($CustomModel in $Data.custom_configuration.custom_models) { $CurrentModel = $CustomModel.model $CurrentModelType = $CustomModel.model_type foreach ($AvailableModelCredential in $CustomModel.available_model_credentials) { $Credentials += [PSCustomObject]@{ "Provider" = $CurrentProvider "ModelType" = $CurrentModelType "ModelName" = $CurrentModel "From" = "customizable" "CredentialId" = $AvailableModelCredential.credential_id "CredentialName" = $AvailableModelCredential.credential_name } } } } if ($Provider) { $Credentials = $Credentials | Where-Object { $_.Provider -in $Provider } } if ($From) { $Credentials = $Credentials | Where-Object { $_.From -eq $From } } if ($Name) { $Credentials = $Credentials | Where-Object { $_.ModelName -in $Name } } if ($Type) { $Credentials = $Credentials | Where-Object { $_.ModelType -in $Type } } return $Credentials } |