Skip to content

yandex-cloud/yandex-cloud-ml-sdk

Repository files navigation

Yandex Cloud ML SDK

This Python library provides a simple and efficient software development kit (SDK) for interacting with Yandex Cloud AI Studio services. The SDK abstracts away the complexities of raw gRPC and REST calls, making it easier for developers to integrate cloud functionality into their applications seamlessly.

Features

Yandex Cloud ML SDK offers a comprehensive set of high‑level abstractions that map directly to the capabilities exposed by Yandex Cloud. The current feature set includes:

  • Assistants
    • Create, list, update and delete AI assistants.
    • Create and track execution of assistant runs, retrieve logs and results.
  • Completions
    • Text generation (completion) models with streaming support.
    • Chat usage tracking, tool calls (function calling for example).
  • Chat
    • OpenAI‑compatible chat API (sdk.chat) designed to work seamlessly with the rest of the Yandex Cloud ML SDK.
    • Send and receive messages, stream responses, and work with tool calls in a unified way.
  • Image generation
    • Generate images via YandexART models.
  • Text embeddings
    • Compute dense vector embeddings for arbitrary text.
  • Text classifiers
    • Run multi‑class, multi‑label and binary classifiers.
  • Files
    • Upload, download, list and delete files stored in Yandex Cloud AI Studio.
  • Threads
    • Organize conversations into threads, retrieve messages, and post new messages.
  • Search API
    • Generative, web, image and by image search.
  • Search indexes
    • Create, update, delete and query text, vector and hybrid search indexes.

Also there is some cross-domain functionality for features above:

  • Batch processing
    • Run long‑running batch tasks with automatic polling.
  • Tools
    • Built‑in tools such as Generative Search Tool, Function Tool and Search Index Tool that can be used in Assistants, Completions, and Chat, providing a unified way to extend functionality across the SDK.
  • Tuning
    • Fine‑tune models with configurable optimizers, schedulers and other hyper‑parameters.
  • Datasets
    • Manage dataset lifecycle, upload data, validate schemas, and perform task‑type specific operations.

Additionally, Yandex Cloud ML SDK offers:

  • Authentication
    • Automatic selection of authentication method (API key, IAM token, OAuth token, CLI, metadata service, etc.).
  • Error handling & retries
    • Rich exception hierarchy, retry policies, and configurable gRPC interceptors.
  • Async & sync support
    • Every high‑level service is available in both asynchronous and synchronous variants.
  • LangChain integration
    • Ready‑to‑use wrappers for LangChain (.langchain()) with an optional extra installation.

Installation

You can install the library via pip:

pip install yandex-cloud-ml-sdk

SDK Reference

https://yandex.cloud/docs/ai-studio/sdk-ref/

Usage

Here's a basic example of how to use the SDK:

from yandex_cloud_ml_sdk import YCloudML

sdk = YCloudML(folder_id="...", auth="<APIKey/IAMToken/SomethingElse>")

model = sdk.models.completions('yandexgpt')
model = model.configure(temperature=0.5)
result = model.run("foo")

for alternative in result:
    print(alternative)

For more usage examples look into examples folder.

LangChain integration

To use LangChain integration, install yandex-cloud-ml-sdk package with a langchain extra:

pip install yandex-cloud-ml-sdk[langchain]

Usage example:

from yandex_cloud_ml_sdk import YCloudML
from langchain_core.messages import AIMessage, HumanMessage

sdk = YCloudML(folder_id="...", auth="<APIKey/IAMToken/SomethingElse>")

model = sdk.models.completions('yandexgpt').langchain()

langchain_result = model.invoke([
    HumanMessage(content="hello!"),
    AIMessage(content="Hi there human!"),
    HumanMessage(content="Meow!"),
])

For more LangChain integration examples look into examples/langchain folder.