Перейти к основному содержимому

Caila Python client

Обращаться к сервисам в Caila из программы на Python удобнее с помощью специальной клиентской библиотеки. Caila SDK можно использовать для:

  • Обращения к сервисам на платформе Caila
  • Разработки новых сервисов для Caila
  • Написания CI/CD пайплайнов и сложных клиентских приложений

SDK размещено в свободном доступе на GitHub: https://github.com/just-ai/mlp-python-sdk

Примеры кода с использованием SDK здесь: https://github.com/just-ai/mlp-python-examples

Подробнее про SDK можно прочитать в соответствующем разделе.

А в этой статье мы рассмотрим несколько простых примеров, как вызвать Caila-сервис из программы на Python.

Пример вызова через MlpClientSDK

Установите зависимость на mlp-python-sdk.

pip3 install git+https://git@github.com/just-ai/mlp-python-sdk.git@v1.0.0

Установите значение переменной окружения MLP_CLIENT_TOKEN — поместите в неё API-ключ для доступа к Caila.

export MLP_CLIENT_TOKEN=<API-токен>

Пример обращения к сервису vectorizer-caila-roberta через стандартный Caila GRPC клиент.

# Инициализация клиента
from mlp_sdk.transport.MlpClientSDK import MlpClientSDK
sdk = MlpClientSDK()
sdk.init()

# Определяем параметры сервиса, к которому обращаемся
author = "just-ai"
service = "vectorizer-caila-roberta"
# API-ключ будет взят из переменной окружения MLP_CLIENT_TOKEN

# Создаём объект с параметрами запроса. Для стандартных типов сервисов
# SDK содержит формальное описание дата-классов. Если для нужного вам сервиса их нет,
# то можно формировать JSON-объект запроса любым способом
from mlp_sdk.types import TextsCollection
req = TextsCollection(texts=["hello"])

# Отправка запроса и вывод ответа
res = sdk.predict(account=author, model=service, data=req.json())
print(res)

# Завершение работы клиента
sdk.shutdown()

Пример вызова через MlpRestClient

Установите зависимость на mlp-python-sdk.

pip3 install git+https://git@github.com/just-ai/mlp-python-sdk.git@v1.0.0

Пример обращения к сервису openai-proxy с использованием REST-клиента.

from mlp_api.api.process_endpoint_api import ProcessEndpointApi
from mlp_api.models.predict_request_data import PredictRequestData
from mlp_sdk.transport.MlpClientSDK import MlpRestClient

mlp_api_key = "<PUT API KEY HERE>"
account_id = "just-ai"
model_name = "openai-proxy"
rest_client = MlpRestClient(url="https://caila.io/", token=mlp_api_key)
model = ProcessEndpointApi(rest_client)

request = {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "hello"}],
}
response = model.predict_with_config(
account_id,
model_name,
predict_request_data=PredictRequestData(data=request),
)
print(response)

Обратите внимание, что к GPT-сервисам можно обращаться и через OpenAI-совместимый интерфейс с помощью привычных библиотек типа Langchain. Читайте об этом в разделе OpenAI Adapter.

Какой вариант использовать

  • Использование MlpClientSDK является предпочтительным способом ввиду чуть большей производительности и надёжности.
  • Используйте стандартные сторонние библиотеки типа openai-python или langchain, если вы их уже используете и переходите на Caila для использования новых моделей.
  • Используйте MlpRestClient для приложений, которые используют не только Predict API, но и другие эндпоинты. Например, в составе пайплайнов обучения моделей или в CI/CD пайплайнах.