Skip to content

Commit

Permalink
Merge pull request zhayujie#2361 from 6vision/claude_model_update
Browse files Browse the repository at this point in the history
Claude model update
  • Loading branch information
6vision authored Oct 31, 2024
2 parents 7ddb4e6 + 3b545e9 commit 697d4ef
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 22 deletions.
37 changes: 17 additions & 20 deletions bot/claudeapi/claude_api_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@

from bot.bot import Bot
from bot.openai.open_ai_image import OpenAIImage
from bot.chatgpt.chat_gpt_session import ChatGPTSession
from bot.gemini.google_gemini_bot import GoogleGeminiBot
from bot.baidu.baidu_wenxin_session import BaiduWenxinSession
from bot.session_manager import SessionManager
from bridge.context import ContextType
from bridge.reply import Reply, ReplyType
from common.log import logger
from common import const
from config import conf

user_session = dict()
Expand All @@ -23,17 +23,14 @@
class ClaudeAPIBot(Bot, OpenAIImage):
def __init__(self):
super().__init__()
proxy = conf().get("proxy", None)
base_url = conf().get("open_ai_api_base", None) # 复用"open_ai_api_base"参数作为base_url
self.claudeClient = anthropic.Anthropic(
api_key=conf().get("claude_api_key")
api_key=conf().get("claude_api_key"),
proxies=proxy if proxy else None,
base_url=base_url if base_url else None
)
openai.api_key = conf().get("open_ai_api_key")
if conf().get("open_ai_api_base"):
openai.api_base = conf().get("open_ai_api_base")
proxy = conf().get("proxy")
if proxy:
openai.proxy = proxy

self.sessions = SessionManager(ChatGPTSession, model=conf().get("model") or "text-davinci-003")
self.sessions = SessionManager(BaiduWenxinSession, model=conf().get("model") or "text-davinci-003")

def reply(self, query, context=None):
# acquire reply content
Expand Down Expand Up @@ -76,14 +73,14 @@ def reply(self, query, context=None):
reply = Reply(ReplyType.ERROR, retstring)
return reply

def reply_text(self, session: ChatGPTSession, retry_count=0):
def reply_text(self, session: BaiduWenxinSession, retry_count=0):
try:
actual_model = self._model_mapping(conf().get("model"))
response = self.claudeClient.messages.create(
model=actual_model,
max_tokens=1024,
# system=conf().get("system"),
messages=GoogleGeminiBot.filter_messages(session.messages)
max_tokens=4096,
system=conf().get("character_desc", ""),
messages=session.messages
)
# response = openai.Completion.create(prompt=str(session), **self.args)
res_content = response.content[0].text.strip().replace("<|endoftext|>", "")
Expand All @@ -97,7 +94,7 @@ def reply_text(self, session: ChatGPTSession, retry_count=0):
}
except Exception as e:
need_retry = retry_count < 2
result = {"completion_tokens": 0, "content": "我现在有点累了,等会再来吧"}
result = {"total_tokens": 0, "completion_tokens": 0, "content": "我现在有点累了,等会再来吧"}
if isinstance(e, openai.error.RateLimitError):
logger.warn("[CLAUDE_API] RateLimitError: {}".format(e))
result["content"] = "提问太快啦,请休息一下再问我吧"
Expand Down Expand Up @@ -125,11 +122,11 @@ def reply_text(self, session: ChatGPTSession, retry_count=0):

def _model_mapping(self, model) -> str:
if model == "claude-3-opus":
return "claude-3-opus-20240229"
return const.CLAUDE_3_OPUS
elif model == "claude-3-sonnet":
return "claude-3-sonnet-20240229"
return const.CLAUDE_3_SONNET
elif model == "claude-3-haiku":
return "claude-3-haiku-20240307"
return const.CLAUDE_3_HAIKU
elif model == "claude-3.5-sonnet":
return "claude-3-5-sonnet-20240620"
return const.CLAUDE_35_SONNET
return model
13 changes: 12 additions & 1 deletion common/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,17 @@
GLM_4_AIR = "glm-4-air"
GLM_4_AIRX = "glm-4-airx"


