| Crates.io | gigachat-rust |
| lib.rs | gigachat-rust |
| version | 0.1.0-alpha.0 |
| created_at | 2025-09-14 14:36:38.646654+00 |
| updated_at | 2025-09-14 14:36:38.646654+00 |
| description | Unofficial Rust SDK for Gigachat API |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1838850 |
| size | 82,498 |
Rust SDK для работы с GigaChat API от Сбера - доступ к русскоязычным LLM.
tracing.Добавьте в ваш Cargo.toml:
[dependencies]
gigachat-rust = "0.1.0"
tokio = { version = "1", features = ["full"] }
Для использования GigaChat API вам необходимо получить токен аутентификации от Сбера. Установите его как переменную окружения:
export GIGACHAT_TOKEN="ваш-токен"
Вместо встраивания примеров кода в README, мы предоставляем подробные рабочие примеры в директории examples:
| Пример | Описание | Файл |
|---|---|---|
| Генерация текста | Демонстрирует генерацию текста с помощью GigaChat | generate.rs |
| Текстовые эмбеддинги | Пример создания векторных представлений текста | embeddings.rs |
GigaChatClientBuilder позволяет настраивать клиент:
use gigachat_rust::client::GigaChatClientBuilder;
use reqwest::Proxy;
let client = GigaChatClientBuilder::new(token)
// Настройка URL аутентификации при необходимости
// .auth_url("https://ваш-auth-url.com")
// Настройка базового URL при необходимости
// .base_url("https://ваш-base-url.com")
// Настройка прокси при необходимости
// .proxy(Proxy::http("http://proxy:8080").unwrap())
// Добавление заголовков по умолчанию
// .default_header("X-Custom-Header", "custom-value")
.build()
.await?;
Все вызовы API возвращают тип Result, что делает обработку ошибок прямолинейной:
use anyhow::Result;
async fn example() -> Result<()> {
let token = std::env::var("GIGACHAT_TOKEN")?;
let client = GigaChatClientBuilder::new(token).build().await?;
let response = match client
.generate()
.messages(vec![Message::user("Привет, мир!")])
.execute()
.await
.context("Failed to generate response")?;
println!("Успех: {response:?}");
Ok(())
}
Типичные ошибки:
Этот проект лицензирован по лицензии MIT - смотрите файл LICENSE для подробностей.