PS-Commands/Scripts/Get-GigaChat.ps1

50 lines
2.2 KiB
PowerShell
Raw Permalink Normal View History

2024-01-11 20:54:49 +03:00
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