Skip to content

Conversation

@nic11371
Copy link
Contributor

  1. инициализация и подключение к ИИ модели
  2. создание приложения ai
  3. добавление в env.example ключей для полключения АИ модели

Copy link

@maxjamchuk maxjamchuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отличная заготовка для нового сервиса. Перед мёрджем необходимо исправить замечания с лейблами CAUTION и WARNING (путь приложения в apps.py, сетевой запрос при импорте, отсутствие таймаута, unique=True у полей сообщения, отсутствие миграций). Остальные комментарии — рекомендательные.




AI_KEY="jf48694jcmkvb9t9erlcm9er48tmbo"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

лучше не держать строку, похожую на реальный ключ. Даже если это “пример”, это приучает хранить “как будто настоящий” токен в репе. Предпочтительнее placeholder вида AI_KEY="your_key_here".
Если же это настоящий ключ, то его конечно же нужно отозвать и получить новый и больше никогда не выкладывать в GitHub.




AI_KEY="jf48694jcmkvb9t9erlcm9er48tmbo"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

именование AI_KEY в целом ок, но можно сделать более явным (AI_API_KEY) — чтобы не путать с внутренними ключами приложения.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

env-ключи добавлены, но пример ключа лучше сделать безопасным placeholder.


class AiConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app.service.ai'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

AiConfig.name указан как app.service.ai, но путь до каталога — app/services/ai, т.е. должно быть app.services.ai. В текущем виде Django не сможет корректно найти приложение (и это всплывёт сразу при подключении в INSTALLED_APPS).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

есть блокирующая опечатка в имени приложения

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

блокирующий сайд-эффект при импорте + обязательный таймаут

from django.db import models


class ChatMessage(models.Model):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

для полей username, first_name, last_name, text выставлен unique=True.
Для модели сообщений это почти наверняка неверно: одинаковые username и одинаковый text будут встречаться в чате очень часто.

from django.db import models


class ChatMessage(models.Model):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

message_id/user_id/chat_id как IntegerField с default=0 и null=True — спорная комбинация. Обычно либо null=False + валидное значение, либо null=True без “магического нуля”. Подумать над типами/ограничениями (и индексацией, если это внешние id).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

в PR нет миграций под модель. Если модель реально нужна — должна быть initial migration, иначе в проде модель “не существует” в БД.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

модель заведена, но ограничения unique=True критические

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants