add gpt
@@ -9,8 +9,8 @@
|
|||||||
# Copyright (c) 2020-Present InTechual Solutions. (<https://intechualsolutions.com/>)
|
# Copyright (c) 2020-Present InTechual Solutions. (<https://intechualsolutions.com/>)
|
||||||
|
|
||||||
{
|
{
|
||||||
'name': 'ChatGPT Robot Multi Chat and Training(Under Construction)',
|
'name': 'Latest ChatGPT AI Center. GPT 3.5 Turbo, Dall-E Image.Multi Robot Support. Chat and Training',
|
||||||
'version': '15.23.02.20',
|
'version': '15.23.03.05',
|
||||||
'author': 'Sunpop.cn',
|
'author': 'Sunpop.cn',
|
||||||
'company': 'Sunpop.cn',
|
'company': 'Sunpop.cn',
|
||||||
'maintainer': 'Sunpop.cn',
|
'maintainer': 'Sunpop.cn',
|
||||||
@@ -19,22 +19,26 @@
|
|||||||
'license': 'LGPL-3',
|
'license': 'LGPL-3',
|
||||||
'sequence': 10,
|
'sequence': 10,
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
'images': ['static/description/banner.png'],
|
'images': ['static/description/banner.gif'],
|
||||||
'summary': '''
|
'summary': '''
|
||||||
Multi Odoo ChatGPT Robot. Integration All ChatGpt Api.
|
ChatGpt Odoo AI Center. Multi Odoo ChatGPT Robot. Support chatgpt 3.5 turbo, text-davinci, DALL·E, Integration All ChatGpt Api.
|
||||||
Chat channel with several ChatGPT Robots.
|
Easy Chat channel with several ChatGPT Robots and train.
|
||||||
Whitelist and blacklist for Users or IP.
|
Whitelist and blacklist for Users or IP.
|
||||||
Base on is_chatgpt_integration from InTechual Solutions.
|
|
||||||
''',
|
''',
|
||||||
'description': '''
|
'description': '''
|
||||||
Allows the application to leverage the capabilities of the GPT language model to generate human-like responses,
|
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.
|
providing a more natural and intuitive user experience.
|
||||||
1. Multi ChatGpt robot Connector. Chat and train.
|
Base on is_chatgpt_integration from InTechual Solutions.
|
||||||
2. Multi User Chat with ChatGpt
|
1. Multi ChatGpt openAI robot Connector. Chat and train.
|
||||||
3. ChatGpt Channel for Group Chat
|
2. Multi Api support, Chatgpt 3.5 Turbo, Chatgpt 3 Davinci, Chatgpt 2 Code Optimized, 'Dall-E Image.
|
||||||
4. White and black List for ChatGpt
|
3. Bind ChatGpt Api to user. So we can chat to robot user or use ChatGpt Channel for Group Chat.
|
||||||
5. Demo Chat time for new user
|
4. White and black List for ChatGpt.
|
||||||
6. Easy Start and Stop 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'],
|
'depends': ['base', 'base_setup', 'mail'],
|
||||||
'data': [
|
'data': [
|
||||||
@@ -47,14 +51,14 @@
|
|||||||
'views/ai_robot_views.xml',
|
'views/ai_robot_views.xml',
|
||||||
'views/res_users_views.xml',
|
'views/res_users_views.xml',
|
||||||
],
|
],
|
||||||
# 'assets': {
|
'assets': {
|
||||||
# 'mail.assets_messaging': [
|
'mail.assets_messaging': [
|
||||||
# 'app_chatgpt/static/src/models/*.js',
|
'app_chatgpt/static/src/models/*.js',
|
||||||
# ],
|
],
|
||||||
# 'mail.assets_model_data': [
|
'mail.assets_model_data': [
|
||||||
# 'app_chatgpt/static/src/models_data/*.js',
|
'app_chatgpt/static/src/models_data/*.js',
|
||||||
# ],
|
],
|
||||||
# },
|
},
|
||||||
'external_dependencies': {'python': ['openai']},
|
'external_dependencies': {'python': ['openai']},
|
||||||
'installable': True,
|
'installable': True,
|
||||||
'application': True,
|
'application': True,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<record id="config_openapi_context_timeout" model="ir.config_parameter">
|
<record id="config_openapi_context_timeout" model="ir.config_parameter">
|
||||||
<field name="key">app_chatgpt.openapi_context_timeout</field>
|
<field name="key">app_chatgpt.openapi_context_timeout</field>
|
||||||
<field name="value">600</field>
|
<field name="value">300</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -10,8 +10,28 @@ class AiRobot(models.Model):
|
|||||||
_order = 'sequence, name'
|
_order = 'sequence, name'
|
||||||
|
|
||||||
name = fields.Char(string='Name', translate=True)
|
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")
|
openapi_api_key = fields.Char(string="API Key", help="Provide the API key here")
|
||||||
temperature = fields.Float(string='Temperature', default=0.9)
|
temperature = fields.Float(string='Temperature', default=0.9)
|
||||||
|
|
||||||
|
|
||||||
sequence = fields.Integer('Sequence', help="Determine the display order", default=10)
|
sequence = fields.Integer('Sequence', help="Determine the display order", default=10)
|
||||||
|
|
||||||
def action_disconnect(self):
|
def action_disconnect(self):
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2020-Present InTechual Solutions. (<https://intechualsolutions.com/>)
|
|
||||||
|
|
||||||
import openai
|
import openai
|
||||||
import requests,json
|
import requests,json
|
||||||
import datetime
|
import datetime
|
||||||
|
# from transformers import TextDavinciTokenizer, TextDavinciModel
|
||||||
from odoo import api, fields, models, _
|
from odoo import api, fields, models, _
|
||||||
from odoo.exceptions import UserError
|
from odoo.exceptions import UserError
|
||||||
import logging
|
import logging
|
||||||
@@ -14,10 +15,42 @@ class Channel(models.Model):
|
|||||||
_inherit = 'mail.channel'
|
_inherit = 'mail.channel'
|
||||||
|
|
||||||
@api.model
|
@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}"}
|
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"}
|
||||||
|
R_TIMEOUT = 5
|
||||||
|
|
||||||
|
if ai_model == 'dall-e2':
|
||||||
|
# todo: 处理 图像引擎,主要是返回参数到聊天中
|
||||||
|
# image_url = response['data'][0]['url']
|
||||||
|
# https://platform.openai.com/docs/guides/images/introduction
|
||||||
pdata = {
|
pdata = {
|
||||||
"model": "text-davinci-003",
|
"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,
|
"prompt": data,
|
||||||
"temperature": 0.9,
|
"temperature": 0.9,
|
||||||
"max_tokens": 2000,
|
"max_tokens": 2000,
|
||||||
@@ -27,12 +60,15 @@ class Channel(models.Model):
|
|||||||
"user": user,
|
"user": user,
|
||||||
"stop": ["Human:", "AI:"]
|
"stop": ["Human:", "AI:"]
|
||||||
}
|
}
|
||||||
response = requests.post("https://api.openai.com/v1/completions", data=json.dumps(pdata), headers=headers)
|
response = requests.post("https://api.openai.com/v1/completions", data=json.dumps(pdata), headers=headers, timeout=R_TIMEOUT)
|
||||||
res = response.json()
|
res = response.json()
|
||||||
if 'choices' in res:
|
if 'choices' in res:
|
||||||
return '\n'.join([x['text'] for x in res['choices']])
|
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)
|
||||||
|
|
||||||
_logger.error(res)
|
|
||||||
return "获取结果超时,请重新跟我聊聊。"
|
return "获取结果超时,请重新跟我聊聊。"
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
@@ -142,17 +178,18 @@ class Channel(models.Model):
|
|||||||
# print(msg_vals.get('record_name', ''))
|
# print(msg_vals.get('record_name', ''))
|
||||||
# print('self.channel_type :',self.channel_type)
|
# print('self.channel_type :',self.channel_type)
|
||||||
if gpt_id:
|
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)
|
# 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 (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':
|
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}')
|
_logger.info(f'私聊:author_id:{author_id},partner_chatgpt.id:{to_partner_id.id}')
|
||||||
try:
|
try:
|
||||||
channel = self.env[msg_vals.get('model')].browse(msg_vals.get('res_id'))
|
channel = self.env[msg_vals.get('model')].browse(msg_vals.get('res_id'))
|
||||||
|
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)
|
prompt = self.get_openai_context(channel.id, to_partner_id.id, prompt, openapi_context_timeout)
|
||||||
print(prompt)
|
print(prompt)
|
||||||
# res = self.get_chatgpt_answer(prompt,partner_name)
|
# 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/>')
|
res = res.replace('\n', '<br/>')
|
||||||
# print('res:',res)
|
# print('res:',res)
|
||||||
# print('channel:',channel)
|
# print('channel:',channel)
|
||||||
@@ -174,7 +211,7 @@ class Channel(models.Model):
|
|||||||
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)
|
# print(prompt)
|
||||||
# res = self.get_chatgpt_answer(prompt, partner_name)
|
# 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/>')
|
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)
|
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:
|
except Exception as e:
|
||||||
|
|||||||
1661
app_chatgpt/models/z_list_model.json
Normal file
24
app_chatgpt/models/z_model_info.json
Normal 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
|
||||||
|
}
|
||||||
BIN
app_chatgpt/static/description/banner.gif
Normal file
|
After Width: | Height: | Size: 971 KiB |
|
Before Width: | Height: | Size: 261 KiB After Width: | Height: | Size: 265 KiB |
BIN
app_chatgpt/static/description/demo1.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
app_chatgpt/static/description/demo2.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
app_chatgpt/static/description/demo3.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
app_chatgpt/static/description/demo4.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
app_chatgpt/static/description/demo5.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
app_chatgpt/static/description/demo6.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
app_chatgpt/static/description/demo7.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
app_chatgpt/static/description/demo8.png
Normal file
|
After Width: | Height: | Size: 379 KiB |
BIN
app_chatgpt/static/description/demo9.png
Normal file
|
After Width: | Height: | Size: 401 KiB |
BIN
app_chatgpt/static/description/demoa.png
Normal file
|
After Width: | Height: | Size: 348 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 89 KiB |
@@ -1,189 +1,198 @@
|
|||||||
<section class="oe_container">
|
<section class="oe_container">
|
||||||
<div class="oe_row oe_spaced" >
|
<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">
|
<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>
|
<h2 class="oe_slogan"> Latest ChatGPT AI Center. GPT 3.5, Dall-E Image.Multi Robot Support. Chat and Training </h2>
|
||||||
<div class="oe_demo oe_picture oe_screenshot">
|
<h3 class="oe_slogan"> Support chatgpt 3.5 turbo, text-davinci, DALL·E(Working Now.), Integration All ChatGpt Api </h3>
|
||||||
<img class='img-responsive' src="api_key.png">
|
<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>
|
||||||
</div>
|
<div class="oe_span12 oe_spaced">
|
||||||
</div>
|
<div class="alert alert-info" style="padding:8px;font-weight: 300; font-size: 20px;">
|
||||||
</section>
|
<i class="fa fa-hand-o-right"></i><b> Key features: </b>
|
||||||
<br/>
|
<ul class="list-unstyled">
|
||||||
<br/>
|
<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">
|
<li>
|
||||||
<div class="oe_row oe_spaced">
|
<i class="fa fa-check-square-o text-primary"></i>
|
||||||
<h2 class="oe_slogan" style="color:#875A7B;">Get Best from ChatGPT</h2>
|
11. Multi-language Support. Multi-Company Support.
|
||||||
<div class="oe_span12">
|
</li>
|
||||||
<p class="oe_mt32 oe_mb32 text-justify">Give your promts to ChatGPT and get best out of AI.</p>
|
<li>
|
||||||
<div class="oe_demo oe_picture oe_screenshot">
|
<i class="fa fa-check-square-o text-primary"></i>
|
||||||
<img class='img-responsive' src="chatgpt_chat.png">
|
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>
|
</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>
|
</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% 4%;text-align: center;white-space: nowrap;width: 100%;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% 4%;text-align: center;white-space: nowrap;width: 100%;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% 4%;text-align: center;white-space: nowrap;width: 100%;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% 4%;text-align: center;white-space: nowrap;width: 100%;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% 4%;text-align: center;white-space: nowrap;width: 100%;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>
|
||||||
|
|
||||||
<section class="oe_container">
|
<section class="oe_container">
|
||||||
<div class="oe_row oe_spaced">
|
<div class="oe_row oe_spaced">
|
||||||
<div class="oe_span12">
|
<h1 class="text-danger text-center">1. Multi ChatGpt openAI robot Connector. Chat and train.</h1>
|
||||||
<h2 class="oe_slogan" style="color:#875A7B;">Support</h2>
|
<h4 class="oe_slogan"> Goto Setting--> GPT Robot to setup your robot api. </h4>
|
||||||
<p class="text-center">
|
<p> Input your api key, And Select the api model you need to use.</p>
|
||||||
<a href="https://intechualsolutions.com" target="_blank" style="font-weight:bold; font-size:30px; color:#777 !important"><img class="img img-responsive center-block"
|
<div class="oe_demo oe_screenshot">
|
||||||
style="border-top-left-radius: 10px; width: 360px; height: 115px; border-top-right-radius: 10px;" src="logo.png"/></a>
|
<img src="demo1.jpg"/>
|
||||||
</p>
|
</div>
|
||||||
<p class="oe_slogan">
|
<p> You can set the Temperature higer for more creative answer.</p>
|
||||||
Please contact us if you need customization/support for this module <a href="mailto:info@intechualsolutions.com">info@intechualsolutions.com</a>
|
<div class="oe_demo oe_screenshot">
|
||||||
</p>
|
<img src="demo2.jpg"/>
|
||||||
<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>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</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>
|
||||||
|
|
||||||
|
|||||||
BIN
app_chatgpt/static/description/src/chatgpt_logo.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
app_chatgpt/static/description/src/chatgpt_white.png
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
app_chatgpt/static/description/src/code_bg.gif
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
@@ -7,6 +7,8 @@
|
|||||||
<tree>
|
<tree>
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
|
<field name="provider" optional="hide"/>
|
||||||
|
<field name="ai_model" optional="show"/>
|
||||||
<field name="openapi_api_key" password="True"/>
|
<field name="openapi_api_key" password="True"/>
|
||||||
<field name="temperature"/>
|
<field name="temperature"/>
|
||||||
</tree>
|
</tree>
|
||||||
@@ -26,6 +28,16 @@
|
|||||||
<field name="temperature"/>
|
<field name="temperature"/>
|
||||||
<field name="sequence"/>
|
<field name="sequence"/>
|
||||||
</group>
|
</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>
|
</group>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||