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

Assistant API для моделей OpenAI

В сервисе openai-proxy поддержали Assistant API для создания AI-ассистентов. Ассистенты OpenAI предоставляют продвинутые инструменты для выполнения сложных задач — таких как поиск ответов на вопросы пользователей в предоставленных документах, написание и выполнение кода на языке Python, вызовы пользовательских функций.

Как и все сервисы на платформе Caila, openai-proxy доступен в РФ с оплатой в рублях. Сервис позволяет обращаться к любым моделям OpenAI.

Доступ к API

Для доступа к API вам потребуется токен. Создайте его на странице Моё пространство → API‑Токены. Указывайте токен в каждом запросе к API.

Базовый URL

https://caila.io/api/adapters/openai/v1

Пример использования

  1. Создадим ассистента:

    curl -X POST "https://caila.io/api/adapters/openai/v1/assistants" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <api_token>" \
    --data-raw '{
    "instructions": "You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
    "name": "Math Tutor",
    "tools": [{"type": "code_interpreter"}],
    "model": "gpt-4o"
    }'
    Пример ответа
    {
    "id": "asst_ABcd1234",
    "object": "assistant",
    "created_at": 1741348100,
    "name": "Math Tutor",
    "description": null,
    "model": "gpt-4o",
    "instructions": "You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
    "tools": [
    {
    "type": "code_interpreter"
    }
    ],
    "top_p": 1.0,
    "temperature": 1.0,
    "reasoning_effort": null,
    "tool_resources": {
    "code_interpreter": {
    "file_ids": []
    }
    },
    "metadata": {
    "userId": "1000174642"
    },
    "response_format": "auto"
    }
  2. Создадим тред, в котором пользователь будет задавать вопросы ассистенту:

    curl -X POST "https://caila.io/api/adapters/openai/v1/threads" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <api_token>" \
    --data-raw '{}'
    Пример ответа
    {
    "id": "thread_EFgh5678",
    "object": "thread",
    "created_at": 1741348920,
    "metadata": {
    "userId": "1000174642"
    },
    "tool_resources": {}
    }
  3. Отправим сообщение пользователя в тред. В строке запроса нужно указать идентификатор треда, полученный на предыдущем шаге:

    curl -X POST "https://caila.io/api/adapters/openai/v1/threads/thread_EFgh5678/messages" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <api_token>" \
    --data-raw '{
    "role": "user",
    "content": "Напиши простой калькулятор на python, у которого будут только 4 функции, сложение, вычитание, умножение и деление"
    }'
    Пример ответа
    {
    "id": "msg_1fXtROYuVlVyHcD6dwJIZX8p",
    "object": "thread.message",
    "created_at": 1741615474,
    "assistant_id": null,
    "thread_id": "thread_EFgh5678",
    "run_id": null,
    "role": "user",
    "content": [
    {
    "type": "text",
    "text": {
    "value": "Напиши простой калькулятор на python, у которого будут только 4 функции, сложение, вычитание, умножение и деление",
    "annotations": []
    }
    }
    ],
    "attachments": [],
    "metadata": {
    "userId": "1000174642"
    }
    }
  4. Запустим ассистента в треде, чтобы сгенерировать ответ. В строке запроса нужно указать идентификатор треда, а в теле запроса — идентификатор ассистента из п. 1.

    curl -X POST "https://caila.io/api/adapters/openai/v1/threads/thread_EFgh5678/runs" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <api_token>" \
    --data-raw '{
    "assistant_id": "asst_ABcd1234",
    "instructions": "Ответь на русском языке"
    }'
    Пример ответа
    {
    "id": "run_Wiz8k7IFuqcMQdh3ohGQWA59",
    "object": "thread.run",
    "created_at": 1741615825,
    "assistant_id": "asst_ABcd1234",
    "thread_id": "thread_EFgh5678",
    "status": "queued",
    "started_at": null,
    "expires_at": 1741616425,
    "cancelled_at": null,
    "failed_at": null,
    "completed_at": null,
    "required_action": null,
    "last_error": null,
    "model": "gpt-4o",
    "instructions": "Ответь на русском языке",
    "tools": [
    {
    "type": "code_interpreter"
    }
    ],
    "tool_resources": {},
    "metadata": {
    "userId": "1000174642"
    },
    "temperature": 1.0,
    "top_p": 1.0,
    "reasoning_effort": null,
    "max_completion_tokens": null,
    "max_prompt_tokens": null,
    "truncation_strategy": {
    "type": "auto",
    "last_messages": null
    },
    "incomplete_details": null,
    "usage": null,
    "response_format": "auto",
    "tool_choice": "auto",
    "parallel_tool_calls": true
    }
  5. Посмотрим результат:

    curl -X GET "https://caila.io/api/adapters/openai/v1/threads/thread_EFgh5678/messages" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <api_token>"
    Пример ответа
    {
    "object": "list",
    "data": [
    {
    "id": "msg_CpqFkV5HoeoiPlJdZSVR1b9X",
    "object": "thread.message",
    "created_at": 1741615827,
    "assistant_id": "asst_ABcd1234",
    "thread_id": "thread_EFgh5678",
    "run_id": "run_Wiz8k7IFuqcMQdh3ohGQWA59",
    "role": "assistant",
    "content": [
    {
    "type": "text",
    "text": {
    "value": "Конечно! Ниже представлен простой калькулятор на Python, который поддерживает четыре основные арифметические операции: сложение, вычитание, умножение и деление.\n\n```python\ndef add(x, y):\n \"\"\"Функция для сложения двух чисел.\"\"\"\n return x + y\n\ndef subtract(x, y):\n \"\"\"Функция для вычитания двух чисел.\"\"\"\n return x - y\n\ndef multiply(x, y):\n \"\"\"Функция для умножения двух чисел.\"\"\"\n return x * y\n\ndef divide(x, y):\n \"\"\"Функция для деления двух чисел.\"\"\"\n if y == 0:\n return \"Ошибка: деление на ноль!\"\n return x / y\n\ndef calculator():\n print(\"Выберите операцию:\")\n print(\"1. Сложение\")\n print(\"2. Вычитание\")\n print(\"3. Умножение\")\n print(\"4. Деление\")\n\n while True:\n choice = input(\"Введите номер операции (1/2/3/4) или 'q' для выхода: \")\n\n if choice == 'q':\n print(\"Выход из калькулятора.\")\n break\n\n if choice in ['1', '2', '3', '4']:\n try:\n num1 = float(input(\"Введите первое число: \"))\n num2 = float(input(\"Введите второе число: \"))\n except ValueError:\n print(\"Ошибка: необходимо вводить числа.\")\n continue\n\n if choice == '1':\n print(f\"{num1} + {num2} = {add(num1, num2)}\")\n elif choice == '2':\n print(f\"{num1} - {num2} = {subtract(num1, num2)}\")\n elif choice == '3':\n print(f\"{num1} * {num2} = {multiply(num1, num2)}\")\n elif choice == '4':\n print(f\"{num1} / {num2} = {divide(num1, num2)}\")\n else:\n print(\"Неверный ввод. Пожалуйста, введите номер операции от 1 до 4.\")\n\nif __name__ == \"__main__\":\n calculator()\n```\n\nЭтот код реализует простой консольный калькулятор, который предлагает пользователю выбрать одну из четырёх операций, ввести два числа, и затем выводит результат. Для завершения работы калькулятора достаточно ввести 'q'.",
    "annotations": []
    }
    }
    ],
    "attachments": [],
    "metadata": {}
    },
    {
    "id": "msg_1fXtROYuVlVyHcD6dwJIZX8p",
    "object": "thread.message",
    "created_at": 1741615474,
    "assistant_id": null,
    "thread_id": "thread_EFgh5678",
    "run_id": null,
    "role": "user",
    "content": [
    {
    "type": "text",
    "text": {
    "value": "Напиши простой калькулятор на python, у которого будут только 4 функции, сложение, вычитание, умножение и деление",
    "annotations": []
    }
    }
    ],
    "attachments": [],
    "metadata": {
    "userId": "1000174642"
    }
    }
    ],
    "first_id": "msg_CpqFkV5HoeoiPlJdZSVR1b9X",
    "last_id": "msg_1fXtROYuVlVyHcD6dwJIZX8p",
    "has_more": false
    }

