Авторизация запросов
Обновлено 16 апреля 2026
В этом разделе описано, как авторизовать запросы к GigaChat API B2Bank.
Базовые адреса API
При работе в Alpha/Sigma доступны разные стенды GigaChat API. Все стенды поддерживают одинаковый набор эндпоинтов.
| Базовый адрес | Описание |
|---|---|
https://gigachat-ift.sberdevices.delta.sbrf.ru/v1 | ИФТ |
https://gigachat-psi.sberdevices.sigma.sbrf.ru/v1 | ПСИ Sigma |
https://gigachat-psi.sberdevices.ca.sbrf.ru/v1 | ПСИ Alpha |
https://gigachat.sberdevices.sigma.sbrf.ru/v1 | ПРОМ Sigma |
https://gigachat.sberdevices.omega.sbrf.ru/v1 | ПРОМ Alpha |
Аутентификация с помощью TLS-сертификата
В отличие от версии API, доступной после регистрации в Studio, GigaChat API B2Bank использует взаимную аутентификацию по протоколу TLS (mTLS). Для авторизации запросов вам потребуется клиентский сертификат.
О том как получить сертификат — читайте в разделе Работа с сертификатами .
from gigachat import GigaChat
giga = GigaChat(
base_url="https://gigachat-ift.sberdevices.delta.sbrf.ru/v1",
cert_file="./certs/clientcert.pem", # Клиентский сертификат
key_file="./certs/clientkey.key", # Приватный ключ клиента
key_file_password="<пароль>", # Необязательный пароль для зашифрованного ключа
verify_ssl_certs=False
)
response = giga.get_models()
print(response)
import GigaChat from 'gigachat';
import { Agent } from 'node:https';
import fs from 'node:fs';
const httpsAgent = new Agent({
cert: fs.readFileSync('./certs/clientcert.pem'), // Клиентский сертификат
key: fs.readFileSync('./certs/clientkey.key'), // Приватный ключ клиента
passphrase: '<пароль>', // Необязательный пароль для зашифрованного ключа
rejectUnauthorized: false,
});
const giga = new GigaChat({
baseUrl: 'https://gigachat-ift.sberdevices.delta.sbrf.ru/v1',
httpsAgent: httpsAgent,
});
const response = await giga.getModels();
console.log(response);
package chat.giga;
import chat.giga.client.GigaChatClient;
import chat.giga.client.auth.AuthClient;
import chat.giga.http.client.HttpClientException;
import chat.giga.http.client.JdkHttpClientBuilder;
import chat.giga.http.client.SSL;
import chat.giga.model.ModelName;
import chat.giga.model.completion.ChatMessage;
import chat.giga.model.completion.ChatMessageRole;
import chat.giga.model.completion.CompletionRequest;
import com.fasterxml.jackson.core.JsonProcessingException;
public class UseCertificateAuthExample {
public static void main(String[] args) throws JsonProcessingException {
GigaChatClient client = GigaChatClient.builder()
.logRequests(true)
.logResponses(true)
.authClient(AuthClient.builder()
.withCertificatesAuth(new JdkHttpClientBuilder()
.ssl(SSL.builder()
.truststorePassword(System.getenv("TRUST_PASSWORD"))
.trustStoreType("PKCS12")
.truststorePath(System.getenv("TRUST_PATH"))
.keystorePassword(System.getenv("KEY_PASSWORD"))
.keystoreType("PKCS12")
.keystorePath(System.getenv("KEY_PATH"))
.build())
.build())
.build())
.apiUrl("https://gigachat-ift.sberdevices.delta.sbrf.ru/v1")
.build();
try {
System.out.println(client.completions(CompletionRequest.builder()
.model(ModelName.GIGA_CHAT_MAX_2)
.message(ChatMessage.builder()
.content("Как дела")
.role(ChatMessageRole.USER)
.build())
.build()));
} catch (Exception ex) {
System.out.println(ex);
}
}
}
curl -X GET 'https://gigachat-ift.sberdevices.delta.sbrf.ru/v1/models' \
--cert clientcert.pem \
--key clientkey.key \
-k