CLAUDE_3_OPUS = "claude-3-opus-latest"
CLAUDE_3_OPUS_0229 = "claude-3-opus-20240229"

CLAUDE_35_SONNET = "claude-3-5-sonnet-latest" # 带 latest 标签的模型名称,会不断更新指向最新发布的模型
CLAUDE_35_SONNET_1022 = "claude-3-5-sonnet-20241022" # 带具体日期的模型名称,会固定为该日期发布的模型
CLAUDE_35_SONNET_0620 = "claude-3-5-sonnet-20240620"
CLAUDE_3_SONNET = "claude-3-sonnet-20240229"

CLAUDE_3_HAIKU = "claude-3-haiku-20240307"

MODEL_LIST = [
GPT35, GPT35_0125, GPT35_1106, "gpt-3.5-turbo-16k",
O1, O1_MINI, GPT_4o, GPT_4O_0806, GPT_4o_MINI, GPT4_TURBO, GPT4_TURBO_PREVIEW, GPT4_TURBO_01_25, GPT4_TURBO_11_06, GPT4, GPT4_32k, GPT4_06_13, GPT4_32k_06_13,
Expand All @@ -77,7 +88,7 @@
ZHIPU_AI, GLM_4, GLM_4_PLUS, GLM_4_flash, GLM_4_LONG, GLM_4_ALLTOOLS, GLM_4_0520, GLM_4_AIR, GLM_4_AIRX,
MOONSHOT, MiniMax,
GEMINI, GEMINI_PRO, GEMINI_15_flash, GEMINI_15_PRO,
"claude", "claude-3-haiku", "claude-3-sonnet", "claude-3-opus", "claude-3-opus-20240229", "claude-3.5-sonnet",
CLAUDE_3_OPUS, CLAUDE_3_OPUS_0229, CLAUDE_35_SONNET, CLAUDE_35_SONNET_1022, CLAUDE_35_SONNET_0620, CLAUDE_3_SONNET, CLAUDE_3_HAIKU, "claude", "claude-3-haiku", "claude-3-sonnet", "claude-3-opus", "claude-3.5-sonnet",
"moonshot-v1-8k", "moonshot-v1-32k", "moonshot-v1-128k",
QWEN, QWEN_TURBO, QWEN_PLUS, QWEN_MAX,
LINKAI_35, LINKAI_4_TURBO, LINKAI_4o
Expand Down
1 change: 1 addition & 0 deletions common/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def convert_webp_to_png(webp_image):
logger.error(f"Failed to convert WEBP to PNG: {e}")
raise


def remove_markdown_symbol(text: str):
# 移除markdown格式,目前先移除**
if not text:
Expand Down
2 changes: 1 addition & 1 deletion plugins/godcmd/godcmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ def on_handle_context(self, e_context: EventContext):
except Exception as e:
ok, result = False, "你没有设置私有GPT模型"
elif cmd == "reset":
if bottype in [const.OPEN_AI, const.CHATGPT, const.CHATGPTONAZURE, const.LINKAI, const.BAIDU, const.XUNFEI, const.QWEN, const.GEMINI, const.ZHIPU_AI]:
if bottype in [const.OPEN_AI, const.CHATGPT, const.CHATGPTONAZURE, const.LINKAI, const.BAIDU, const.XUNFEI, const.QWEN, const.GEMINI, const.ZHIPU_AI, const.CLAUDEAPI]:
bot.sessions.clear_session(session_id)
if Bridge().chat_bots.get(bottype):
Bridge().chat_bots.get(bottype).sessions.clear_session(session_id)
Expand Down

0 comments on commit 697d4ef

Please sign in to comment.