update chatgpt add 对话 and 更新许可

This commit is contained in:
Ivan Office
2025-02-07 19:08:25 +08:00
parent 79ff09b649
commit 28e45d437a
13 changed files with 53 additions and 17 deletions

View File

@@ -31,7 +31,7 @@
'category': 'Base',
'website': 'https://www.odooai.cn',
'live_test_url': 'https://demo.odooapp.cn',
'license': 'OPL-1',
'license': 'LGPL-3',
'sequence': 2,
'price': 0.00,
'currency': 'EUR',

View File

@@ -10,7 +10,7 @@
{
'name': 'ChatGPT4, China Ali,AiGC Center.Ai服务中心聚合全网Ai',
'version': '16.24.07.29',
'version': '16.0.25.02.07',
'author': 'odooai.cn',
'company': 'odooai.cn',
'maintainer': 'odooai.cn',
@@ -48,11 +48,8 @@
pip3 install typing-extensions==4.12.2
''',
'depends': [
'base',
'app_odoo_customize',
'base_setup',
'mail',
'queue_job',
],
'data': [
'security/ir.model.access.csv',

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record model="mail.channel" id="channel_chatgpt">
<record id="channel_chatgpt" model="mail.channel">
<field name="name">ChatGPT Group Chat</field>
<field name="description">ChatGPT话题</field>
<field name="image_128" type="base64" file="app_chatgpt/static/description/chatgpt.png"/>
</record>
<record model="mail.message" id="module_install_notification">
<record id="module_install_notification" model="mail.message">
<field name="model">mail.channel</field>
<field name="res_id" ref="app_chatgpt.channel_chatgpt"/>
<field name="message_type">email</field>
@@ -17,6 +17,13 @@
<p>Please ask me any question.</p>]]></field>
</record>
<record id="channel_chatgpt" model="mail.channel">
<field name="name">Ai Conversation Group</field>
<field name="description">Ai互怼/辩论/二人转</field>
<field name="image_128" type="base64" file="app_chatgpt/static/img/icon_odooai.png"/>
<field name="image_128" type="base64" file="app_chatgpt/static/img/icon_odooai.png"/>
</record>
<!-- <record model="mail.channel.member" id="channel_member_chatgtp_channel_for_admin">-->
<!-- <field name="partner_id" ref="base.partner_admin"/>-->
<!-- <field name="channel_id" ref="app_chatgpt.channel_chatgpt"/>-->
@@ -24,7 +31,7 @@
<!-- <field name="seen_message_id" ref="app_chatgpt.module_install_notification"/>-->
<!-- </record>-->
<record model="mail.channel" id="app_chatgpt.channel_chatgpt">
<record id="app_chatgpt.channel_chatgpt" model="mail.channel">
<field name="group_ids" eval="[Command.link(ref('base.group_user'))]"/>
</record>
</data>

View File

@@ -81,6 +81,17 @@ class Channel(models.Model):
is_current_channel = fields.Boolean('是否当前用户默认频道', compute='_compute_is_current_channel', help='是否当前用户默认微信对话频道')
# begin 处理Ai对话
is_ai_conversation = fields.Boolean('Ai Conversation', default=False,
help='Set active to make conversation between 2+ Ai Employee. You Just say first word, then Ai robots Auto Chat.')
# 主Ai角色设定
ai_sys_content = fields.Char('Main Robot Role', change_default=True,
help='The Role the First Ai robot play for. This is for Ai Conversation.')
# 辅助Ai角色设定
ext_ai_sys_content = fields.Char('Extend Robot Role', change_default=True,
help='The Role the Second Ai robot play for. This is for Ai Conversation.')
# end 处理Ai对话
def name_get(self):
result = []
for c in self:
@@ -318,7 +329,10 @@ class Channel(models.Model):
if sync_config == 'sync':
self.get_ai_response(ai, messages, channel, user_id, message)
else:
self.with_delay().get_ai_response(ai, messages, channel, user_id, message)
if hasattr(self, 'with_delay'):
self.with_delay().get_ai_response(ai, messages, channel, user_id, message)
else:
self.get_ai_response(ai, messages, channel, user_id, message)
except Exception as e:
raise UserError(_(e))
@@ -358,3 +372,10 @@ class Channel(models.Model):
def _onchange_ai_partner_id(self):
if self.ai_partner_id and self.ai_partner_id.image_1920:
self.image_128 = self.ai_partner_id.avatar_128
if self.ai_partner_id and not self.ai_sys_content:
self.ai_sys_content = self.ai_partner_id.sys_content
@api.onchange('ext_ai_partner_id')
def _onchange_ext_ai_partner_id(self):
if self.ext_ai_partner_id and not self.ext_ai_sys_content:
self.ext_ai_sys_content = self.ext_ai_partner_id.sys_content

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -27,10 +27,13 @@
<group>
<group name="role_set" string="Ai Parameter">
<field name="channel_type" readonly="1"/>
<field name="ai_partner_id"
<field name="ai_partner_id" widget="many2one_avatar"
options="{'no_open': True, 'no_create': True}"/>
<field name="ext_ai_partner_id"
<field name="ext_ai_partner_id" widget="many2one_avatar"
options="{'no_open': True, 'no_create': True}"/>
<field name="is_ai_conversation" widget="boolean_toggle" groups="base.group_no_one"/>
<field name="ai_sys_content" attrs="{'invisible':[('is_ai_conversation','!=',True)]}" groups="base.group_no_one"/>
<field name="ext_ai_sys_content" attrs="{'invisible':[('is_ai_conversation','!=',True)]}" groups="base.group_no_one"/>
</group>
<group name="param_set" string="Ai Character Set">
<div class="o_td_label">
@@ -88,11 +91,19 @@
<field name="arch" type="xml">
<xpath expr="//kanban//field[1]" position="before">
<field name="is_private"/>
<field name="ai_partner_id"/>
<field name="ext_ai_partner_id"/>
<field name="is_ai_conversation"/>
</xpath>
<xpath expr="//field[@name='description']" position="before">
<em>角色:</em>
</xpath>
<xpath expr="//button[@name='channel_join']" position="replace">
<div class="row">
<field name="ai_partner_id" widget="many2one_avatar" class="ml4 mr8"
options="{'no_open': True, 'no_create': True}"/>
<field name="is_ai_conversation" widget="boolean_toggle"/>
</div>
<button attrs="{'invisible':[('is_private','=',True), ('group_ids', '!=', [])]}"
class="btn btn-warning float-end" type="edit">
智能设定

View File

@@ -20,14 +20,14 @@
</button>
</xpath>
<xpath expr="//page[@name='preferences']" position="after">
<page name="page_chatgpt" string="ChatGPT">
<page name="page_chatgpt" string="Ai Robot Setting">
<group>
<group>
<field name="gpt_id"/>
<field name="gpt_policy"/>
<field name="gpt_wl_partners" widget="many2many_tags" attrs="{'invisible': [('gpt_policy', '=', 'all')]}"/>
<field name="gpt_demo_time"/>
<field name="is_chat_private"/>
<field name="is_chat_private" widget="boolean_toggle"/>
</group>
</group>
</page>

View File

@@ -26,12 +26,12 @@
{
'name': 'odooapp.cn SaaS Client-Ai Passport.Odoo中文应用商店SaaS云服务客户端',
'version': '16.0.25.01.26',
'version': '16.0.25.02.07',
'author': 'odooai.cn',
'category': 'Base',
'website': 'https://www.odooai.cn',
'live_test_url': 'https://demo.odooapp.cn',
'license': 'OPL-1',
'license': 'LGPL-3',
'sequence': 2,
'price': 0.00,
'currency': 'EUR',

View File

@@ -12,5 +12,5 @@ class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
module_app_cn_po = fields.Boolean('SaaS Chinese PO', help="Checked to Sync Odoo Chinese from www.odooapp.cn")
app_saas_db_token = fields.Char('Cloud DB Token', default=True, config_parameter='app_saas_db_token',
app_saas_db_token = fields.Char('Cloud DB Token', default=None, config_parameter='app_saas_db_token',
help="The odooapp SaaS Token for this Odoo Database. You can reset in https://www.odooapp.cn")

View File

@@ -29,7 +29,7 @@
'category': 'Base',
'website': 'https://www.odooai.cn',
'live_test_url': 'https://demo.odooapp.cn',
'license': 'OPL-1',
'license': 'LGPL-3',
'sequence': 2,
'price': 2.00,
'currency': 'EUR',