mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
update app_chatgpt
This commit is contained in:
@@ -56,8 +56,8 @@
|
||||
'data/ir_config_parameter.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/ai_robot_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/res_partner_ai_use_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
'assets': {
|
||||
'mail.assets_messaging': [
|
||||
|
||||
@@ -4,7 +4,7 @@ from . import mail_channel
|
||||
from . import res_config_settings
|
||||
from . import ai_robot
|
||||
from . import res_partner
|
||||
from . import res_partner_ai_use
|
||||
from . import res_users
|
||||
from . import mail_message
|
||||
from . import mail_thread
|
||||
from . import res_partner_ai_use
|
||||
|
||||
@@ -28,7 +28,8 @@ class Channel(models.Model):
|
||||
('message_type', '!=', 'user_notification'),
|
||||
('parent_id', '!=', False),
|
||||
('author_id', '=', answer_id.id),
|
||||
('body', '!=', '<p>%s</p>' % _('Response Timeout, please speak again.'))]
|
||||
('body', '!=', '<p>%s</p>' % _('Response Timeout, please speak again.')),
|
||||
('body', '!=', '温馨提示:您发送的内容含有敏感词,请修改内容后再向我发送。')]
|
||||
if self.channel_type in ['group', 'channel']:
|
||||
# 群聊增加时间限制,当前找所有人,不限制 author_id
|
||||
domain += [('date', '>=', afterTime)]
|
||||
@@ -68,8 +69,8 @@ class Channel(models.Model):
|
||||
user_id = answer_id.mapped('user_ids').filtered(lambda r: r.gpt_id)[:1]
|
||||
if user_id and answer_id.gpt_id:
|
||||
gpt_policy = user_id.gpt_policy
|
||||
gpt_wl_users = user_id.gpt_wl_users
|
||||
is_allow = message.create_uid.id in gpt_wl_users.ids
|
||||
gpt_wl_partners = user_id.gpt_wl_partners
|
||||
is_allow = message.author_id.id in gpt_wl_partners.ids
|
||||
if gpt_policy == 'all' or (gpt_policy == 'limit' and is_allow):
|
||||
ai = answer_id.gpt_id
|
||||
|
||||
@@ -82,8 +83,8 @@ class Channel(models.Model):
|
||||
user_id = partners.mapped('user_ids').filtered(lambda r: r.gpt_id)[:1]
|
||||
if user_id:
|
||||
gpt_policy = user_id.gpt_policy
|
||||
gpt_wl_users = user_id.gpt_wl_users
|
||||
is_allow = message.create_uid.id in gpt_wl_users.ids
|
||||
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.gpt_id
|
||||
@@ -134,7 +135,7 @@ class Channel(models.Model):
|
||||
if sync_config == 'sync':
|
||||
self.get_ai_response(ai, messages, channel, user_id, message)
|
||||
else:
|
||||
self.with_delay().get_ai(ai, messages, channel, user_id, message)
|
||||
self.with_delay().get_ai_response(ai, messages, channel, user_id, message)
|
||||
except Exception as e:
|
||||
raise UserError(_(e))
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ class ResPartnerAiUse(models.Model):
|
||||
_description = '消费者Ai使用情况'
|
||||
|
||||
name = fields.Many2one('res.partner', 'Partner')
|
||||
ai_user_id = fields.Many2one('res.users', 'Ai User', domain=[('gpt_id', '!=', False)])
|
||||
first_ask_time = fields.Datetime('First Ask Time')
|
||||
service_start_date = fields.Datetime('Service Start Date')
|
||||
service_end_date = fields.Datetime('Service End Date')
|
||||
|
||||
@@ -12,5 +12,5 @@ class ResUsers(models.Model):
|
||||
('all', 'All Users'),
|
||||
('limit', 'Selected Users')
|
||||
], string='Allowed Conversation Mode', default='all', ondelete='set default')
|
||||
gpt_wl_users = fields.Many2many('res.users', 'res_users_res_users_rel', 'robot_id', 'user_id', string='Allowed Users', domain="[('id', '!=', id)]")
|
||||
gpt_wl_partners = fields.Many2many('res.partner', 'res_partner_ai_use', 'ai_user_id', 'name', string='Allowed Partners')
|
||||
gpt_demo_time = fields.Integer('Default Demo Time', default=0)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="ai_user_id"/>
|
||||
<field name="first_ask_time"/>
|
||||
<field name="service_start_date"/>
|
||||
<field name="service_end_date"/>
|
||||
@@ -31,6 +32,7 @@
|
||||
</h1>
|
||||
<group>
|
||||
<group>
|
||||
<field name="ai_user_id"/>
|
||||
<field name="first_ask_time"/>
|
||||
<field name="service_start_date"/>
|
||||
<field name="service_end_date"/>
|
||||
@@ -44,8 +46,6 @@
|
||||
<field name="tokens_total" readonly="True"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
@@ -55,7 +55,16 @@
|
||||
<field name="name">Partner Ai Use</field>
|
||||
<field name="res_model">res.partner.ai.use</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="context">{'create': 0, 'delete': 0}</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_res_users_2_partner_ai_use" model="ir.actions.act_window">
|
||||
<field name="name">Partner Ai Use</field>
|
||||
<field name="res_model">res.partner.ai.use</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('ai_user_id', 'in', active_ids)]</field>
|
||||
<field name="context">{'default_ai_user_id':active_id,}</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
|
||||
@@ -5,13 +5,17 @@
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button name="%(app_chatgpt.action_res_users_2_partner_ai_use)d" type="action" string="Partner AI Use" icon="fa-comments">
|
||||
</button>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='preferences']" position="after">
|
||||
<page name="page_chatgpt" string="ChatGPT">
|
||||
<group>
|
||||
<group>
|
||||
<field name="gpt_id"/>
|
||||
<field name="gpt_policy"/>
|
||||
<field name="gpt_wl_users" widget="many2many_tags" attrs="{'invisible': [('gpt_policy', '=', 'all')]}"/>
|
||||
<field name="gpt_wl_partners" widget="many2many_tags" attrs="{'invisible': [('gpt_policy', '=', 'all')]}"/>
|
||||
<field name="gpt_demo_time"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
Reference in New Issue
Block a user