opt 优化 chatgpt 接口,将错误提示也响应。

This commit is contained in:
Ivan Office
2025-01-08 21:15:32 +08:00
parent e42e065a7d
commit 6818df15e1
3 changed files with 34 additions and 17 deletions

View File

@@ -10,7 +10,7 @@
{ {
'name': 'ChatGPT4, China Ali,AiGC Center.Ai服务中心聚合全网Ai', 'name': 'ChatGPT4, China Ali,AiGC Center.Ai服务中心聚合全网Ai',
'version': '18.0.25.01.06', 'version': '18.0.25.01.08',
'author': 'odooai.cn', 'author': 'odooai.cn',
'company': 'odooai.cn', 'company': 'odooai.cn',
'maintainer': 'odooai.cn', 'maintainer': 'odooai.cn',

View File

@@ -9,6 +9,7 @@
<field name="login">chatgpt@example.com</field> <field name="login">chatgpt@example.com</field>
<field name="partner_id" ref="app_chatgpt.partner_chatgpt"/> <field name="partner_id" ref="app_chatgpt.partner_chatgpt"/>
<field name="gpt_id" ref="app_chatgpt.chatgpt_robot"/> <field name="gpt_id" ref="app_chatgpt.chatgpt_robot"/>
<field name="is_chat_private" eval="True"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/> <field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/>
<field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/> <field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/>
@@ -54,6 +55,7 @@
<field name="email">chatgpt3_azure@example.com</field> <field name="email">chatgpt3_azure@example.com</field>
<field name="partner_id" ref="app_chatgpt.partner_chatgpt3_azure"/> <field name="partner_id" ref="app_chatgpt.partner_chatgpt3_azure"/>
<field name="gpt_id" ref="app_chatgpt.chatgpt3_azure"/> <field name="gpt_id" ref="app_chatgpt.chatgpt3_azure"/>
<field name="is_chat_private" eval="True"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/> <field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/>
<field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/> <field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/>
@@ -68,6 +70,7 @@
<field name="email">chatgpt4_azure@example.com</field> <field name="email">chatgpt4_azure@example.com</field>
<field name="partner_id" ref="app_chatgpt.partner_chatgpt4_azure"/> <field name="partner_id" ref="app_chatgpt.partner_chatgpt4_azure"/>
<field name="gpt_id" ref="app_chatgpt.chatgpt4_azure"/> <field name="gpt_id" ref="app_chatgpt.chatgpt4_azure"/>
<field name="is_chat_private" eval="True"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/> <field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/>
<field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/> <field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/>
@@ -82,6 +85,7 @@
<field name="email">chatgpt4_32k_azure@example.com</field> <field name="email">chatgpt4_32k_azure@example.com</field>
<field name="partner_id" ref="app_chatgpt.partner_chatgpt4_32k_azure"/> <field name="partner_id" ref="app_chatgpt.partner_chatgpt4_32k_azure"/>
<field name="gpt_id" ref="app_chatgpt.chatgpt4_32k_azure"/> <field name="gpt_id" ref="app_chatgpt.chatgpt4_32k_azure"/>
<field name="is_chat_private" eval="True"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/> <field name="company_ids" eval="[Command.link(ref('base.main_company'))]"/>
<field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/> <field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/>

View File

@@ -3,6 +3,7 @@
import os import os
from openai import OpenAI from openai import OpenAI
from openai import AzureOpenAI from openai import AzureOpenAI
# from openai.error import OpenAIError
import requests, json import requests, json
import base64 import base64
@@ -192,8 +193,12 @@ GPT-3 A set of models that can understand and generate natural language
# _logger.warning('===========Ai响应:%s' % content) # _logger.warning('===========Ai响应:%s' % content)
elif self.provider == 'azure': elif self.provider == 'azure':
# azure 格式 # azure 格式
usage = res['usage'] if res.get('error'):
content = res['choices'][0]['message']['content'] usage = False
content = res.get('error')
else:
usage = res['usage']
content = res['choices'][0]['message']['content']
else: else:
usage = False usage = False
content = res content = res
@@ -338,20 +343,28 @@ GPT-3 A set of models that can understand and generate natural language
api_key=self.openapi_api_key, api_key=self.openapi_api_key,
timeout=request_timeout timeout=request_timeout
) )
response = client.chat.completions.create( try:
model=self.engine, response = client.chat.completions.create(
messages=messages, model=self.engine,
# 返回的回答数量 messages=messages,
n=1, # 返回的回答数量
max_tokens=max_tokens, n=1,
temperature=temperature, max_tokens=max_tokens,
top_p=top_p, temperature=temperature,
frequency_penalty=frequency_penalty, top_p=top_p,
presence_penalty=presence_penalty, frequency_penalty=frequency_penalty,
stop=None, presence_penalty=presence_penalty,
) stop=None,
res = response.model_dump() )
if 'choices' in res: res = response.model_dump()
except Exception as e:
# 处理OpenAI相关错误
res = {
'code': e.code,
'usage': False,
'error': str(e),
}
if 'choices' in res or 'error' in res:
return res return res
else: else:
_logger.warning('=====================azure output data: %s' % response.json()) _logger.warning('=====================azure output data: %s' % response.json())