Skip to main content

Типизированный async-клиент Agentum Cloud (/v1): загрузка документов, поиск и RAG-вопросы по вашим файлам.

Project description

agentum-cloud-sdk

Типизированный async-клиент для Agentum Cloud — облака ваших документов с поиском и ответами на естественном языке (RAG). Загружаете файлы (PDF, DOCX, изображения, аудио), а затем ищете по ним и задаёте вопросы — ИИ отвечает с ссылками на источники.

Тонкая обёртка над httpx поверх REST /v1. Полные type hints, py.typed.

Установка

pip install agentum-cloud-sdk

Обновление до свежей версии: pip install -U agentum-cloud-sdk.

Требуется Python 3.13+.

Токен

  1. Войдите в приложение cloud.agentums.ru (через Яндекс).
  2. Настройки → API-токены → Создать — скопируйте токен ak_… (показывается один раз).

Токен привязан к вашему аккаунту и подписке. Держите его в секрете (как пароль); если скомпрометирован — отзовите в настройках и создайте новый.

Быстрый старт

import asyncio
from agentum_cloud import AgentumClient


async def main() -> None:
    async with AgentumClient(
        base_url="https://api.cloud.agentums.ru",
        api_key="ak_ваш_токен",
    ) as cloud:
        # Загрузить документ
        with open("contract.pdf", "rb") as f:
            obj = await cloud.upload("contract.pdf", f.read())

        # Дождаться, пока документ проиндексируется
        await cloud.wait_until_ready(obj.id)

        # Спросить — ответ с цитатами из ваших файлов
        answer = await cloud.ask("Какой срок действия договора?")
        print(answer.answer)
        if answer.primary:  # закреплённый главный файл под запрос («найди X» → вот он)
            print(f"  главный файл: {answer.primary.filename}")
        for c in answer.citations:
            print(f"  источник: {c.filename}")


asyncio.run(main())

Агентный режим (стрим)

agent_chat возвращает поток событий: агент сам решает, какими инструментами воспользоваться (поиск, конвертация, перевод, сборка PDF), и по пути шлёт токены ответа.

from contextlib import aclosing

from agentum_cloud import AgentumClient


async def main() -> None:
    async with AgentumClient(base_url="https://api.cloud.agentums.ru", api_key="ak_…") as cloud:
        # aclosing обязателен: только он закроет HTTP-ответ, если выйти из цикла через break
        async with aclosing(cloud.agent_chat("собери все счета за июнь в один PDF")) as stream:
            async for ev in stream:
                if ev.type == "token":
                    print(ev.delta, end="", flush=True)
                elif ev.type == "tool_start":
                    print(f"\n[{ev.name}]")
                elif ev.type == "paused":
                    # Опасное действие ждёт подтверждения — стрим на этом закончился
                    await confirm(cloud, ev)
                    break

Форма стрима — два правила, которые легко нарушить:

  • paused — конец стрима. События done не будет: агент упёрся в опасный инструмент (удаление, перезапись файла) и ждёт решения. Продолжают ран через agent_continue, передавая решения по всем инструментам из события одним вызовом — не упомянутый инструмент молча не выполнится.
  • error — не конец стрима. Кадр с ошибкой не прерывает ран: за ним могут прийти ещё токены и done. Выходить из цикла по error — потерять хвост ответа.
async def confirm(cloud, ev) -> None:
    decisions = [(t.tool_call_id, input(f"{t.name} {t.args}? [y/n] ") == "y") for t in ev.tools]
    async with aclosing(
        cloud.agent_continue(run_id=ev.run_id, session_id=ev.session_id, decisions=decisions)
    ) as stream:
        async for ev in stream:
            if ev.type == "token":
                print(ev.delta, end="", flush=True)

session_id из start/done продолжает диалог: agent_chat(..., session_id=sid). История доступна через list_chats() / get_chat(id); у агентных сессий kind == "agent", и их id можно передать обратно в agent_chat как session_id.

Что умеет

Метод Назначение
upload(filename, data) загрузить документ/изображение/аудио
wait_until_ready(object_id) дождаться окончания индексации
list_objects(...) / get_object(id) список / детали файла (заголовок, summary, теги)
get_summary(id) карточка содержания (метаданные обогащения)
get_content(id) временная ссылка на оригинал (presigned URL)
search(q) гибридный поиск (вектор + полнотекст + имя/расширение) по вашим файлам
ask(query) ответ ИИ по вашим документам + цитаты и закреплённый файл (primary)
translate(id, target_lang) перевести документ → новый объект
transcribe(filename, data) расшифровка аудио в текст
get_usage(days=...) расход (₽) и разбивка по статьям
get_usage_history(days=...) дневной ряд расхода (₽ + токены + вызовы) для графика
list_collections() / create_collection(...) / move_object(...) папки и раскладка файлов
delete_object(id) удалить файл
agent_chat(query) / agent_continue(...) агентный режим: стрим токенов и вызовов инструментов
agent_status() доступен ли агентный режим и память
list_chats() / get_chat(id) / delete_chat(id) история диалогов
list_agent_memory() / clear_agent_memory() что агент запомнил о вас

Все методы — корутины, кроме agent_chat/agent_continue: они возвращают асинхронный генератор, так что await не нужен — сразу async for (внутри aclosing). Клиент — async-context-manager (async with).

Заметки

  • Данные изолированы по аккаунту: токен видит только файлы вашего аккаунта. Файлы, загруженные через Telegram-бота, доступны здесь же после привязки бота к аккаунту.
  • Базовый URL прода — https://api.cloud.agentums.ru.

Лицензия

MIT — см. LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentum_cloud_sdk-0.1.406.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentum_cloud_sdk-0.1.406-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file agentum_cloud_sdk-0.1.406.tar.gz.

File metadata

  • Download URL: agentum_cloud_sdk-0.1.406.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.11

File hashes

Hashes for agentum_cloud_sdk-0.1.406.tar.gz
Algorithm Hash digest
SHA256 a95d8006eaa8dc1e7ef939c717fddf6e4b8c75c4feaa85eef3e9bf9ad7f3686c
MD5 625fa2f13708def140e765bc7bbaf516
BLAKE2b-256 1d0320d3f10befdb0f53a0fdfcd4a4255d8b0d550c6a2f59aa43bc9375ced093

See more details on using hashes here.

File details

Details for the file agentum_cloud_sdk-0.1.406-py3-none-any.whl.

File metadata

File hashes

Hashes for agentum_cloud_sdk-0.1.406-py3-none-any.whl
Algorithm Hash digest
SHA256 eaa958d371600c8dcaefb068b2b0d57281f0b7c74914ede102d495f89df6b38a
MD5 0d65157d3b952ffd22862c710cd83a03
BLAKE2b-256 94f9b092b1cc453f3374f710c37b288a7a0fb440d7fdb511638e7b0b80bcb335

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page