Рантайм Python 3.12 · Inquir Compute

Python 3.12 serverless-функции для API, пайплайнов и ML-инструментов

Python 3.12 serverless-функции работают в изолированных контейнерах: numpy, pandas, scikit-learn и любой пакет из PyPI работают из коробки. Подключайте функции к HTTP-маршрутам для инструментов AI-агентов или шагам пайплайна для ETL и ML-инференса. Ночные запуски задаются расписанием пайплайна.

Обновлено: 2026-06-28

Суть ответа

Python 3.12 serverless-функции для API, пайплайнов и ML-инструментов. Inquir запускает Python 3.12 в Docker-контейнерах. Пакеты из PyPI добавляются через слои функции (requirements.txt в UI слоя); чистые Python-зависимости могут жить прямо в бандле функции. numpy, pandas, scikit-learn и библиотеки с C-расширениями собираются при сборке слоя так же, как локально.

Когда подходит

  • В serverless-рантайме нужны numpy, pandas, scikit-learn или любая ML-библиотека с C-расширениями.
  • Вы строите бэкенды инструментов AI-агентов на Python, которым нужны авторизация HTTP и пайплайны с расписаниями и асинхронным выполнением на одной платформе.

На что обратить внимание

  • Lambda Layers для numpy, pandas и ML-библиотек добавляют возни с упаковкой: лимит платформы в 250 МБ в распакованном виде заставляет аккуратно урезать каждый релиз.
  • Сшивать API Gateway + Lambda + CloudWatch + EventBridge ради бэкенда инструментов AI-агента на Python — заметная церемония для команды, которой нужны просто HTTP-эндпоинты с авторизацией.

Где edge-рантаймы и managed-сервисы ограничивают Python

Edge-рантаймы Python не поддерживают вовсе. Lambda и GCP Cloud Functions поддерживают, но большие деревья зависимостей бьют по холодному старту: numpy, pandas и scikit-learn без аккуратной работы со слоями уводят его в секунды.

AI-командам Python часто нужен для бэкендов инструментов: вызвать OpenAI, прогнать инференс scikit-learn, обработать датафреймы или запустить пайплайны Hugging Face — всему этому нужен настоящий контейнер Python 3.12 с полной поддержкой PyPI.

Почему Python только на Lambda создаёт трение

Lambda Layers для numpy, pandas и ML-библиотек добавляют возни с упаковкой: лимит платформы в 250 МБ в распакованном виде заставляет аккуратно урезать каждый релиз.

Сшивать API Gateway + Lambda + CloudWatch + EventBridge ради бэкенда инструментов AI-агента на Python — заметная церемония для команды, которой нужны просто HTTP-эндпоинты с авторизацией.

Полный Python 3.12 за одним шлюзом

Inquir запускает Python 3.12 в Docker-контейнерах. Пакеты из PyPI добавляются через слои функции (requirements.txt в UI слоя); чистые Python-зависимости могут жить прямо в бандле функции. numpy, pandas, scikit-learn и библиотеки с C-расширениями собираются при сборке слоя так же, как локально.

Одна и та же Python-функция может быть эндпоинтом инструмента AI-агента (HTTP-маршрут с API-ключом), ночной ETL-задачей (пайплайн по расписанию) или стадией LLM-пайплайна (фоновый шаг) — один обработчик, три пути вызова, одна наблюдаемость.

Возможности рантайма Python 3.12

Вся экосистема PyPI

numpy, pandas, scikit-learn, transformers, Pillow, httpx, psycopg2 и любой пакет с C-расширениями, который собирается на Python 3.12.

Бэкенды инструментов AI-агентов

Выставляйте ML-функции на Python как HTTP-эндпоинты с авторизацией: вызывайте OpenAI, гоняйте инференс, делайте запросы к датафреймам и возвращайте структурированный JSON оркестраторам агентов.

Ночной ETL и обработка данных

Добавьте Python-функции в шаги пайплайна по расписанию: читайте из API, трансформируйте через pandas, пишите в базы — история запусков и ретраи видны в консоли.

Стадии LLM-пайплайнов

Используйте Python-шаги внутри многостадийных пайплайнов для retrieval, генерации эмбеддингов, модерации или суммаризации — секреты и слои общие для всех стадий.

Как задеплоить Python 3.12 serverless-функцию

1

Написать обработчик

Объявите def handler(event, context) в файле .py. event.body — строка; при необходимости разберите её через json.loads.

2

Объявить зависимости

Создайте слой с requirements.txt для numpy, pandas и других пакетов из PyPI. Подключите слой к функции — без Dockerfile и без лимита на размер слоя в стиле Lambda.

3

Подключить маршруты шлюза и шаги пайплайна

Привяжите функцию к HTTP-маршруту или шагу пайплайна. Расписание и фоновое выполнение принадлежат пайплайну; обработчик остаётся общим.

Обработчик на Python: инструмент AI-агента и ETL-пайплайн по расписанию

event.body приходит JSON-строкой — разбирайте через json.loads. Для ответов на HTTP-маршрутах возвращайте {"statusCode": ..., "body": json.dumps(...)}. Секреты подставляются как переменные окружения.

tools/classify.py (эндпоинт инструмента AI-агента)
import json
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])  # injected from workspace secrets

def handler(event, context):
    body = json.loads(event.get("body") or "{}")
    text = body.get("text")
    if not text:
        return {"statusCode": 400, "body": json.dumps({"error": "text required"})}
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": f"Classify the sentiment of: {text}"}],
    )
    return {"statusCode": 200, "body": json.dumps({"sentiment": response.choices[0].message.content})}
jobs/nightly-sync.py (шаг пайплайна по расписанию)
import json
import os
import pandas as pd
import psycopg2

def handler(event, context):
    conn = psycopg2.connect(os.environ["DATABASE_URL"])
    df = pd.read_sql("SELECT * FROM events WHERE processed = false LIMIT 1000", conn)
    # transform and upsert
    results = []
    for _, row in df.iterrows():
        result = process_row(row)
        results.append(result)
    conn.close()
    return {"processed": len(results)}

Когда Python 3.12 serverless-функции подходят лучше всего

Когда это уместно

  • В serverless-рантайме нужны numpy, pandas, scikit-learn или любая ML-библиотека с C-расширениями.
  • Вы строите бэкенды инструментов AI-агентов на Python, которым нужны авторизация HTTP и пайплайны с расписаниями и асинхронным выполнением на одной платформе.

Когда лучше выбрать другое

  • Логика на Python крошечная, а нужна только глобальная доставка на edge — на большинстве платформ с edge-изолятами Python недоступен.

Частые вопросы

Какая версия Python в Inquir?

Python 3.12. Поддерживаются стандартная библиотека, asyncio и все синхронные паттерны. Для асинхронных обработчиков используйте async def handler.

Можно ли использовать pandas и numpy, не упираясь в лимиты размера?

Да. В отличие от лимита Lambda в 250 МБ на распакованный слой, подключите numpy и pandas слоем функции — платформа соберёт слой без такой урезки по размеру.

Как получить доступ к переменным окружения и секретам?

Привяжите секреты в консоли Inquir — при запуске они подставляются как переменные окружения. Читайте их через os.environ["SECRET_NAME"] и никогда не зашивайте учётные данные в Python-обработчик.

Могут ли Python-функции обращаться к приватным базам?

Да. Функции на контейнерах могут обращаться к базам и HTTP API по строкам подключения из секретов воркспейса — в отличие от edge-изолятов, которые блокируют типичные исходящие вызовы с сервера. Достижимость зависит от сети вашего деплоя.