diff --git a/app_chatgpt/__manifest__.py b/app_chatgpt/__manifest__.py index 2acbdb89..fa7c32cc 100644 --- a/app_chatgpt/__manifest__.py +++ b/app_chatgpt/__manifest__.py @@ -10,7 +10,7 @@ { 'name': 'ChatGPT4, China Ali,AiGC Center.Ai服务中心,聚合全网Ai', - 'version': '18.0.25.01.06', + 'version': '18.0.25.01.08', 'author': 'odooai.cn', 'company': 'odooai.cn', 'maintainer': 'odooai.cn', diff --git a/app_chatgpt/data/user_partner_data.xml b/app_chatgpt/data/user_partner_data.xml index 9c52057f..439413f4 100644 --- a/app_chatgpt/data/user_partner_data.xml +++ b/app_chatgpt/data/user_partner_data.xml @@ -9,6 +9,7 @@ chatgpt@example.com + @@ -54,6 +55,7 @@ chatgpt3_azure@example.com + @@ -68,6 +70,7 @@ chatgpt4_azure@example.com + @@ -82,6 +85,7 @@ chatgpt4_32k_azure@example.com + diff --git a/app_chatgpt/models/ai_robot.py b/app_chatgpt/models/ai_robot.py index c81ab552..6d314f9b 100644 --- a/app_chatgpt/models/ai_robot.py +++ b/app_chatgpt/models/ai_robot.py @@ -3,6 +3,7 @@ import os from openai import OpenAI from openai import AzureOpenAI +# from openai.error import OpenAIError import requests, json import base64 @@ -192,8 +193,12 @@ GPT-3 A set of models that can understand and generate natural language # _logger.warning('===========Ai响应:%s' % content) elif self.provider == 'azure': # azure 格式 - usage = res['usage'] - content = res['choices'][0]['message']['content'] + if res.get('error'): + usage = False + content = res.get('error') + else: + usage = res['usage'] + content = res['choices'][0]['message']['content'] else: usage = False 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, timeout=request_timeout ) - response = client.chat.completions.create( - model=self.engine, - messages=messages, - # 返回的回答数量 - n=1, - max_tokens=max_tokens, - temperature=temperature, - top_p=top_p, - frequency_penalty=frequency_penalty, - presence_penalty=presence_penalty, - stop=None, - ) - res = response.model_dump() - if 'choices' in res: + try: + response = client.chat.completions.create( + model=self.engine, + messages=messages, + # 返回的回答数量 + n=1, + max_tokens=max_tokens, + temperature=temperature, + top_p=top_p, + frequency_penalty=frequency_penalty, + presence_penalty=presence_penalty, + stop=None, + ) + 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 else: _logger.warning('=====================azure output data: %s' % response.json())