Ассистенты 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/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, и т.п.).