From 3304a1f5a6d894180c900dd3e943f7f48218e9ec Mon Sep 17 00:00:00 2001 From: Chill Date: Wed, 12 Apr 2023 17:50:36 +0800 Subject: [PATCH] =?UTF-8?q?prepare=20#I6SC9C=20app=5Fchatgpt=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E6=8C=87=E5=AE=9A=E7=94=A8=E6=88=B7=E6=97=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BD=BF=E7=94=A8=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_chatgpt/i18n/zh_CN.po | 184 ++++++++++++++----------- app_chatgpt/models/__init__.py | 1 + app_chatgpt/models/ai_robot.py | 51 +++++-- app_chatgpt/models/lib/sensi_words.txt | 10 +- app_chatgpt/models/mail_channel.py | 4 +- app_chatgpt/models/mail_thread.py | 18 +++ app_chatgpt/models/res_users.py | 10 ++ app_chatgpt/views/res_users_views.xml | 12 ++ 8 files changed, 185 insertions(+), 105 deletions(-) create mode 100644 app_chatgpt/models/mail_thread.py diff --git a/app_chatgpt/i18n/zh_CN.po b/app_chatgpt/i18n/zh_CN.po index 5d8f2ffd..b4b143a7 100644 --- a/app_chatgpt/i18n/zh_CN.po +++ b/app_chatgpt/i18n/zh_CN.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0+e-20230320\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 10:30+0000\n" -"PO-Revision-Date: 2023-03-30 10:30+0000\n" +"POT-Creation-Date: 2023-04-12 08:53+0000\n" +"PO-Revision-Date: 2023-04-12 08:53+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -420,6 +420,11 @@ msgstr "" msgid "ABCD" msgstr "" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__ai_completion_tokens +msgid "AI Completion Tokens" +msgstr "AI使用Token" + #. module: app_chatgpt #: model:ir.model.fields,field_description:app_chatgpt.field_ai_robot__ai_model msgid "AI Model" @@ -478,13 +483,13 @@ msgstr "" #. module: app_chatgpt #: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view -msgid "Ai Center(Chatgpt)" -msgstr "Ai服务中心(Chatgpt)" +msgid "After timeout seconds then Disconnect" +msgstr "上下文连接超时(秒)" #. module: app_chatgpt #: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view -msgid "Seconds" -msgstr "秒" +msgid "Ai Center(Chatgpt)" +msgstr "Ai服务中心(Chatgpt)" #. module: app_chatgpt #: model:ir.model.fields.selection,name:app_chatgpt.selection__res_users__gpt_policy__all @@ -558,6 +563,13 @@ msgstr "" msgid "Azure" msgstr "" +#. module: app_chatgpt +#. odoo-python +#: code:addons/app_chatgpt/models/ai_robot.py:0 +#, python-format +msgid "Azure no response" +msgstr "" + #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -588,6 +600,7 @@ msgid "Bactrian" msgstr "" #. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_partner__gpt_id #: model:ir.model.fields,field_description:app_chatgpt.field_res_users__gpt_id msgid "Bind to ChatGpt" msgstr "绑定至ChatGpt" @@ -768,6 +781,16 @@ msgstr "" msgid "Config Settings" msgstr "配置设置" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_config_settings__openapi_context_timeout +msgid "Connect Timout" +msgstr "上下文连接超时" + +#. module: app_chatgpt +#: model:ir.model,name:app_chatgpt.model_res_partner +msgid "Contact" +msgstr "联系人" + #. module: app_chatgpt #: model:ir.model.fields,field_description:app_chatgpt.field_ai_robot__create_uid msgid "Created by" @@ -851,6 +874,11 @@ msgstr "" msgid "END arrow" msgstr "" +#. module: app_chatgpt +#: model:ir.model,name:app_chatgpt.model_mail_thread +msgid "Email Thread" +msgstr "EMail线程" + #. module: app_chatgpt #: model:ir.model.fields,field_description:app_chatgpt.field_ai_robot__endpoint msgid "End Point" @@ -924,6 +952,11 @@ msgstr "" msgid "Filter Sensitive Words" msgstr "是否启用敏感词过滤" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__first_ask_time +msgid "First Ask Time" +msgstr "首次发问时间" + #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -976,6 +1009,16 @@ msgstr "" msgid "Gemini" msgstr "" +#. module: app_chatgpt +#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_robot_form_view +msgid "Get List Model" +msgstr "" + +#. module: app_chatgpt +#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_robot_form_view +msgid "Get Model Info" +msgstr "" + #. module: app_chatgpt #: model:ir.model,name:app_chatgpt.model_ai_robot msgid "Gpt Robot" @@ -996,6 +1039,11 @@ msgstr "" msgid "Hindu" msgstr "" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__human_prompt_tokens +msgid "Human Prompt Tokens" +msgstr "人员使用Token" + #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -1068,7 +1116,6 @@ msgstr "" #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "Japanese" msgstr "" @@ -1356,6 +1403,11 @@ msgstr "" msgid "Max Length" msgstr "" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__max_number +msgid "Max Number of Call" +msgstr "最大发问次数" + #. module: app_chatgpt #: model:ir.model,name:app_chatgpt.model_mail_message msgid "Message" @@ -1484,6 +1536,11 @@ msgstr "" msgid "No robot provider found" msgstr "没有设置Ai接口供应方" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__used_number +msgid "Number of Used" +msgstr "已发问次数" + #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -1714,6 +1771,11 @@ msgstr "" msgid "Scorpius" msgstr "" +#. module: app_chatgpt +#: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view +msgid "Seconds" +msgstr "秒" + #. module: app_chatgpt #: model:ir.model.fields.selection,name:app_chatgpt.selection__res_users__gpt_policy__limit msgid "Selected Users" @@ -1727,13 +1789,23 @@ msgstr "额外敏感词" #. module: app_chatgpt #: model:ir.model.fields,help:app_chatgpt.field_ai_robot__sensitive_words msgid "Sensitive word filtering. Separate keywords with a carriage return." -msgstr "敏感词过滤。请用回车符分隔关键词。" +msgstr "使用此文件进行基础过滤 models/lib/sensi_words.txt" #. module: app_chatgpt #: model:ir.model.fields,field_description:app_chatgpt.field_ai_robot__sequence msgid "Sequence" msgstr "" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__service_end_date +msgid "Service End Date" +msgstr "服务到期时间" + +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__service_start_date +msgid "Service Start Date" +msgstr "服务开始时间" + #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -1880,6 +1952,11 @@ msgstr "" msgid "Temperature" msgstr "" +#. module: app_chatgpt +#: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view +msgid "Timout then disconnect(s)" +msgstr "" + #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -1902,6 +1979,11 @@ msgstr "" msgid "Tokyo tower" msgstr "" +#. module: app_chatgpt +#: model:ir.model.fields,field_description:app_chatgpt.field_res_users__tokens_total +msgid "Total Tokens" +msgstr "总使用Token量" + #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -1959,10 +2041,20 @@ msgstr "" msgid "UP! button" msgstr "" +#. module: app_chatgpt +#: model_terms:ir.ui.view,arch_db:app_chatgpt.app_chatgpt_res_users_form +msgid "Usage" +msgstr "使用情况" + +#. module: app_chatgpt +#: model:ir.model.fields,help:app_chatgpt.field_ai_robot__is_filtering +msgid "Use base Filter in dir models/lib/sensi_words.txt" +msgstr "" + #. module: app_chatgpt #: model:ir.model,name:app_chatgpt.model_res_users msgid "User" -msgstr "" +msgstr "用户" #. module: app_chatgpt #. odoo-javascript @@ -11554,8 +11646,6 @@ msgstr "" #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "hand" msgstr "" @@ -12525,7 +12615,6 @@ msgstr "" #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "ideograph" msgstr "" @@ -15194,9 +15283,6 @@ msgstr "" #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "mark" msgstr "" @@ -15215,27 +15301,6 @@ msgstr "" msgid "mark_as_good. thumbs up" msgstr "" -#. module: app_chatgpt -#. odoo-javascript -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#, python-format -msgid "mark_as_neutral. open hands" -msgstr "" - -#. module: app_chatgpt -#. odoo-javascript -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#, python-format -msgid "mark_as_redundant. waving hand" -msgstr "" - -#. module: app_chatgpt -#. odoo-javascript -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#, python-format -msgid "mark_as_unhelpful. Need more answer" -msgstr "" - #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -16420,7 +16485,6 @@ msgstr "" #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "neutral" msgstr "" @@ -17034,7 +17098,6 @@ msgstr "" #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "open" msgstr "" @@ -17056,7 +17119,6 @@ msgstr "" #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "open hands" msgstr "" @@ -19868,13 +19930,6 @@ msgstr "" msgid "red-faced" msgstr "" -#. module: app_chatgpt -#. odoo-javascript -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#, python-format -msgid "redundant" -msgstr "" - #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -24802,13 +24857,6 @@ msgstr "" msgid "unhappy" msgstr "" -#. module: app_chatgpt -#. odoo-javascript -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#, python-format -msgid "unhelpful" -msgstr "" - #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -24949,11 +24997,6 @@ msgstr "" msgid "upwards button" msgstr "" -#. module: app_chatgpt -#: model:ir.model.fields,help:app_chatgpt.field_ai_robot__sensitive_words -msgid "Use base Filter in dir models/lib/sensi_words.txt" -msgstr "使用此文件进行基础过滤 models/lib/sensi_words.txt" - #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -25402,7 +25445,6 @@ msgstr "" #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "wave" msgstr "" @@ -25411,7 +25453,6 @@ msgstr "" #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #, python-format msgid "waving" msgstr "" @@ -27089,13 +27130,6 @@ msgstr "" msgid "“monthly amount”" msgstr "" -#. module: app_chatgpt -#. odoo-javascript -#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 -#, python-format -msgid "“no vacancy”" -msgstr "" - #. module: app_chatgpt #. odoo-javascript #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 @@ -27159,22 +27193,6 @@ msgstr "" msgid "ココ" msgstr "" -#. module: app_chatgpt -#: model:ir.model.fields,field_description:app_chatgpt.field_res_config_settings__openapi_context_timeout -#: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view -msgid "Connect Timout" -msgstr "上下文连接超时" - -#. module: app_chatgpt -#: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view -msgid "After timeout seconds then Disconnect" -msgstr "上下文连接超时(秒)" - -#. module: app_chatgpt -#: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view -msgid "同步配置" -msgstr "" - #. module: app_chatgpt #: model:ir.model.fields,help:app_chatgpt.field_res_config_settings__openapi_context_timeout msgid "多少秒以内的聊天信息作为上下文继续" diff --git a/app_chatgpt/models/__init__.py b/app_chatgpt/models/__init__.py index 80d7b07b..5327e517 100644 --- a/app_chatgpt/models/__init__.py +++ b/app_chatgpt/models/__init__.py @@ -6,3 +6,4 @@ from . import ai_robot from . import res_partner from . import res_users from . import mail_message +from . import mail_thread diff --git a/app_chatgpt/models/ai_robot.py b/app_chatgpt/models/ai_robot.py index 461981a6..955f58c3 100644 --- a/app_chatgpt/models/ai_robot.py +++ b/app_chatgpt/models/ai_robot.py @@ -72,6 +72,7 @@ GPT-3 A set of models that can understand and generate natural language return False def get_ai_post(self, res, sender_id=False, answer_id=False, **kwargs): + res = self.filter_sensitive_words(res) return res def get_ai_model_info(self): @@ -107,12 +108,14 @@ GPT-3 A set of models that can understand and generate natural language r_text = 'No response.' raise UserError(r_text) - def get_openai(self, data, partner_name='odoo', *args): + def get_openai(self, data, sender_id, answer_id, *args): self.ensure_one() headers = {"Content-Type": "application/json", "Authorization": f"Bearer {self.openapi_api_key}"} - R_TIMEOUT = 300 + R_TIMEOUT = 3000 o_url = self.endpoint or "https://api.openai.com/v1/chat/completions" - + partner_name = 'odoo' + # if sender_id: + # partner_name = sender_id.name # 以下处理 open ai # 获取模型信息 # list_model = requests.get("https://api.openai.com/v1/models", headers=headers) @@ -141,13 +144,32 @@ GPT-3 A set of models that can understand and generate natural language } _logger.warning('=====================open input pdata: %s' % pdata) response = requests.post(o_url, data=json.dumps(pdata), headers=headers, timeout=R_TIMEOUT) - res = response.json() - if 'choices' in res: - # for rec in res: - # res = rec['message']['content'] - res = '\n'.join([x['message']['content'] for x in res['choices']]) - res = self.filter_sensitive_words(res) - return res + try: + res = response.json() + if 'usage' in res: + usage = res['usage'] + prompt_tokens = usage['prompt_tokens'] + completion_tokens = usage['completion_tokens'] + total_tokens = usage['total_tokens'] + vals = { + 'human_prompt_tokens': sender_id.human_prompt_tokens + prompt_tokens, + 'ai_completion_tokens': sender_id.ai_completion_tokens + completion_tokens, + 'tokens_total': sender_id.tokens_total + total_tokens, + 'used_number': sender_id.used_number + 1, + } + if not sender_id.first_ask_time: + ask_date = response.headers.get("Date") + vals.update({ + 'first_ask_time': ask_date + }) + sender_id.write(vals) + if 'choices' in res: + # for rec in res: + # res = rec['message']['content'] + res = '\n'.join([x['message']['content'] for x in res['choices']]) + return res + except Exception as e: + _logger.warning("Get Response Json failed: %s", e) else: pdata = { "model": self.ai_model, @@ -164,12 +186,11 @@ GPT-3 A set of models that can understand and generate natural language res = response.json() if 'choices' in res: res = '\n'.join([x['text'] for x in res['choices']]) - res = self.filter_sensitive_words(res) return res return "获取结果超时,请重新跟我聊聊。" - def get_azure(self, data, partner_name='odoo', *args): + def get_azure(self, data, sender_id, answer_id, *args): self.ensure_one() # only for azure openai.api_type = self.provider @@ -195,12 +216,10 @@ GPT-3 A set of models that can understand and generate natural language if 'choices' in response: res = response['choices'][0]['text'].replace(' .', '.').strip() - res = self.filter_sensitive_words(res) return res else: _logger.warning('=====================azure output data: %s' % response) return _('Azure no response') - @api.onchange('provider') def _onchange_provider(self): @@ -215,7 +234,9 @@ GPT-3 A set of models that can understand and generate natural language s = self.sensitive_words if s: search.SetKeywords(s.split('\n')) - data = search.Replace(text=data) + else: + search.SetKeywords([]) + data = search.Replace(text=data) return data else: return data diff --git a/app_chatgpt/models/lib/sensi_words.txt b/app_chatgpt/models/lib/sensi_words.txt index 0eeba15c..2ebf767a 100644 --- a/app_chatgpt/models/lib/sensi_words.txt +++ b/app_chatgpt/models/lib/sensi_words.txt @@ -1197,7 +1197,7 @@ WG 清华同方 毛江独裁 妹妹被操的淫水直流 -本?拉登 +本拉登 奶头 99BBS 嫩穴美女挖嫩穴淫女嫩穴俱乐部 @@ -1678,7 +1678,6 @@ fuck新手指导员 骚妇掰B 超级乐者 战牌 -ur 轮大 江湖 淫娘 yuming @@ -1727,7 +1726,6 @@ sb 诛仙 毛信息产业部 毛四川独立 -ri 再奸 法惀功 發@淪 @@ -3699,7 +3697,7 @@ fuck新闻管制 piss 和两勇男玩39P rfa -本?拉登 +本拉登 毛meimei黄站 米开朗基罗 温暖湿润的感觉笼罩龟头周围 @@ -3741,7 +3739,7 @@ mo li bao bei 粉红的的奶頭粉嫩的阴唇 香港淫穴 網捷信 -欽 本 立 +欽本立 谢中之 龟头挤进了姐姐的小穴 花园bt亚洲激情区 @@ -7731,7 +7729,7 @@ Priston Tale soma K他命 李文斌 -钦 本 立 +钦本立 卓奧 奥运 新诗年鉴 diff --git a/app_chatgpt/models/mail_channel.py b/app_chatgpt/models/mail_channel.py index 3c1a530f..5f3d474f 100644 --- a/app_chatgpt/models/mail_channel.py +++ b/app_chatgpt/models/mail_channel.py @@ -45,7 +45,9 @@ class Channel(models.Model): return '\n'.join(prompt[::-1]) def get_ai(self, ai, prompt, partner_name, channel, user_id, message): - res = ai.get_ai(prompt, partner_name) + sender_id = message.create_uid.partner_id + answer_id = user_id.partner_id + res = ai.get_ai(prompt, sender_id, answer_id) if res: res = res.replace('\n', '
') channel.with_user(user_id).message_post(body=res, message_type='comment', subtype_xmlid='mail.mt_comment', parent_id=message.id) diff --git a/app_chatgpt/models/mail_thread.py b/app_chatgpt/models/mail_thread.py new file mode 100644 index 00000000..14154a23 --- /dev/null +++ b/app_chatgpt/models/mail_thread.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +from odoo import fields, models, api, _ +from .lib.WordsSearch import WordsSearch + + +class MailThread(models.AbstractModel): + _inherit = "mail.thread" + + @api.returns('mail.message', lambda value: value.id) + def message_post(self, **kwargs): + self.ensure_one() + search = WordsSearch() + search.SetKeywords([]) + body = kwargs.get('body', False) + body = search.Replace(text=body) + kwargs.update({'body': body}) + return super(MailThread, self).message_post(**kwargs) diff --git a/app_chatgpt/models/res_users.py b/app_chatgpt/models/res_users.py index 2fa6a8be..7e2005f3 100644 --- a/app_chatgpt/models/res_users.py +++ b/app_chatgpt/models/res_users.py @@ -14,3 +14,13 @@ class ResUsers(models.Model): ], 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_demo_time = fields.Integer('Default Demo Time', default=0) + + first_ask_time = fields.Datetime('First Ask Time') + service_start_date = fields.Datetime('Service Start Date') + service_end_date = fields.Datetime('Service End Date') + used_number = fields.Integer('Number of Used') + max_number = fields.Integer('Max Number of Call') + human_prompt_tokens = fields.Integer('Human Prompt Tokens') + ai_completion_tokens = fields.Integer('AI Completion Tokens') + tokens_total = fields.Integer('Total Tokens') + diff --git a/app_chatgpt/views/res_users_views.xml b/app_chatgpt/views/res_users_views.xml index 77c4e5f4..16a9895a 100644 --- a/app_chatgpt/views/res_users_views.xml +++ b/app_chatgpt/views/res_users_views.xml @@ -15,6 +15,18 @@ + + + + + + + + + + + +