diff --git a/Scripts/Get-GigaChat.ps1 b/Scripts/Get-GigaChat.ps1 new file mode 100644 index 0000000..4fa08ae --- /dev/null +++ b/Scripts/Get-GigaChat.ps1 @@ -0,0 +1,50 @@ +function Get-GigaChat { + param ( + [Parameter(Mandatory,ValueFromPipeline)][string]$Content, + [Parameter(Mandatory)][string]$Cred_Base64, + [ValidateRange(0.1,2)][float]$temperature = 0.9, + [ValidateRange(1,4)][int64]$n = 1, + [int64]$max_tokens = 512, + [boolean]$stream = $False, + [string]$model = "GigaChat:latest" + ) + $UUID = [System.Guid]::NewGuid() + $url = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth" + $headers = @{ + "Authorization" = "Basic $Cred_Base64" + "RqUID" = "$UUID" + "Content-Type" = "application/x-www-form-urlencoded" + } + $body = @{ + scope = "GIGACHAT_API_PERS" + } + $GIGA_TOKEN = $(Invoke-RestMethod -Uri $url -Method POST -Headers $headers -Body $body).access_token + $role = "user" + $url = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions" + $headers = @{ + "Authorization" = "Bearer $GIGA_TOKEN" + "Content-Type" = "application/json" + } + $body = @{ + model = $model + messages = @( + @{ + role = $role + content = $content + } + ) + temperature = $temperature + n = $n + max_tokens = $max_tokens + stream = $stream + } | ConvertTo-Json + $Request = Invoke-RestMethod -Method POST -Uri $url -Headers $headers -Body $body + $Request.choices.message.content +} + +# Сгенерировать вторизационные данные (действует 30 минут): https://developers.sber.ru/studio +#$Cred = "N2U2ZDJmOWYtODI1ZS00OWI3LTk4ZjQtNjJmYmI3NTA2NDI3OmExY2FiN2U3LTBhZjgtNDMzMi1iODAwLTE3Y2I5OTQ1MWViNg==" +#Get-GigaChat -Cred_Base64 $Cred -Content "Напиши скрипт на языке PowerShell для создания UUID" +#Get-GigaChat -Cred_Base64 $Cred -Content "Напиши скрипт на языке Bash для создания UUID" +#Get-GigaChat -Cred_Base64 $Cred -Content "Выполняй роль калькулятора. Посчитай сумму двух чисел" +#Get-GigaChat -Cred_Base64 $Cred -Content "Расскажи, что такое платформа .NET" -n 2 \ No newline at end of file