Suno AI Bark: прототип сервиса для генерации аудио

Bark — нейросеть компании Suno для преобразования текста в аудио. Bark — не обычная модель TTS на базе фонем, а полностью генеративная модель, способная отклоняться от заданного сценария и представляющая интерес для исследователей. Bark предлагает обширную библиотеку голосов на разных языках, включая русский, а также может воспроизводить невербальные звуки, такие как музыка, смех и другие.

На платформе Caila модель Bark представлена в виде сервиса-прототипа suno-ai-bark. Это означает, что вы можете в пару кликов арендовать сервер с почасовой оплатой, развернуть на нем ML-модель и выполнять запросы к ней через унифицированный API или форму тестирования в интерфейсе.

Launch Suno AI Bark

DeepSeek и другие новинки в Caila

Каталог сервисов Caila постоянно обновляется, открывая пользователям доступ к новым возможностям искусственного интеллекта. Теперь на платформе можно взаимодействовать с популярными нейросетями:

Сравнивать генеративные модели между собой удобнее всего в Multi Chat. Вы можете задать вопрос сразу всем выбранным моделям и сопоставить ответы, чтобы выбрать наиболее подходящую модель для конкретной задачи.

Multi Chat с DeepSeek

Caila предоставляет унифицированный API для запросов к любым ML-сервисам. Это значительно упрощает интеграцию различных моделей в существующие приложения или разработку новых решений на основе ИИ. Больше информации о способах подключения сервисов Caila вы найдете в документации.

