Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Библиотека Python, позволяющая GigaChain обращаться к GigaChat — нейросетевой модели, которая умеет вести диалог, писать код, создавать тексты и картинки по запросу.
Обмен данными с сервисом обеспечивается с помощью GigaChat API. О том как получить доступ к API читайте в официальной документации.
Библиотека поддерживает обработку потоковой передачи токенов, а также работу в синхронном или в асинхронном режиме.
Библиотека позволяет выполнить точный подсчет токенов в тексте с помощью GigaChat API.
[!WARNING] В версии 0.1.14 добавлена поддержка функций (functions). Данная опция находится на этапе тестирования и пока доступна только для некоторых моделей, а протокол может быть изменен в следующих версиях.
Библиотеку можно установить с помощью pip:
pip install gigachat
Перед использованием модуля:
В личном кабинете нажмите кнопку Сгенерировать новый Client Secret.
Откроется окно Новый Client Secret.
В открывшемся окне, скопируйте и сохраните токен, указанный в поле Авторизационные данные.
[!WARNING] Не закрывайте окно, пока не сохраните токен. В противном случае его нужно будет сгенерировать заново.
Пример показывает как импортировать библиотеку в GigaChain и использовать ее для обращения к GigaChat:
from gigachat import GigaChat
# Используйте токен, полученный в личном кабинете из поля Авторизационные данные
with GigaChat(credentials=<авторизационные данные>, verify_ssl_certs=False) as giga:
response = giga.chat("Какие факторы влияют на стоимость страховки на дом?")
print(response.choices[0].message.content)
Авторизация с помощью токена (в личном кабинете из поля Авторизационные данные):
giga = GigaChat(credentials=...)
# Личное пространство
giga = GigaChat(credentials=..., scope="GIGACHAT_API_PERS")
# Корпоративное пространство
giga = GigaChat(credentials=..., scope="GIGACHAT_API_CORP")
Авторизация с помощью логина и пароля:
giga = GigaChat(
base_url="https://gigachat.devices.sberbank.ru/api/v1",
user=...,
password=...,
)
Предварительная авторизация (в случае, если необходимо получить временный токен и авторизоваться до отправки запросов; по умолчанию, библиотека автоматически получает временный токен при первом запросе к API):
giga = GigaChat(
base_url="https://gigachat.devices.sberbank.ru/api/v1",
user=...,
password=...,
)
giga.get_token()
Взаимная аутентификация по протоколу TLS (mTLS):
giga = GigaChat(
base_url="https://gigachat.devices.sberbank.ru/api/v1",
ca_bundle_file="certs/ca.pem", # chain_pem.txt
cert_file="certs/tls.pem", # published_pem.txt
key_file="certs/tls.key",
key_file_password="123456",
)
Авторизация с помощью временного токена
С помощью GigaChain вы можете обращаться к различным моделям, которые предоставляет GigaChat.
Для этого передайте название модели в параметре model
:
giga = GigaChat(model="GigaChat-Pro")
Полный список доступных моделей можно получить с помощью запроса GET /models
к GigaChat API.
[!WARNING] Стоимость запросов к разным моделям отличается. Подробную информацию о тарификации запросов к той или иной модели вы ищите в официальной документации.
Для подсчета количества токенов в запросах используйте метод tokens_count(["текст1", "текст2", ...])
.
Метод выполняет запрос POST /tokens/count
к GigaChat API и возвращает список объектов с информацией о количестве токенов в каждой строке.
Эмбеддинг (англ. embedding) — это вектор, представленный в виде массива чисел, который получается в результате преобразования данных, например, текста. Комбинация этих чисел, составляющих вектор, действует как многомерная карта для измерения сходства.
Для получения эмбеддингов используйте метод embeddings("текст")
.
[!WARNING] Функция получения эмбеддингов находится на этапе тестирования и может быть недоступна некоторым категориям пользователей.
Для отключения проверки сертификатов передайте параметр verify_ssl_certs=False
:
giga = GigaChat(verify_ssl_certs=False)
[!WARNING] Отключение проверки сертификатов снижает безопасность обмена данными.
Для установка корневого сертификата НУЦ Минцифры выполните команду:
curl -k "https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer" -w "\n" >> $(python -m certifi)
Чтобы задать настройки с помощью переменных окружения, используйте префикс GIGACHAT_
.
Авторизация с помощью токена и отключение проверки сертификатов:
export GIGACHAT_CREDENTIALS=...
export GIGACHAT_SCOPE=...
export GIGACHAT_VERIFY_SSL_CERTS=False
Авторизация с помощью логина и пароля:
export GIGACHAT_BASE_URL=https://gigachat.devices.sberbank.ru/api/v1
export GIGACHAT_USER=...
export GIGACHAT_PASSWORD=...
FAQs
GigaChat. Python-library for GigaChain and LangChain
We found that gigachat demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.