diff --git a/app_chatgpt/models/ai_robot.py b/app_chatgpt/models/ai_robot.py index 883479bf..9667413f 100644 --- a/app_chatgpt/models/ai_robot.py +++ b/app_chatgpt/models/ai_robot.py @@ -117,6 +117,14 @@ GPT-3 A set of models that can understand and generate natural language if sensi is not None: _logger.error('==========敏感词:%s' % sensi['Keyword']) return _('温馨提示:您发送的内容含有敏感词,请修改内容后再向我发送。') + elif not author_id.gpt_id and answer_id.gpt_id: + user_id = answer_id.user_ids[:1] + gpt_policy = user_id.gpt_policy + gpt_wl_partners = user_id.gpt_wl_partners + is_allow = author_id.id in gpt_wl_partners.ids + if gpt_policy != 'all' and not is_allow: + # 暂时有限用户的Ai + return _('此Ai暂时未开放,请联系管理员。') else: return False diff --git a/app_chatgpt/models/mail_channel.py b/app_chatgpt/models/mail_channel.py index 8689a069..7d5fc297 100644 --- a/app_chatgpt/models/mail_channel.py +++ b/app_chatgpt/models/mail_channel.py @@ -139,16 +139,17 @@ class Channel(models.Model): partners = self.channel_partner_ids.sudo().filtered(lambda r: r.gpt_id)[:1] user_id = partners.mapped('user_ids')[:1] if user_id: - # todo: 此处理不判断,将此处逻辑迁移至 get_ai_pre, 非ai回复的直接内容注意设置为 is_ai=false - gpt_policy = user_id.gpt_policy - gpt_wl_partners = user_id.gpt_wl_partners - is_allow = message.author_id.id in gpt_wl_partners.ids - answer_id = user_id.partner_id - if gpt_policy == 'all' or (gpt_policy == 'limit' and is_allow): - ai = user_id.sudo().gpt_id - elif user_id.gpt_id and not is_allow: - # 暂时有限用户的Ai - raise UserError(_('此Ai暂时未开放,请联系管理员。')) + ai = user_id.sudo().gpt_id + # 此处理不判断,将此处逻辑迁移至 get_ai_pre, 非ai回复的直接内容注意设置为 is_ai=false + # gpt_policy = user_id.gpt_policy + # gpt_wl_partners = user_id.gpt_wl_partners + # is_allow = message.author_id.id in gpt_wl_partners.ids + # answer_id = user_id.partner_id + # if gpt_policy == 'all' or (gpt_policy == 'limit' and is_allow): + # ai = user_id.sudo().gpt_id + # elif user_id.gpt_id and not is_allow: + # # 暂时有限用户的Ai + # raise UserError(_('此Ai暂时未开放,请联系管理员。')) chatgpt_channel_id = self.env.ref('app_chatgpt.channel_chatgpt')