Обновленный caila-paraphraser

Полезный ML-сервис для лингвистов caila-paraphraser предназначен для перефразирования текстов на русском и английском языках. Теперь сервис работает на базе GPT-моделей от OpenAI и позволяет пользователям выбирать конкретную модель из числа поддерживаемых в NLU. При этом сохранена обратная совместимость, что обеспечивает плавный переход на новые возможности.

Jupiter-ноутбук

Jupyter Notebook в Caila

Jupyter — интерактивная среда разработки, которая делает написание и выполнение кода удобным и гибким. Теперь запуск Jupyter-ноутбуков стал доступен в Caila.

Чтобы начать работу, просто клонируйте сервис из прототипа. Выберите аппаратные ресурсы исходя из ваших задач. Для машинного обучения и обработки больших данных подойдут серверы с GPU: предустановленные PyTorch и CUDA позволяют значительно ускорить вычисления.

Ноутбуки и данные автоматически синхронизируются с хранилищем S3. Таким образом, результаты вашей работы будут в сохранности при перезапуске сервиса или смене сервера.

Jupiter-ноутбук

Релиз 12.11.2024

Введение

В данном релизе основной акцент был сделан на улучшении интерфейса и оптимизации производительности системы Caila. Добавлены функции автоматического обновления страниц после создания серверных шаблонов и улучшена поддержка отображения статусов объектов.

Обновлены механизмы управления динамическими серверами и добавлена обработка ошибок в open-ai-proxy для повышения гибкости и надежности системы. Реализован стримминг режим для Kaldi сервиса и адаптеров (GigaChat|Yandex|Claude|Gemini). Добавлена информация о стоимости вызова в MultiChat.

Новые функции и улучшения

Запуск Caila-приложения на динамических серверах

Теперь доступны возможности запуска Caila-приложений на динамических серверах, что позволит повысить гибкость развертывания и управления ресурсами. Данный функционал улучшает производительность и дает больше возможностей для масштабирования сервисов и приложений.

Поддержка различных типов внутри content в Claude

Реализована возможность работы с разными типами внутри content в Claude, что позволяет пользователям передавать и обрабатывать изображения, текст и другие типы данных в одном запросе. Это расширяет функциональные возможности системы и упрощает взаимодействие с различными форматами данных.

