Skip to content

npatsakula/gigachat-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GigaChat Rust SDK

Crates.io Documentation License: MIT

Rust SDK для работы с GigaChat API от Сбера - доступ к русскоязычным LLM.

Возможности

  • Поддержка Sber API:
    • Генерация текста.
      • Синхронная.
      • Потоковая.
    • Генерация эмбеддингов.
    • Детекция LLM-сгенерированного текста.
    • Пакетная обработка.
    • Обработка медиа.
    • Поддержка функций.
  • Конфигурация клиента:
    • Автоматическое использование сертификатов мин.цифры.
    • Возможности для конфигурации корпоративного прокси-сервера.
    • OAuth авторизация с автоматической ротацией токенов.
  • Средства интроспекции:
    • Поддержка сквозной трассировки при помощи tracing.
    • Поддержка перехвата HTTP запросов.

Getting started

Добавьте в ваш Cargo.toml:

[dependencies]
gigachat-rust = "0.1.0"
tokio = { version = "1", features = ["full"] }

Запуск примеров

Аутентификация

Для использования GigaChat API вам необходимо получить токен аутентификации от Сбера. Установите его как переменную окружения:

export GIGACHAT_TOKEN="TOKEN"

Примеры использования

Вместо встраивания примеров кода в README, мы предоставляем подробные рабочие примеры в директории examples:

Пример Описание Файл
Генерация текста Демонстрирует генерацию текста с помощью GigaChat generate.rs
Текстовые эмбеддинги Пример создания векторных представлений текста embeddings.rs
Проверка текста Пример проверки текста на авторство (ИИ или человек) check.rs
Работа с функциями Демонстрирует использование функций в GigaChat function.rs

Конфигурация

Опции Client Builder

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;
use gigachat_rust::{client::GigaChatClientBuilder, generation::{Model, structures::Message}};

async fn example() -> Result<()> {
    let token = std::env::var("GIGACHAT_TOKEN")?;
    let client = GigaChatClientBuilder::new(token).build().await?;

    let response = client
        .generate()
        .with_model(Model::GigaChat2Lite)
        .with_messages(vec![Message::user("Расскажи про Бесконечный Тупик Галковского.")])
        .execute()
        .await?;

    println!("Success: {response:?}");

    Ok(())
}

About

Rust GigaChat client.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages