add gpt
@@ -9,8 +9,8 @@
|
||||
# Copyright (c) 2020-Present InTechual Solutions. (<https://intechualsolutions.com/>)
|
||||
|
||||
{
|
||||
'name': 'ChatGPT Robot Multi Chat and Training(Under Construction)',
|
||||
'version': '15.23.02.20',
|
||||
'name': 'Latest ChatGPT AI Center. GPT 3.5 Turbo, Dall-E Image.Multi Robot Support. Chat and Training',
|
||||
'version': '15.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': [
|
||||
@@ -47,14 +51,14 @@
|
||||
'views/ai_robot_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
# 'assets': {
|
||||
# 'mail.assets_messaging': [
|
||||
# 'app_chatgpt/static/src/models/*.js',
|
||||
# ],
|
||||
# 'mail.assets_model_data': [
|
||||
# 'app_chatgpt/static/src/models_data/*.js',
|
||||
# ],
|
||||
# },
|
||||
'assets': {
|
||||
'mail.assets_messaging': [
|
||||
'app_chatgpt/static/src/models/*.js',
|
||||
],
|
||||
'mail.assets_model_data': [
|
||||
'app_chatgpt/static/src/models_data/*.js',
|
||||
],
|
||||
},
|
||||
'external_dependencies': {'python': ['openai']},
|
||||
'installable': True,
|
||||
'application': True,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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,10 +15,42 @@ 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}"}
|
||||
R_TIMEOUT = 5
|
||||
|
||||
if ai_model == 'dall-e2':
|
||||
# todo: 处理 图像引擎,主要是返回参数到聊天中
|
||||
# image_url = response['data'][0]['url']
|
||||
# https://platform.openai.com/docs/guides/images/introduction
|
||||
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,
|
||||
"temperature": 0.9,
|
||||
"max_tokens": 2000,
|
||||
@@ -27,12 +60,15 @@ class Channel(models.Model):
|
||||
"user": user,
|
||||
"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()
|
||||
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 "获取结果超时,请重新跟我聊聊。"
|
||||
|
||||
@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:
|
||||
|
||||
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">
|
||||
<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_row oe_spaced" >
|
||||
<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">
|
||||
<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>
|
||||
</div>
|
||||
</section>
|
||||
<br/>
|
||||
<br/>
|
||||
<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>
|
||||
</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% 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 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>
|
||||
|
||||
|
||||
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>
|
||||
<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>
|
||||
|
||||