GigaChat Java SDK
GigaChat -- eto Java-biblioteka dlia raboty s REST API GigaChat.
Biblioteka upravliaet avtorizatsiei zaprosov i predostavliaet vse neobkhodimye metody dlia raboty s API. Krome etogo ona podderzhivaet:
- obrabotku potokovoi peredachi tokenov;
- rabotu s funktsiiami;
- sozdanie embeddingov;
- rabotu v sinkhronnom ili v asinkhronnom rezhime.
Tip
Bol'she primerov raboty s bibliotekoi -- v papke gigachat-java-example.
Trebovaniia
Dlia raboty biblioteki ustanovite Java versii 17 ili vyshe.
Ustanovka
Chtoby ustanovit' biblioteku, podkliuchite ee v zavisimosti.
Gradle
Maven
<groupId>chat.gigagroupId>
<artifactId>gigachat-javaartifactId>
<version>0.1.14version>
dependency>
Bystryi start
Dlia raboty s bibliotekoi vam ponadobitsia kliuch avtorizatsii API.
Chtoby poluchit' kliuch avtorizatsii:
- Sozdaite proekt GigaChat API v lichnom kabinete Studio.
- V interfeise proekta, v levoi paneli vyberite razdel Nastroiki API.
- Nazhmite knopku Poluchit' kliuch.
V otkryvshemsia okne skopiruite i sokhranite znachenie polia Authorization Key. Kliuch avtorizatsii, otobrazhaetsia tol'ko odin raz i ne khraniatsia v lichnom kabinete. Pri komprometatsii ili utere kliucha avtorizatsii vy mozhete sgenerirovat' ego povtorno.
Podrobno o tom, kak sozdat' proekt GigaChat API -- v ofitsial'noi dokumentatsii, v razdelakh Bystryi start dlia fizicheskikh lits i Bystryi start dlia IP i iuridicheskikh lits.
Peredaite poluchennyi kliuch avtorizatsii v parametre authKey pri initsializatsii ob'ekta AuthClient.
Primer pokazyvaet kak otpravit' prostoi zapros na generatsiiu s pomoshch'iu biblioteki GigaChatClient:
public class CompletionExample {
public static void main(String[] args) {
GigaChatClient client = GigaChatClient.builder()
.verifySslCerts(false)
.authClient(AuthClient.builder()
.withOAuth(OAuthBuilder.builder()
.scope(Scope.GIGACHAT_API_PERS)
.authKey("vash_kliuch_avtorizatsii")
.build())
.build())
.build();
System.out.println(client.completions(CompletionRequest.builder()
.model(ModelName.GIGA_CHAT_MAX)
.message(ChatMessage.builder()
.content("Kakie faktory vliiaiut na stoimost' strakhovki na dom?")
.role(Role.USER)
.build())
.build()));
}
}
Note
Etot i drugie primery raboty s bibliotekoi GigaChat -- v papke gigachat-java-example.
Parametry ob'ekta GigaChatClient
Dlia raboty s GigaChat ispol'zuetsia klass GigaChatClient, kotoryi predostavliaet dostup ko vsem neobkhodimym metodam raboty s API.
Podrobnee o metodakh i parametrakh klassa -- v dokumentatsii klassa.
Sposoby autentifikatsii
Dlia autentifikatsii ispol'zuetsia metod AuthClient.builder(), kotoryi vyzyvaetsia pri sozdanii ekzempliara GigaChatClient i vozvrashchaet ekzempliar AuthClientBuilder
Metody AuthClientBuilder pozvoliaiut vypolnit' autentifikatsiiu s pomoshch'iu:
- kliucha avtorizatsii;
- tokena dostupa;
- klientskogo identifikatora (Client ID) i kliucha (Client Secret);
- TLS-sertifikata;
- imeni pol'zovatelia i parolia.
Autentifikatsiia s pomoshch'iu kliucha avtorizatsii
Pri autentifikatsii s pomoshch'iu kliucha avtorizatsii v metode scope() nuzhno peredat' versiiu API, k kotoroi budut vypolniat'sia zaprosy.
Vozmozhnye znacheniia:
GIGACHAT_API_PERS-- versiia API dlia fizicheskikh lits;GIGACHAT_API_B2B-- versiia API dlia IP i iurlits pri rabote po predoplate.GIGACHAT_API_CORP-- versiia API dlia IP i iurlits pri rabote po postoplate.
Po umolchaniiu zaprosy peredaiutsia v versiiu dlia fizicheskikh lits.
.authClient(AuthClient.builder()
.withOAuth(OAuthBuilder.builder()
// Versiia API
.scope(Scope.GIGACHAT_API_B2B)
.authKey("kliuch_avtorizatsii")
.build())
.build())
.build();
Tip
Podrobno o tom, kak sozdat' proekt GigaChat API -- v ofitsial'noi dokumentatsii, v razdelakh Bystryi start dlia fizicheskikh lits i Bystryi start dlia IP i iuridicheskikh lits.
Autentifikatsiia s pomoshch'iu tokena dostupa
Token dostupa (access token) poluchaetsia v obmen na kliuch avtorizatsii v zaprose POST /api/v2/oauth.
Token deistvuet v techenie 30 minut i soderzhit dannye o versii API, k kotoroi predostavliaetsia dostup, poetomu ee ne nuzhno ukazyvat' dopolnitel'no.
.authClient(AuthClient.builder()
.withProvidedTokenAuth("token_dostupa").build())
.build();
Autentifikatsiia s pomoshch'iu klientskogo identifikatora i kliucha
Kak i pri ispol'zovanii kliucha avtorizatsii, pri autentifikatsii s pomoshch'iu Client ID i Client Secret nuzhno ukazyvat' versiiu API, k kotoroi budut vypolniat'sia zaprosy.
.authClient(AuthClient.builder()
.withOAuth(OAuthBuilder.builder()
.scope(Scope.GIGACHAT_API_B2B)
.clientId("test-client-id")
.clientSecret("test-scope")
.build())
.build())
.logRequests(true)
.logResponses(true)
.build();
Autentifikatsiia s pomoshch'iu imeni pol'zovatelia i parolia
.authClient(AuthClient.builder()
.withUserPassword(
UserPasswordAuthBuilder.builder()
.user("user")
.password("password")
.authApiUrl("https://api.ru/v1")
.scope(Scope.GIGACHAT_API_PERS)
.build()).build()
)
.build();
Autentifikatsiia s pomoshch'iu TLS-sertifikata
.authClient(AuthClient.builder()
.withCertificatesAuth(new JdkHttpClientBuilder()
.httpClientBuilder(HttpClient.newBuilder())
.ssl(SSL.builder()
.truststorePassword("password")
.trustStoreType("PKCS12")
.truststorePath("/Users/test/ssl/client_truststore.p12")
.keystorePassword("password")
.keystoreType("PKCS12")
.keystorePath("/Users/test/ssl/client_keystore.p12")
.build())
.build())
.build())
.build();
Ustanovka kornevogo sertifikata NUTs Mintsifry
Chtoby biblioteka GigaChat mogla peredavat' zaprosy v GigaChat API, vam nuzhno ustanovit' kornevoi sertifikat NUTs Mintsifry.
Dlia etogo pereidite v papku JAVA_HOME/bin i vypolnite v konsoli, zapushchennoi ot imeni administratora, komandu:
Pri neobkhodimosti vy mozhete otkliuchit' proverku sertifikatov.
Dlia etogo, sozdaite ekzempliar GigaChatClient, s parametrom verifySslCerts(false):
// Otkliuchenie proverki sertifikatov
.verifySslCerts(false)
.authClient(AuthClient.builder()
.withOAuth(OAuthBuilder.builder()
.scope(Scope.GIGACHAT_API_PERS)
.authKey("kliuch_avtorizatsii")
.build())
.build())
.build();
Warning
Otkliuchenie proverki sertifikatov snizhaet bezopasnost' obmena dannymi.