https://github.com/ai-forever/spring-ai-gigachat
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (2.9%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: ai-forever
- Language: Java
- Default Branch: main
- Size: 2.04 MB
Statistics
- Stars: 27
- Watchers: 6
- Forks: 11
- Open Issues: 4
- Releases: 4
Metadata Files
README.md
spring-ai-gigachat
Данная библиотека позволяет интегрироваться с GigaChat API с использованием фреймворка Spring AI.
Реализованы:
* Вызов Chat модели, включая:
* * потоковую обработку (streaming)
* * вызов внешних функций, в том числе доп.возможности GigaChat (fewShotExample/returnParameters и т.д.) - подробнее в tools.md
* работу с файлами и изображениями
* Вызов Embedding модели
* Observability
Требования
- Java 17+
- Spring Boot 3.4/3.5
Быстрый старт
Для работы с библиотекой вам понадобится ключ авторизации API.
Чтобы получить ключ авторизации: 1. Создайте проект GigaChat API в личном кабинете Studio. 2. В интерфейсе проекта, в левой панели выберите раздел Настройки API. 3. Нажмите кнопку Получить ключ.
В открывшемся окне скопируйте и сохраните значение поля Client Secret. Этот ключ отображается только один раз и не хранится в личном кабинете. При компрометации или утере ключа авторизации вы можете сгенерировать его повторно.
1) Подключите в ваш pom.xml зависимость
xml
<dependency>
<groupId>chat.giga</groupId>
<artifactId>spring-ai-starter-model-gigachat</artifactId>
<version>1.0.3</version>
</dependency>
2) Пропишите параметры подключения к GigaChat в application.yml:
yaml
spring:
ai:
gigachat:
auth:
bearer:
api-key: ${GIGACHAT_API_KEY} # Ваш Authorization Key, полученный в личном кабинете GigaChat
scope: GIGACHAT_API_PERS # доступны также GIGACHAT_API_B2B, GIGACHAT_API_CORP
unsafe-ssl: true # отключает проверку серверных сертификатов, не рекомендуется использовать в production!
3) Создайте Main-класс:
```java @SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); }
@Bean
public CommandLineRunner runner(ChatClient.Builder builder) {
return args -> {
ChatClient chatClient = builder.build();
String response = chatClient.prompt("Расскажи шутку").call().content();
System.out.println(response);
};
}
} ```
Конфигурация
В application.yml можно задать дефолтные параметры для запроса к API GigaChat, а также параметры для подключения и авторизации.
Описание параметров можно найти в официальной документации.
yaml
spring:
ai:
gigachat:
chat:
options:
# дефолтные параметры для обращения к API GigaChat.
model: GigaChat # GigaChat по дефолту, список доступных моделей - https://developers.sber.ru/docs/ru/gigachat/models
temperature: 0.5 # null по дефолту
top-p: 0.5 # null по дефолту
max-tokens: 200 # null по дефолту
repetition-penalty: 1 # null по дефолту
update-interval: 0 # null по дефолту
embedding:
options:
model: Embeddings # Embeddings по дефолту
dimensions: 1024 # null по дефолту, вычисляется при первом обращении к Embedding-модели
Способы авторизации
По Authorization Key (apiKey)
Пример application.yml для авторизации по Authorization Key:
yaml
spring:
ai:
gigachat:
auth:
bearer:
api-key: <ваш_authorization_key> # Ваш Authorization Key, можно посмотреть в личном кабинете GigaChat в разделе "Настройки API" в вашем проекте
scope: GIGACHAT_API_PERS # Можно посмотреть в личном кабинете GigaChat в разделе "Настройки API" в вашем проекте
Также необходимо настроить доверие сертифкатам НУЦ Минцифры или отключить проверку серверных сертификатов (не рекомендуется!).
По Client ID + Client Secret
Пример application.yml для авторизации по Client ID и Client Secret:
yaml
spring:
ai:
gigachat:
auth:
bearer:
client-id: <ваш_client_id> # Можно посмотреть в личном кабинете GigaChat в разделе "Настройки API" в вашем проекте
client-secret: <ваш_client_secret> # Можно посмотреть в личном кабинете GigaChat в разделе "Настройки API" в вашем проекте
scope: GIGACHAT_API_PERS
Также необходимо настроить доверие сертифкатам НУЦ Минцифры или отключить проверку серверных сертификатов (не рекомендуется!).
С помощью TLS-сертификатов
Пример application.yml для подключения к GigaChat с помощью TLS-сертификатов:
yaml
spring:
ai:
gigachat:
auth:
certs:
certificate: file:/path/to/tls.crt # Путь до вашего сертификата. Если у вас терминация TLS настроена на Egress-gateway, то можно пропустить этот параметр
private-key: file:/path/to/tls.key # Путь до вашего сертификата. Если у вас терминация TLS настроена на Egress-gateway, то можно пропустить этот параметр
ca-certs: file:/path/to/ca.crt # Путь до ваших доверенных сертификатов. Если у вас терминация TLS настроена на Egress-gateway, то можно пропустить этот параметр
scope: GIGACHAT_API_PERS
Пример application.yml для подключения к GigaChat с помощью TLS-сертификатов, объявленных через Spring Boot SSL Bundles:
yaml
spring:
ai:
gigachat:
auth:
certs:
ssl-bundle: "gigachat-ssl-bundle" # Название вашего ssl-bundle
scope: GIGACHAT_API_PERS
ssl:
bundle:
gigachat-ssl-bundle:
keystore:
private-key: file:/path/to/tls.key # Путь до вашего сертификата
certificate: file:/path/to/tls.crt # Путь до вашего сертификата
truststore:
certificates: file:/path/to/ca.crt # Путь до ваших доверенных сертификатов
Настройка доверия сертификатам НУЦ Минцифры
Для настройки доверия сертификатам НУЦ Минцифры, необходимо:
1) Скачать сертификат https://gu-st.ru/content/Other/doc/russiantrustedroot_ca.cer
2) Указать путь до сертификата application.yml:
yaml
spring:
ai:
gigachat:
auth:
certs:
ca-certs: file:/path/to/russian_trusted_root_ca.cer
Примеры
Примеры работы с библиотекой - в отдельном модуле spring-ai-gigachat-example.
Owner
- Name: AI Forever
- Login: ai-forever
- Kind: organization
- Location: Armenia
- Repositories: 60
- Profile: https://github.com/ai-forever
Creating ML for the future. AI projects you already know. We are non-profit organization with members from all over the world.
GitHub Events
Total
- Create event: 11
- Release event: 1
- Issues event: 21
- Watch event: 24
- Issue comment event: 22
- Push event: 26
- Pull request review event: 18
- Pull request review comment event: 9
- Pull request event: 20
- Fork event: 7
Last Year
- Create event: 11
- Release event: 1
- Issues event: 21
- Watch event: 24
- Issue comment event: 22
- Push event: 26
- Pull request review event: 18
- Pull request review comment event: 9
- Pull request event: 20
- Fork event: 7
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Linar Abzaltdinov | a****v@g****m | 11 |
| a-simeshin | 8****n | 2 |
| d.sviridov | d****a@y****u | 1 |
| Sergey Basharkin | r****l@b****u | 1 |
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 17
- Total pull requests: 24
- Average time to close issues: 16 days
- Average time to close pull requests: 1 day
- Total issue authors: 5
- Total pull request authors: 6
- Average comments per issue: 0.53
- Average comments per pull request: 0.29
- Merged pull requests: 18
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 17
- Pull requests: 24
- Average time to close issues: 16 days
- Average time to close pull requests: 1 day
- Issue authors: 5
- Pull request authors: 6
- Average comments per issue: 0.53
- Average comments per pull request: 0.29
- Merged pull requests: 18
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- linarkou (6)
- a-simeshin (6)
- OlegNyr (3)
- dmitry-sviridov (1)
- yvi1 (1)
Pull Request Authors
- linarkou (16)
- a-simeshin (3)
- SergeyBasharkin (2)
- dmitry-sviridov (1)
- Hakky54 (1)
- callmesensey (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 4
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 16
repo1.maven.org: chat.giga:spring-ai-gigachat
GigaChat models support
- Homepage: https://github.com/ai-forever/spring-ai-gigachat
- Documentation: https://appdoc.app/artifact/chat.giga/spring-ai-gigachat/
- License: Apache 2.0
-
Latest release: 1.0.3
published 11 months ago
Rankings
repo1.maven.org: chat.giga:spring-ai-gigachat-parent
GigaChat models support parent
- Homepage: https://github.com/ai-forever/spring-ai-gigachat
- Documentation: https://appdoc.app/artifact/chat.giga/spring-ai-gigachat-parent/
- License: Apache 2.0
-
Latest release: 1.0.3
published 11 months ago
Rankings
repo1.maven.org: chat.giga:spring-ai-starter-model-gigachat
GigaChat models support Spring Boot Starter
- Homepage: https://github.com/ai-forever/spring-ai-gigachat
- Documentation: https://appdoc.app/artifact/chat.giga/spring-ai-starter-model-gigachat/
- License: Apache 2.0
-
Latest release: 1.0.3
published 11 months ago
Rankings
repo1.maven.org: chat.giga:spring-ai-autoconfigure-model-gigachat
GigaChat models support autoconfiguration
- Homepage: https://github.com/ai-forever/spring-ai-gigachat
- Documentation: https://appdoc.app/artifact/chat.giga/spring-ai-autoconfigure-model-gigachat/
- License: Apache 2.0
-
Latest release: 1.0.3
published 11 months ago
Rankings
Dependencies
- org.projectlombok:lombok provided
- io.github.hakky54:sslcontext-kickstart-for-pem
- org.springframework.ai:spring-ai-core
- org.springframework.ai:spring-ai-retry
- org.springframework:spring-web
- org.springframework:spring-webflux
- ai.forever.gigachat:spring-ai-gigachat-spring-boot-starter 1.0.0-M5-SNAPSHOT
- org.projectlombok:lombok
- org.springframework.boot:spring-boot-starter-actuator
- org.springframework.boot:spring-boot-starter-web
- org.springframework.boot:spring-boot-starter-webflux
- actions/checkout v4 composite
- actions/setup-java v3 composite
- actions/checkout v4 composite
- actions/setup-java v3 composite
- actions/checkout v4 composite
- actions/setup-java v4 composite
- org.projectlombok:lombok provided
- chat.giga:spring-ai-gigachat
- org.springframework.ai:spring-ai-autoconfigure-model-chat-observation
- org.springframework.ai:spring-ai-autoconfigure-model-embedding-observation
- org.springframework.ai:spring-ai-autoconfigure-model-tool
- org.springframework.ai:spring-ai-autoconfigure-retry
- org.springframework.boot:spring-boot-configuration-processor
- org.springframework.boot:spring-boot-starter
- org.springframework.boot:spring-boot-starter-web test
- chat.giga:spring-ai-autoconfigure-model-gigachat
- chat.giga:spring-ai-gigachat
- org.springframework.ai:spring-ai-autoconfigure-model-chat-client
- org.springframework.ai:spring-ai-autoconfigure-model-chat-memory
- org.springframework.boot:spring-boot-starter