mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-23 07:07:10 +08:00
fix: custom GPT model bug
This commit is contained in:
@@ -66,12 +66,16 @@ class ChatGPTBot(Bot, OpenAIImage):
|
|||||||
logger.debug("[CHATGPT] session query={}".format(session.messages))
|
logger.debug("[CHATGPT] session query={}".format(session.messages))
|
||||||
|
|
||||||
api_key = context.get("openai_api_key")
|
api_key = context.get("openai_api_key")
|
||||||
self.args['model'] = context.get('gpt_model') or "gpt-3.5-turbo"
|
model = context.get("gpt_model")
|
||||||
|
new_args = None
|
||||||
|
if model:
|
||||||
|
new_args = self.args.copy()
|
||||||
|
new_args["model"] = model
|
||||||
# if context.get('stream'):
|
# if context.get('stream'):
|
||||||
# # reply in stream
|
# # reply in stream
|
||||||
# return self.reply_text_stream(query, new_query, session_id)
|
# return self.reply_text_stream(query, new_query, session_id)
|
||||||
|
|
||||||
reply_content = self.reply_text(session, api_key)
|
reply_content = self.reply_text(session, api_key, args=new_args)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"[CHATGPT] new_query={}, session_id={}, reply_cont={}, completion_tokens={}".format(
|
"[CHATGPT] new_query={}, session_id={}, reply_cont={}, completion_tokens={}".format(
|
||||||
session.messages,
|
session.messages,
|
||||||
@@ -102,7 +106,7 @@ class ChatGPTBot(Bot, OpenAIImage):
|
|||||||
reply = Reply(ReplyType.ERROR, "Bot不支持处理{}类型的消息".format(context.type))
|
reply = Reply(ReplyType.ERROR, "Bot不支持处理{}类型的消息".format(context.type))
|
||||||
return reply
|
return reply
|
||||||
|
|
||||||
def reply_text(self, session: ChatGPTSession, api_key=None, retry_count=0) -> dict:
|
def reply_text(self, session: ChatGPTSession, api_key=None, args=None, retry_count=0) -> dict:
|
||||||
"""
|
"""
|
||||||
call openai's ChatCompletion to get the answer
|
call openai's ChatCompletion to get the answer
|
||||||
:param session: a conversation session
|
:param session: a conversation session
|
||||||
@@ -114,7 +118,9 @@ class ChatGPTBot(Bot, OpenAIImage):
|
|||||||
if conf().get("rate_limit_chatgpt") and not self.tb4chatgpt.get_token():
|
if conf().get("rate_limit_chatgpt") and not self.tb4chatgpt.get_token():
|
||||||
raise openai.error.RateLimitError("RateLimitError: rate limit exceeded")
|
raise openai.error.RateLimitError("RateLimitError: rate limit exceeded")
|
||||||
# if api_key == None, the default openai.api_key will be used
|
# if api_key == None, the default openai.api_key will be used
|
||||||
response = openai.ChatCompletion.create(api_key=api_key, messages=session.messages, **self.args)
|
if args is None:
|
||||||
|
args = self.args
|
||||||
|
response = openai.ChatCompletion.create(api_key=api_key, messages=session.messages, **args)
|
||||||
# logger.info("[ChatGPT] reply={}, total_tokens={}".format(response.choices[0]['message']['content'], response["usage"]["total_tokens"]))
|
# logger.info("[ChatGPT] reply={}, total_tokens={}".format(response.choices[0]['message']['content'], response["usage"]["total_tokens"]))
|
||||||
return {
|
return {
|
||||||
"total_tokens": response["usage"]["total_tokens"],
|
"total_tokens": response["usage"]["total_tokens"],
|
||||||
@@ -150,7 +156,7 @@ class ChatGPTBot(Bot, OpenAIImage):
|
|||||||
|
|
||||||
if need_retry:
|
if need_retry:
|
||||||
logger.warn("[CHATGPT] 第{}次重试".format(retry_count + 1))
|
logger.warn("[CHATGPT] 第{}次重试".format(retry_count + 1))
|
||||||
return self.reply_text(session, api_key, retry_count + 1)
|
return self.reply_text(session, api_key, args, retry_count + 1)
|
||||||
else:
|
else:
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user