mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
[app_ai_bard] v17 to be validate
This commit is contained in:
100
app_ai_bard/views/ai_robot_views.xml
Normal file
100
app_ai_bard/views/ai_robot_views.xml
Normal file
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="ai_robot_tree_view" model="ir.ui.view">
|
||||
<field name="name">ai.robot.tree</field>
|
||||
<field name="model">ai.robot</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="provider" optional="hide"/>
|
||||
<field name="ai_model" optional="show"/>
|
||||
<field name="openapi_api_key" password="True"/>
|
||||
<field name="max_tokens" optional="show"/>
|
||||
<field name="temperature"/>
|
||||
<field name="max_send_char"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="ai_robot_form_view" model="ir.ui.view">
|
||||
<field name="name">ai.robot.form</field>
|
||||
<field name="model">ai.robot</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<button string="Get List Model" type="object" name="get_ai_list_model"/>
|
||||
<button string="Get Model Info" type="object" name="get_ai_model_info"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" placeholder="Robot Name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="openapi_api_key" password="True" required="True"/>
|
||||
<field name="temperature"/>
|
||||
<field name="top_p"/>
|
||||
<field name="frequency_penalty"/>
|
||||
<field name="presence_penalty"/>
|
||||
<field name="sys_content" placeholder="Role-playing and scene setting.Give the model instructions about how it should behave and any context it should reference when generating a response."/>
|
||||
<field name="max_send_char"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="ai_model"/>
|
||||
<label class="o_form_label" for="provider">
|
||||
OpenAI Document
|
||||
</label>
|
||||
<div>
|
||||
<field name="provider"/>
|
||||
<a href="https://platform.openai.com/docs/introduction" title="OpenAI Document" class="o_doc_link" target="_blank"></a>
|
||||
</div>
|
||||
<field name="max_tokens"/>
|
||||
<field name="engine"/>
|
||||
<field name="endpoint"/>
|
||||
<field name="api_version"/>
|
||||
<field name="ai_timeout"/>
|
||||
<field name="sequence"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="is_filtering"/>
|
||||
<field name="sensitive_words" attrs="{'invisible': [('is_filtering', '=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_ai_robot" model="ir.actions.act_window">
|
||||
<field name="name">GPT Robot</field>
|
||||
<field name="res_model">ai.robot</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Let's create a GPT Robot.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="model_ai_robot_action_disconnect" model="ir.actions.server">
|
||||
<field name="name">Disconnect</field>
|
||||
<field name="model_id" ref="app_chatgpt.model_ai_robot"/>
|
||||
<field name="binding_model_id" ref="app_chatgpt.model_ai_robot"/>
|
||||
<field name="binding_view_types">list,form</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = records.action_disconnect()</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="menu_ai_robot"
|
||||
name="GPT Robot"
|
||||
parent="base.menu_users"
|
||||
sequence="2"
|
||||
action="action_ai_robot"
|
||||
groups="base.group_system"/>
|
||||
|
||||
</odoo>
|
||||
94
app_ai_bard/views/res_partner_ai_use_views.xml
Normal file
94
app_ai_bard/views/res_partner_ai_use_views.xml
Normal file
@@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="res_partner_ai_use_tree_view" model="ir.ui.view">
|
||||
<field name="name">res.partner.ai.use.tree</field>
|
||||
<field name="model">res.partner.ai.use</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name"/>
|
||||
<field name="ai_user_id" optional="show"/>
|
||||
<field name="first_ask_time" optional="show"/>
|
||||
<field name="latest_ask_time" optional="show"/>
|
||||
<field name="service_start_date" optional="show"/>
|
||||
<field name="service_end_date" optional="show"/>
|
||||
<field name="used_number" sum="Total" optional="hide"/>
|
||||
<field name="max_number" sum="Total" optional="hide"/>
|
||||
<field name="human_prompt_tokens" sum="Total" optional="show"/>
|
||||
<field name="ai_completion_tokens" sum="Total" optional="show"/>
|
||||
<field name="tokens_total" sum="Total" optional="show"/>
|
||||
<field name="token_balance" sum="Total" optional="show"/>
|
||||
<field name="token_allow" sum="Total" optional="show"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_partner_ai_use_form_view" model="ir.ui.view">
|
||||
<field name="name">res.partner.ai.use.form</field>
|
||||
<field name="model">res.partner.ai.use</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
<group>
|
||||
<group>
|
||||
<field name="ai_user_id"/>
|
||||
<field name="first_ask_time"/>
|
||||
<field name="latest_ask_time"/>
|
||||
<field name="service_start_date"/>
|
||||
<field name="service_end_date"/>
|
||||
<field name="used_number" readonly="True"/>
|
||||
<field name="max_number" readonly="True"/>
|
||||
<field name="token_balance" readonly="True"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="human_prompt_tokens" readonly="True"/>
|
||||
<field name="ai_completion_tokens" readonly="True"/>
|
||||
<field name="tokens_total" readonly="True"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_partner_ai_use_search_view" model="ir.ui.view">
|
||||
<field name="name">res.partner.ai.use.search</field>
|
||||
<field name="model">res.partner.ai.use</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name"/>
|
||||
<field name="ai_user_id"/>
|
||||
<searchpanel>
|
||||
<field name="ai_user_id"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_res_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">list,form</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">list,form</field>
|
||||
<field name="domain">[('ai_user_id', 'in', active_ids)]</field>
|
||||
<field name="context">{'default_ai_user_id':active_id,}</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="menu_res_partner_ai_use"
|
||||
name="Partner Ai Use"
|
||||
parent="base.menu_users"
|
||||
sequence="3"
|
||||
action="action_res_partner_ai_use"
|
||||
groups="base.group_system"/>
|
||||
</odoo>
|
||||
39
app_ai_bard/views/res_users_views.xml
Normal file
39
app_ai_bard/views/res_users_views.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="app_chatgpt_res_users_form" model="ir.ui.view">
|
||||
<field name="name">app.chatgpt.res.users.form</field>
|
||||
<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_partners" widget="many2many_tags" attrs="{'invisible': [('gpt_policy', '=', 'all')]}"/>
|
||||
<field name="gpt_demo_time"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<!-- search-->
|
||||
<record id="app_view_users_search" model="ir.ui.view">
|
||||
<field name="name">app.res.users.search</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='filter_no_share']" position="before">
|
||||
<filter name="is_robot" string="Ai User" domain="[('gpt_id','!=',False)]"/>
|
||||
<filter name="not_robot" string="Not Ai" domain="[('gpt_id','=',False)]"/>
|
||||
<separator/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user