Пример запроса:

export IMAGE=
curl -X 'POST' \
'https://caila.io/api/adapters/openai-direct/chat/completions' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer ${MLP_API_KEY}" \
-d '{"model":"just-ai/claude/claude-3-5-sonnet-20240620","max_tokens":1024,"messages":[{"role":"user","content":[{"type":"image","source":{"type":"base64","media_type":"image/jpeg","data":"'"$IMAGE"'"}},{"type":"text","text":"Что изображено на картинке?"}]}]}'

Стриминг режим для Kaldi сервиса и адаптеров

Внедрен стриминг режим для Kaldi сервиса, включая соответствующие адаптеры (Gemini|Claude|GigaChat|Yandex), что повышает гибкость и производительность обработки голосовых данных. Поддержана возможность работы в пакетном и стримминговом режимах, что позволяет выбрать наиболее подходящий режим в зависимости от сценария использования. Реализована поддержка клиентского стримминга в Java SDK.

Отображение стоимости вызова в MultiChat и окне «Тестирование»

Добавлена возможность отображения стоимости вызова в MultiChat и окне «Тестирование». Теперь пользователи смогут легко отслеживать затраты прямо в интерфейсе приложения. Это является важной частью управления бюджетом и позволяет лучше контролировать расходы.

Релиз 20.10.2024

Полный список сервисов в Ресурс-группе

Теперь на вкладке Сервисы в Ресурс-группе отображаются все прикрепленные сервисы, включая неактивные. Статус каждого сервиса обозначен цветным индикатором. Также в местах, где показывается количество сервисов, теперь отображается информация в формате: 5(активных) / 10(назначено). Это помогает быстро оценить состояние сервисов.

Динамическая стоимость сервера

На странице выбора сервера стоимость теперь обновляется динамически в зависимости от указанных параметров. Это позволяет вам всегда видеть актуальную цену и упрощает процесс принятия решений.

Стоимость запроса в multi-chat

В multi-chat теперь отображается стоимость запроса в рублях. Это позволяет вам отслеживать текущие затраты прямо в интерфейсе.

Ресурсные пулы и квоты

Мы внедрили пулы ресурсов и квоты, которые позволяют вам контролировать и отслеживать использование ресурсов на аккаунте. Это поможет оптимизировать использование ресурсов и предотвратить превышение доступных лимитов.

Welcome-бонус для всех пользователей

Теперь все новые пользователи получают welcome-бонус в размере 500 ₽ при регистрации. Кроме того, бонус был начислен всем существующим пользователям.

webinar

Провели вебинар на тему «Как найти оптимальную модель GenAI для проекта»

Простой и безопасный доступ к любым GPT с помощью caila.io

О чем говорили на вебинаре:

• Какие задачи бизнеса решает GenAI — актуальные кейсы для клиентского сервиса, HR, продаж и других областей;

• Выбор языковой модели под проект: разберем на примере критерии отбора и инструменты работы с моделями в действии;

• Облачные модели или он-прем: особенности вариантов использования;

• Caila: профессиональная платформа для удобного хостинга, тестирования и интеграции моделей.

Ссылка на запись вебинара

Релиз 09.09.2024

Информация о сервере при внешнем подключении

Теперь при добавлении внешнего подключения можно добавить комментарий с информацией о сервере и дате запуска модели. Например: «OP-XYZ, rndbox5, 1.02.2024». Это поможет быстрее находить нужные модели на внешних серверах.

GPT-Viewer: поддержка Markdown

GPT-Viewer теперь поддерживает Markdown. Форматируйте текст, чтобы сделать его более читабельным и удобным для работы с данными.

Конфигурация сервера: добавлен период тарификации

Теперь при выборе конфигурации сервера отображается не только цена, но и период тарификации, например, 100 рублей за месяц. Это позволяет лучше понять стоимость услуги.

llama-3.1

Llama 3.1

Сервисы на базе Llama 3.1 появились в каталоге Caila в двух вариантах. Сервисы размещены для целей ознакомления и тестирования.

Доступность сервисов — постоянная.