Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ai-forever/gigachat-java

Repository files navigation

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:

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

implementation("chat.giga:gigachat-java:0.1.14")

Maven

<dependency>
<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:

  1. Sozdaite proekt GigaChat API v lichnom kabinete Studio.
  2. V interfeise proekta, v levoi paneli vyberite razdel Nastroiki API.
  3. 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:

//Ukazhite kliuch avtorizatsii, poluchennyi v lichnom kabinete, v interfeise proekta GigaChat API
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.

GigaChatClient client = GigaChatClient.builder()
.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.

GigaChatClient client = GigaChatClient.builder()
.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.

GigaChatClient client = GigaChatClient.builder()
.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

GigaChatClient client = GigaChatClient.builder()
.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

GigaChatClient client = GigaChatClient.builder()
.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:

keytool -importcert -storepass changeit -noprompt -alias rus_root_ca -cacerts -trustcacerts -file /<put'_k_failu_sertifikata>/russian_trusted_root_ca_pem.crt

Pri neobkhodimosti vy mozhete otkliuchit' proverku sertifikatov. Dlia etogo, sozdaite ekzempliar GigaChatClient, s parametrom verifySslCerts(false):

GigaChatClient client = GigaChatClient.builder()
// 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.

About

No description, website, or topics provided.

Resources

Readme

Stars

Watchers

Forks

Packages

Languages