You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Библиотека требует Java 17 или более позднюю версию.
23
-
24
40
## Быстрый старт
25
41
26
42
Для работы с библиотекой вам понадобится ключ авторизации API.
@@ -66,20 +82,145 @@ public class CompletionExample {
66
82
```
67
83
68
84
> [!NOTE]
69
-
> Этот и другие примеры работы с библиотекой GigaChat — в папке [examples](gigachat-java-example/README.md).
85
+
> Этот и другие примеры работы с библиотекой GigaChat — в папке [gigachat-java-example](gigachat-java-example/README.md).
70
86
71
87
## Параметры объекта GigaChatClient
72
88
73
-
## Способы авторизации
89
+
Для работы с GigaChat используется класс GigaChatClient, который предоставляет доступ ко всем необходимым методам работы с API.
90
+
91
+
Подробнее о методах и параметрах класса — в [документации класса](gigachat-java/src/main/java/chat/giga/client/GigaChatClient.java).
92
+
93
+
## Способы аутентификации
94
+
95
+
Для аутентификации используется метод [`AuthClient.builder()`](gigachat-java/src/main/java/chat/giga/client/auth/AuthClient.java), который вызывается при создании экземпляра GigaChatClient и возвращает экземпляр [AuthClientBuilder](gigachat-java/src/main/java/chat/giga/client/auth/AuthClientBuilder.java)
96
+
97
+
Методы AuthClientBuilder позволяют выполнить аутентификацию с помощью:
98
+
99
+
* ключа авторизации;
100
+
* токена доступа;
101
+
* клиентского идентификатора (Client ID) и ключа (Client Secret);
102
+
* TLS-сертификата;
103
+
* имени пользователя и пароля.
104
+
105
+
### Аутентификация с помощью ключа авторизации
106
+
107
+
При аутентификации с помощью ключа авторизации в методе `scope()` нужно передать версию API, к которой будут выполняться запросы.
108
+
109
+
Возможные значения:
110
+
111
+
*`GIGACHAT_API_PERS` — версия API для физических лиц;
112
+
*`GIGACHAT_API_B2B` — версия API для ИП и юрлиц при работе по предоплате.
113
+
*`GIGACHAT_API_CORP` — версия API для ИП и юрлиц при работе по постоплате.
114
+
115
+
По умолчанию запросы передаются в версию для физических лиц.
116
+
117
+
```java
118
+
GigaChatClient client =GigaChatClient.builder()
119
+
.authClient(AuthClient.builder()
120
+
.withOAuth(OAuthBuilder.builder()
121
+
// Версия API
122
+
.scope(Scope.GIGACHAT_API_B2B)
123
+
.authKey("ключ_авторизации")
124
+
.build())
125
+
.build())
126
+
.build();
127
+
```
128
+
129
+
> [!TIP]
130
+
> Подробно о том, как создать проект GigaChat API — в официальной документации, в разделах [Быстрый старт для физических лиц](https://developers.sber.ru/docs/ru/gigachat/individuals-quickstart) и [Быстрый старт для ИП и юридических лиц](https://developers.sber.ru/docs/ru/gigachat/legal-quickstart).
131
+
132
+
### Аутентификация с помощью токена доступа
133
+
134
+
Токен доступа (access token) получается в обмен на ключ авторизации в запросе [`POST /api/v2/oauth`](https://developers.sber.ru/docs/ru/gigachat/api/reference/rest/post-token).
135
+
136
+
Токен действует в течение 30 минут и содержит данные о версии API, к которой предоставляется доступ, поэтому ее не нужно указывать дополнительно.
137
+
138
+
```java
139
+
GigaChatClient client =GigaChatClient.builder()
140
+
.authClient(AuthClient.builder()
141
+
.withProvidedTokenAuth("токен_доступа").build())
142
+
.build();
143
+
```
144
+
145
+
### Аутентификация с помощью клиентского идентификатора и ключа
146
+
147
+
Как и при использовании ключа авторизации, при аутентификации с помощью Client ID и Client Secret нужно указывать версию API, к которой будут выполняться запросы.
148
+
149
+
```java
150
+
GigaChatClient client =GigaChatClient.builder()
151
+
.authClient(AuthClient.builder()
152
+
.withOAuth(OAuthBuilder.builder()
153
+
.scope(Scope.GIGACHAT_API_B2B)
154
+
.clientId("test-client-id")
155
+
.clientSecret("test-scope")
156
+
.build())
157
+
.build())
158
+
.logRequests(true)
159
+
.logResponses(true)
160
+
.build();
161
+
```
162
+
163
+
### Аутентификация с помощью имени пользователя и пароля
Чтобы библиотека GigaChat могла передавать запросы в GigaChat API, вам нужно установить корневой сертификат [НУЦ Минцифры](https://developers.sber.ru/docs/ru/gigachat/certificates).
78
202
79
-
Для этого выполните команду:
203
+
Для этого перейдите в папку `JAVA_HOME/bin` и выполните в консоли, запущенной от имени администратора, команду:
|[CompletionExample](src/main/java/chat/giga/CompletionExample.java)| Простой запрос на генерацию |
9
+
|[CompletionStreamingExample](src/main/java/chat/giga/CompletionStreamingExample.java)| Пример обработки [потоковой генерации токенов](https://developers.sber.ru/docs/ru/gigachat/api/response-token-streaming)|
10
+
|[CompletionConversationExample](src/main/java/chat/giga/CompletionConversationExample.java)| Примеры работы с [историей сообщений](https://developers.sber.ru/docs/ru/gigachat/api/keeping-context)|
11
+
|[UploadFileExample](src/main/java/chat/giga/UploadFileExample.java)| Загрузка файла в хранилище. О поддерживаемых типах файлов и возможных ограничениях — в [справке API](https://developers.sber.ru/docs/ru/gigachat/api/reference/rest/post-file)|
12
+
|[AvailableFilesExample](src/main/java/chat/giga/AvailableFilesExample.java)| Получение списка доступных в хранилище файлов |
13
+
|[FileInfoExample](src/main/java/chat/giga/FileInfoExample.java)| Получение информации о сохраненном в хранилище файле |
14
+
|[DownloadExample](src/main/java/chat/giga/DownloadExample.java)| Скачивание файла из хранилища |
15
+
|[ImageDownloadFromCompletionsExample](src/main/java/chat/giga/ImageDownloadFromCompletionsExample.java)| Скачивание файла, созданного в результате запроса на генерацию |
16
+
|[FileDeletedExample](src/main/java/chat/giga/FileDeletedExample.java)| Удаление файла из хранилища |
17
+
|[FunctionExample](src/main/java/chat/giga/FunctionExample.java)| Пример [работы с функциями](https://developers.sber.ru/docs/ru/gigachat/api/function-calling)|
18
+
|[EmbeddingExample](src/main/java/chat/giga/EmbeddingExample.java)| Создание [векторного представления текста](https://developers.sber.ru/docs/ru/gigachat/api/embeddings)|
19
+
|[UseCertificateAuthExample](src/main/java/chat/giga/UseCertificateAuthExample.java)| Пример аутентификации с помощью TLS-сертификатов |
20
+
|[UseUserPasswordAuthExample](src/main/java/chat/giga/UseUserPasswordAuthExample.java)| Пример аутентификации с помощью имени пользователя и пароля |
0 commit comments