Перейти к содержанию

Ассистенты OpenAI (assistants)🔗

Назначение🔗

Приложение assistants предоставляет пользователям возможность создавать ассистентов в OpenAI и хранить их настройки в локальной базе данных. Созданные ассистенты в дальнейшем могут использоваться в других модулях системы — таких как VK, WhatsApp, виджеты и др.

Ассистенты создаются от имени предоставленного OpenAI-профиля сервиса (а не пользователя). Пользователь получает assistant_id, который можно использовать при настройке профилей интеграции.


Основные модели и сущности🔗

OpenAIAssistants🔗

class OpenAIAssistants(models.Model):
    owner = models.ForeignKey(CustomUser, ...)
    name = models.CharField(...)
    assistant_id = models.CharField(...)
    created_at = models.DateTimeField(...)
    description = models.TextField(...)
    instructions = models.TextField(...)
    temperature = models.FloatField(...)
    top_p = models.FloatField(...)
Поле Назначение
owner Пользователь, которому принадлежит ассистент
name Название ассистента
assistant_id Уникальный ID ассистента, возвращаемый OpenAI (например, asst_xyz...)
created_at Дата создания
description Дополнительное описание ассистента
instructions Промпт, описывающий поведение ассистента
temperature Параметр, задающий случайность ответов (0.0–2.0)
top_p Альтернатива temperature (0.0–1.0), используется для nucleus sampling

Модель может быть расширена в будущем (добавление инструментов, встроенных функций и др.). Значения temperature и top_p не синхронизируются с OpenAI — они управляются пользователем.


Использование🔗

  • Каждый пользователь может иметь несколько ассистентов;
  • После создания ассистента его assistant_id используется в других профилях системы (например, при настройке WhatsApp или VK);
  • Также пользователь может вставить вручную любой assistant_id, созданный вне платформы, при конфигурации своих профилей.

Само приложение assistants не отвечает за выполнение инструкций ассистента и обработку сообщений. Оно предоставляет инфраструктуру хранения и управления.


Админка🔗

OpenAIAssistants🔗

  • Отображаются поля: id, name, assistant_id, owner, created_at;
  • Доступна фильтрация по пользователю и дате создания;
  • Поиск по имени ассистента, ID и email пользователя;
  • Поле created_at доступно только для чтения;
  • Модель зарегистрирована в админке без ограничений по правам.

API🔗

См. главу по API →

Все эндпоинты расположены по префиксу: /api/v1/assistant/ Необходима авторизация (sessionid + X-CSRFToken).

Метод Путь Назначение
GET /api/v1/assistant/list/ Получить список ассистентов пользователя
GET /api/v1/assistant/detail/<assistant_id>/ Получить детали ассистента
POST /api/v1/assistant/create/ Создать нового ассистента в OpenAI
PATCH /api/v1/assistant/update/<assistant_id>/ Обновить параметры ассистента
DELETE /api/v1/assistant/delete/<assistant_id>/ Удалить ассистента в OpenAI и локально

Особенности🔗

  • Ассистенты создаются через API OpenAI от имени системного аккаунта;
  • Пользователь не может использовать свои ключи OpenAI внутри этого приложения;
  • Расширение модели и функционала запланировано;
  • Все действия логируются через систему логирования (log_info, log_error, и т.п.).