This commit is contained in:
ivan deng
2023-03-05 17:32:25 +08:00
parent 0536a54a4f
commit 1100aa7542
24 changed files with 1982 additions and 215 deletions

View File

@@ -9,8 +9,8 @@
# Copyright (c) 2020-Present InTechual Solutions. (<https://intechualsolutions.com/>)
{
'name': 'ChatGPT Robot Multi Chat and Training(Under Construction)',
'version': '14.23.02.20',
'name': 'Latest ChatGPT AI Center. GPT 3.5 Turbo, Dall-E Image.Multi Robot Support. Chat and Training',
'version': '14.23.03.05',
'author': 'Sunpop.cn',
'company': 'Sunpop.cn',
'maintainer': 'Sunpop.cn',
@@ -19,22 +19,26 @@
'license': 'LGPL-3',
'sequence': 10,
'license': 'AGPL-3',
'images': ['static/description/banner.png'],
'images': ['static/description/banner.gif'],
'summary': '''
Multi Odoo ChatGPT Robot. Integration All ChatGpt Api.
Chat channel with several ChatGPT Robots.
ChatGpt Odoo AI Center. Multi Odoo ChatGPT Robot. Support chatgpt 3.5 turbo, text-davinci, DALL·E, Integration All ChatGpt Api.
Easy Chat channel with several ChatGPT Robots and train.
Whitelist and blacklist for Users or IP.
Base on is_chatgpt_integration from InTechual Solutions.
''',
'description': '''
Allows the application to leverage the capabilities of the GPT language model to generate human-like responses,
providing a more natural and intuitive user experience.
1. Multi ChatGpt robot Connector. Chat and train.
2. Multi User Chat with ChatGpt
3. ChatGpt Channel for Group Chat
4. White and black List for ChatGpt
5. Demo Chat time for new user
6. Easy Start and Stop ChatGpt
Base on is_chatgpt_integration from InTechual Solutions.
1. Multi ChatGpt openAI robot Connector. Chat and train.
2. Multi Api support, Chatgpt 3.5 Turbo, Chatgpt 3 Davinci, Chatgpt 2 Code Optimized, 'Dall-E Image.
3. Bind ChatGpt Api to user. So we can chat to robot user or use ChatGpt Channel for Group Chat.
4. White and black List for ChatGpt.
5. Setup Demo Chat time for every new user.
6. Easy Start and Stop ChatGpt.
7. Evaluation the ai robot to make better response. This training.
11. Multi-language Support. Multi-Company Support.
12. Support Odoo 16,15,14,13,12, Enterprise and Community and odoo.sh Edition.
13. Full Open Source.
''',
'depends': ['base', 'base_setup', 'mail'],
'data': [

View File

@@ -4,7 +4,7 @@
<record id="config_openapi_context_timeout" model="ir.config_parameter">
<field name="key">app_chatgpt.openapi_context_timeout</field>
<field name="value">600</field>
<field name="value">300</field>
</record>
</data>

View File

@@ -10,8 +10,28 @@ class AiRobot(models.Model):
_order = 'sequence, name'
name = fields.Char(string='Name', translate=True)
provider = fields.Selection(string="AI Provider", selection=[('openai', 'OpenAI')], required=True, default='openai')
ai_model = fields.Selection(string="AI Model", selection=[
('gpt-3.5-turbo', 'Chatgpt 3.5 Turbo'),
('gpt-3.5-turbo-0301', 'Chatgpt 3.5 Turbo on 20230301'),
('text-davinci-003', 'Chatgpt 3 Davinci'),
('code-davinci-002', 'Chatgpt 2 Code Optimized'),
('text-davinci-002', 'Chatgpt 2 Davinci'),
('dall-e2', 'Dall-E Image'),
], required=True, default='gpt-3.5-turbo',
help="""
GPT-3.5: A set of models that improve on GPT-3 and can understand as well as generate natural language or code
DALL·E: A model that can generate and edit images given a natural language prompt
Whisper: A model that can convert audio into text
Embeddings: A set of models that can convert text into a numerical form
CodexLimited: A set of models that can understand and generate code, including translating natural language to code
Moderation: A fine-tuned model that can detect whether text may be sensitive or unsafe
GPT-3 A set of models that can understand and generate natural language
""")
openapi_api_key = fields.Char(string="API Key", help="Provide the API key here")
temperature = fields.Float(string='Temperature', default=0.9)
sequence = fields.Integer('Sequence', help="Determine the display order", default=10)
def action_disconnect(self):

View File

@@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2020-Present InTechual Solutions. (<https://intechualsolutions.com/>)
import openai
import requests,json
import datetime
# from transformers import TextDavinciTokenizer, TextDavinciModel
from odoo import api, fields, models, _
from odoo.exceptions import UserError
import logging
@@ -14,25 +15,60 @@ class Channel(models.Model):
_inherit = 'mail.channel'
@api.model
def get_openai(self, api_key, data, user="Odoo"):
def get_openai(self, api_key, ai_model, data, user="Odoo"):
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"}
pdata = {
"model": "text-davinci-003",
"prompt": data,
"temperature": 0.9,
"max_tokens": 2000,
"top_p": 1,
"frequency_penalty": 0.0,
"presence_penalty": 0.6,
"user": user,
"stop": ["Human:", "AI:"]
}
response = requests.post("https://api.openai.com/v1/completions", data=json.dumps(pdata), headers=headers)
res = response.json()
if 'choices' in res:
return '\n'.join([x['text'] for x in res['choices']])
_logger.error(res)
R_TIMEOUT = 5
if ai_model == 'dall-e2':
# todo: 处理 图像引擎,主要是返回参数到聊天中
# image_url = response['data'][0]['url']
# https://platform.openai.com/docs/guides/images/introduction
pdata = {
"prompt": data,
"n": 3,
"size": "1024x1024",
}
return '建设中'
elif ai_model in ['gpt-3.5-turbo', 'gpt-3.5-turbo-0301']:
pdata = {
"model": ai_model,
"messages": [{"role": "user", "content": data}],
"temperature": 0.9,
"max_tokens": 2000,
"top_p": 1,
"frequency_penalty": 0.0,
"presence_penalty": 0.6,
"user": user,
"stop": ["Human:", "AI:"]
}
response = requests.post("https://api.openai.com/v1/chat/completions", 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']])
return res
else:
pdata = {
"model": ai_model,
"prompt": data,
"temperature": 0.9,
"max_tokens": 2000,
"top_p": 1,
"frequency_penalty": 0.0,
"presence_penalty": 0.6,
"user": user,
"stop": ["Human:", "AI:"]
}
response = requests.post("https://api.openai.com/v1/completions", data=json.dumps(pdata), headers=headers, timeout=R_TIMEOUT)
res = response.json()
if 'choices' in res:
res = '\n'.join([x['text'] for x in res['choices']])
return res
# 获取模型信息
# list_model = requests.get("https://api.openai.com/v1/models", headers=headers)
# model_info = requests.get("https://api.openai.com/v1/models/%s" % ai_model, headers=headers)
return "获取结果超时,请重新跟我聊聊。"
@api.model
@@ -142,21 +178,22 @@ class Channel(models.Model):
# print(msg_vals.get('record_name', ''))
# print('self.channel_type :',self.channel_type)
if gpt_id:
chatgpt_name = str(gpt_id.name or '') + ', '
ai_model = gpt_id.ai_model or 'text-davinci-003'
# print('chatgpt_name:', chatgpt_name)
# if author_id != to_partner_id.id and (chatgpt_name in msg_vals.get('record_name', '') or 'ChatGPT' in msg_vals.get('record_name', '') ) and self.channel_type == 'chat':
if author_id != to_partner_id.id and self.channel_type == 'chat':
_logger.info(f'私聊:author_id:{author_id},partner_chatgpt.id:{to_partner_id.id}')
try:
channel = self.env[msg_vals.get('model')].browse(msg_vals.get('res_id'))
prompt = self.get_openai_context(channel.id, to_partner_id.id, prompt,openapi_context_timeout)
if ai_model not in ['gpt-3.5-turbo', 'gpt-3.5-turbo-0301']:
prompt = self.get_openai_context(channel.id, to_partner_id.id, prompt, openapi_context_timeout)
print(prompt)
# res = self.get_chatgpt_answer(prompt,partner_name)
res = self.get_openai(api_key, prompt, partner_name)
res = self.get_openai(api_key, ai_model, prompt, partner_name)
res = res.replace('\n', '<br/>')
# print('res:',res)
# print('channel:',channel)
channel.with_user(user_id).message_post(body=res, message_type='comment',subtype_xmlid='mail.mt_comment',parent_id=message.id)
channel.with_user(user_id).message_post(body=res, message_type='comment',subtype_xmlid='mail.mt_comment', parent_id=message.id)
# channel.with_user(user_chatgpt).message_post(body=res, message_type='notification', subtype_xmlid='mail.mt_comment')
# channel.sudo().message_post(
# body=res,
@@ -171,10 +208,10 @@ class Channel(models.Model):
elif author_id != to_partner_id.id and msg_vals.get('model', '') == 'mail.channel' and msg_vals.get('res_id', 0) == chatgpt_channel_id.id:
_logger.info(f'频道群聊:author_id:{author_id},partner_chatgpt.id:{to_partner_id.id}')
try:
prompt = self.get_openai_context(chatgpt_channel_id.id, to_partner_id.id, prompt,openapi_context_timeout)
prompt = self.get_openai_context(chatgpt_channel_id.id, to_partner_id.id, prompt, openapi_context_timeout)
# print(prompt)
# res = self.get_chatgpt_answer(prompt, partner_name)
res = self.get_openai(api_key, prompt, partner_name)
res = self.get_openai(api_key, ai_model, prompt, partner_name)
res = res.replace('\n', '<br/>')
chatgpt_channel_id.with_user(user_id).message_post(body=res, message_type='comment', subtype_xmlid='mail.mt_comment',parent_id=message.id)
except Exception as e:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,24 @@
{
"id": "gpt-3.5-turbo",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"permission": [
{
"id": "modelperm-ZErASyl63fhYUeMMk7QKOHAB",
"object": "model_permission",
"created": 1677691854,
"allow_create_engine": false,
"allow_sampling": true,
"allow_logprobs": true,
"allow_search_indices": false,
"allow_view": true,
"allow_fine_tuning": false,
"organization": "*",
"group": null,
"is_blocking": false
}
],
"root": "gpt-3.5-turbo",
"parent": null
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -1,189 +1,198 @@
<section class="oe_container">
<div class="oe_row oe_spaced">
<h1 class="oe_slogan" style="color:#875A7B;">ChatGPT Robot Multi Chat and Training</h1>
<h2 class="oe_slogan" style="color:#875A7B;">More powerful features. Multi chatgpt training at the same time. Base on Integrate Odoo with ChatGPT from InTechual Solutions</h2>
<h3 class="oe_slogan">Allows the application to leverage the capabilities of the GPT language model to generate human-like responses, providing a more natural and intuitive user experience</h3>
<div class="oe_demo oe_picture oe_screenshot">
<img src="banner.png">
</div>
</div>
</section>
<br/>
<br/>
<section class="oe_container oe_mt32">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="color:#875A7B;">Configure ChatGPT API Key</h2>
<h3 class="oe_slogan">Get your OpenAPI API Key</h3>
<div class="oe_span12">
<p class="oe_mt32 oe_mb32 text-justify">Get your OpenAPI API Key from: <a href="https://platform.openai.com/account/api-keys">https://platform.openai.com/account/api-keys</a></p>
<div class="oe_demo oe_picture oe_screenshot">
<img class='img-responsive' src="api_key.png">
</div>
</div>
</div>
</section>
<br/>
<br/>
<div class="oe_row oe_spaced" >
<div class="oe_span12">
<h2 class="oe_slogan"> Latest ChatGPT AI Center. GPT 3.5, Dall-E Image.Multi Robot Support. Chat and Training </h2>
<h3 class="oe_slogan"> Support chatgpt 3.5 turbo, text-davinci, DALL·E(Working Now.), Integration All ChatGpt Api </h3>
<div class="oe_row">
<h3>Lastest update: v16.23.03.05</h3>
<div class="oe_span12">
<img class="oe_demo oe_screenshot" style="max-height: 100%;" src="banner.gif">
</div>
<div class="oe_span12 oe_spaced">
<div class="alert alert-info" style="padding:8px;font-weight: 300; font-size: 20px;">
<i class="fa fa-hand-o-right"></i><b> Key features: </b>
<ul class="list-unstyled">
<li>
<i class="fa fa-check-square-o text-primary"></i>
1. Multi ChatGpt openAI robot Connector. Chat and train.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
2. Multi Api support, Chatgpt 3.5 Turbo, Chatgpt 3 Davinci, Chatgpt 2 Code Optimized, 'Dall-E Image.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
3. Bind ChatGpt Api to user. So we can chat to robot user or use ChatGpt Channel for Group Chat.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
4. White and black List for ChatGpt.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
5. Setup Demo Chat time for every new user.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
6. Easy Start and Stop ChatGpt.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
7. Evaluation the ai robot to make better response. This training.
</li>
<section class="oe_container oe_mt32">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="color:#875A7B;">Get Best from ChatGPT</h2>
<div class="oe_span12">
<p class="oe_mt32 oe_mb32 text-justify">Give your promts to ChatGPT and get best out of AI.</p>
<div class="oe_demo oe_picture oe_screenshot">
<img class='img-responsive' src="chatgpt_chat.png">
<li>
<i class="fa fa-check-square-o text-primary"></i>
11. Multi-language Support. Multi-Company Support.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
12. Support Odoo 16,15,14,13,12, Enterprise and Community and odoo.sh Edition.
</li>
<li>
<i class="fa fa-check-square-o text-primary"></i>
13. Full Open Source.
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<br/>
<br/>
<section class="oe_container oe_mt32">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="color:#875A7B;">Training Chatgpt robot</h2>
<div class="oe_span12">
<p class="oe_mt32 oe_mb32 text-justify">You can mark the answer from chatGpt as Good / Bad / Neutral / Redundant / Unhelpful.</p>
<div class="oe_demo oe_picture oe_screenshot">
<img class='img-responsive' src="chatgpt_chat.png">
</div>
</div>
</div>
</section>
<br/>
<br/>
<section class="oe_container oe_mt32">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="color:#875A7B;">Requirements</h2>
<div class="oe_span12">
<p class="oe_mt32 oe_mb32">
<strong>openai</strong> python library - <br/><code>sudo python3 -m pip install openai</code>
<br/>
- OR -
<br/>
<code>pip install openai</code>
Note: Contact us if you find any difficulties in setup/installation.
</p>
</div>
</div>
</section>
<br/>
<br/>
<section class="oe_container">
<div class="oe_row oe_spaced">
<div class="oe_span12">
<h4 class="oe_slogan"> <a href="https://youtu.be/KwkWk4terrs" target="_blank" style="color: #FFFFFF !important; border-radius: 0; background-color: #f05c4e; border-color: #005ca7; padding: 15px; font-weight: bold;">
<i class="fa fa-youtube"></i>
Watch on YouTube
</a></h4>
<center>
</center>
</div>
</div>
</section>
<section class="oe_container">
<h2 class="oe_slogan" style="color:#875A7B;">Our other apps you may like!</h2>
<div id="slides" class="row carousel slide mt64 mb32" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active" style="min-height: 0px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_all_in_one" target="_blank">
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;">
<img class="img img-responsive center-block" style="border-top-left-radius: 10px; width: 360px; height: 180px; border-top-right-radius: 10px;" src="wp_all_in_one.gif">
<h4 class="mt0" style="padding:6% 4%;text-align: center;white-space: nowrap;width: 100%;overflow: hidden;text-overflow: ellipsis;font-family: Roboto-medium;">
WhatsApp All In One
</h4>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_sale_integration" target="_blank">
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;">
<img class="img img-responsive center-block"
style="border-top-left-radius: 10px; width: 360px; height: 180px; border-top-right-radius: 10px;"
src="whatsapp_sale_integration.png"/>
<h4 class="mt0" style="padding:6&#37; 4&#37;;text-align: center;white-space: nowrap;width: 100&#37;;overflow: hidden;text-overflow: ellipsis;font-family: Roboto-medium;">
WhatsApp Delivery Integration
</h4>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_invoice_integration" target="_blank">
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;">
<img class="img img-responsive center-block"
style="border-top-left-radius: 10px; width: 360px; height: 180px; border-top-right-radius: 10px;"
src="whatsapp_invoice_integration.png"/>
<h4 class="mt0" style="padding:6&#37; 4&#37;;text-align: center;white-space: nowrap;width: 100&#37;;overflow: hidden;text-overflow: ellipsis;font-family: Roboto-medium;">
WhatsApp Invoice Integration
</h4>
</div>
</a>
</div>
</div>
<div class="carousel-item">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_pos_integration" target="_blank">
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;">
<img class="img img-responsive center-block"
style="border-top-left-radius: 10px; width: 360px; height: 180px; border-top-right-radius: 10px;"
src="whatsapp_pos_integration.png"/>
<h4 class="mt0" style="padding:6&#37; 4&#37;;text-align: center;white-space: nowrap;width: 100&#37;;overflow: hidden;text-overflow: ellipsis;font-family: Roboto-medium;">
WhatsApp PoS Integration
</h4>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_purchase_integration" target="_blank">
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;">
<img class="img img-responsive center-block"
style="border-top-left-radius: 10px; width: 360px; height: 180px; border-top-right-radius: 10px;"
src="whatsapp_purchase_integration.png"/>
<h4 class="mt0" style="padding:6&#37; 4&#37;;text-align: center;white-space: nowrap;width: 100&#37;;overflow: hidden;text-overflow: ellipsis;font-family: Roboto-medium;">
WhatsApp Purchase Integration
</h4>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_payment_integration" target="_blank">
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;">
<img class="img img-responsive center-block"
style="border-top-left-radius: 10px; width: 360px; height: 180px; border-top-right-radius: 10px;"
src="whatsapp_payment_integration.png"/>
<h4 class="mt0" style="padding:6&#37; 4&#37;;text-align: center;white-space: nowrap;width: 100&#37;;overflow: hidden;text-overflow: ellipsis;font-family: Roboto-medium;">
WhatsApp Payments Integration
</h4>
</div>
</a>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#slides" data-slide="prev" style="left:-25px;width: 35px;color: #000;">
<span class="carousel-control-prev-icon"><i class="fa fa-chevron-left" style="font-size:24px"></i></span>
</a>
<a class="carousel-control-next" href="#slides" data-slide="next" style="right:-25px;width: 35px;color: #000;">
<span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span>
</a>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<div class="oe_span12">
<h2 class="oe_slogan" style="color:#875A7B;">Support</h2>
<p class="text-center">
<a href="https://intechualsolutions.com" target="_blank" style="font-weight:bold; font-size:30px; color:#777 !important"><img class="img img-responsive center-block"
style="border-top-left-radius: 10px; width: 360px; height: 115px; border-top-right-radius: 10px;" src="logo.png"/></a>
</p>
<p class="oe_slogan">
Please contact us if you need customization/support for this module <a href="mailto:info@intechualsolutions.com">info@intechualsolutions.com</a>
</p>
<p class="text-center">
<a class="btn btn-success mt8" title="Website" style="background-color: #ff824c; color: #FFFFFF !important;" href="https://intechualsolutions.com" target="_blank"> https://intechualsolutions.com </a>
<a class="btn btn-success mt8" title="Website" style="background-color: #3b406d; color: #FFFFFF !important;" href="mailto:info@intechualsolutions.com"> Support </a><br/><br/>
<span>Note: We have changed our company name from <b>Ascents Entrepreneurs</b> to <b>InTechual Solutions</b></span>
</p>
<h1 class="text-danger text-center">1. Multi ChatGpt openAI robot Connector. Chat and train.</h1>
<h4 class="oe_slogan"> Goto Setting--> GPT Robot to setup your robot api. </h4>
<p> Input your api key, And Select the api model you need to use.</p>
<div class="oe_demo oe_screenshot">
<img src="demo1.jpg"/>
</div>
<p> You can set the Temperature higer for more creative answer.</p>
<div class="oe_demo oe_screenshot">
<img src="demo2.jpg"/>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h1 class="text-danger text-center">2. Multi Api support, Chatgpt 3.5 Turbo, Chatgpt 3 Davinci, Chatgpt 2 Code Optimized, 'Dall-E Image.</h1>
<h4 class="oe_slogan"> Choose the model you want to use</h4>
<div class="oe_demo oe_screenshot">
<img src="demo2.jpg"/>
</div>
<p> You can set the Temperature higer for more creative answer.</p>
<div class="oe_demo oe_screenshot">
<img src="demo3.jpg"/>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h1 class="text-danger text-center">3. Bind ChatGpt Api to user. So we can chat to robot user or use ChatGpt Channel for Group Chat.</h1>
<h4 class="oe_slogan"> Go Settings ->users, bind chatgpt to some user.</h4>
<img src="demo4.jpg"/>
</div>
<h4 class="oe_slogan"> So you can have many user, and many chatgpt robot. This provide you an Ai pool.</h4>
<div class="oe_demo oe_screenshot">
<img src="demo5.jpg"/>
</div>
<h4 class="oe_slogan"> You can set the blacklist to this chatgpt robot to limit request. Also you can setup Demo time for every normal user..</h4>
<div class="oe_demo oe_screenshot">
<img src="demo6.jpg"/>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h1 class="text-danger text-center">4. White and black List for ChatGpt.</h1>
<h1 class="text-danger text-center">5. Setup Demo Chat time for every new user.</h1>
<h4 class="oe_slogan"> You can set the blacklist to this chatgpt robot to limit request. Also you can setup Demo time for every normal user..</h4>
<div class="oe_demo oe_screenshot">
<img src="demo6.jpg"/>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h1 class="text-danger text-center">6. Easy Start and Stop ChatGpt..</h1>
<h4 class="oe_slogan"> You can easy chat with the apt robot with odoo IM</h4>
<div class="oe_demo oe_screenshot">
<img src="demo7.jpg"/>
</div>
<h4 class="oe_slogan"> You can chat with several robot in the same time</h4>
<div class="oe_demo oe_screenshot">
<img src="demo8.jpg"/>
</div>
<h4 class="oe_slogan"> If you have more than 1 robot in the group. you can @ the specify robot.</h4>
<div class="oe_demo oe_screenshot">
<img src="demo9.jpg"/>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h1 class="text-danger text-center">7. Evaluation the ai robot to make better response. This training.</h1>
<h4 class="oe_slogan"> You can Evaluation chatgpt's answer. Mark as good for good answer. Mark as back for bad answer.</h4>
<p> With Evaluation, you can make your ai robot more smart.
<div class="oe_demo oe_screenshot">
<img src="demoa.jpg"/>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h1 class="text-danger text-center">Multi-language Support..</h1>
<h4 class="oe_slogan"> </h4>
<div class="oe_demo oe_screenshot">
<img src="cnreadme.jpg"/>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_spaced text-center">
<div class="oe_span12">
<h2 class="oe_slogan">Technical Help & Support</h2>
</div>
<div class="col-md-12 pad0">
<div class="oe_mt16">
<p><h4>
For any type of technical help & support requests, Feel free to contact us</h4></p>
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
<p><h4>
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:300883@qq.com"><span
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
<i class="fa fa-envelope"></i> 300883@qq.com</a>
</div>
<div class="oe_mt16">
<p><h4>
Visit our website for more support.</h4></p>
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
class="btn btn-warning btn-lg" rel="nofollow" href="https://www.sunpop.cn" target="_blank"><span
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
<i class="fa fa-web"></i>https://www.sunpop.cn</a>
</div>
</div>
</div>
<div class="oe_row oe_spaced text-center">
<h1>More Powerful addons, Make your odoo very easy to use, easy customize:
<a class="btn btn-primary mb16" href="http://www.odoo.com/apps/modules/browse?author=Sunpop.cn">Supop.cn Odoo Addons</a>
</h1>
</div>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -7,6 +7,8 @@
<tree>
<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="temperature"/>
</tree>
@@ -26,6 +28,16 @@
<field name="temperature"/>
<field name="sequence"/>
</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>
</group>
</group>
</sheet>
</form>