Skip to content

Commit 40bb5f9

Browse files
committed
refactor: image model get_num_tokens override
1 parent 8db35c4 commit 40bb5f9

File tree

9 files changed

+40
-62
lines changed
  • apps/setting/models_provider/impl

9 files changed

+40
-62
lines changed

apps/setting/models_provider/impl/aliyun_bai_lian_model_provider/model/image.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
from typing import Dict
44

5-
from langchain_community.chat_models import ChatOpenAI
6-
75
from setting.models_provider.base_model_provider import MaxKBBaseModel
6+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
87

98

10-
class QwenVLChatModel(MaxKBBaseModel, ChatOpenAI):
9+
class QwenVLChatModel(MaxKBBaseModel, BaseChatOpenAI):
1110

1211
@staticmethod
1312
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -18,6 +17,7 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
1817
openai_api_base='https://dashscope.aliyuncs.com/compatible-mode/v1',
1918
# stream_options={"include_usage": True},
2019
streaming=True,
20+
stream_usage=True,
2121
**optional_params,
2222
)
2323
return chat_tong_yi

apps/setting/models_provider/impl/azure_model_provider/model/image.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from typing import Dict
1+
from typing import Dict, List
22

3+
from langchain_core.messages import BaseMessage, get_buffer_string
34
from langchain_openai import AzureChatOpenAI
4-
from langchain_openai.chat_models import ChatOpenAI
55

66
from common.config.tokenizer_manage_config import TokenizerManage
77
from setting.models_provider.base_model_provider import MaxKBBaseModel
@@ -26,3 +26,17 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
2626
streaming=True,
2727
**optional_params,
2828
)
29+
30+
def get_num_tokens_from_messages(self, messages: List[BaseMessage]) -> int:
31+
try:
32+
return super().get_num_tokens_from_messages(messages)
33+
except Exception as e:
34+
tokenizer = TokenizerManage.get_tokenizer()
35+
return sum([len(tokenizer.encode(get_buffer_string([m]))) for m in messages])
36+
37+
def get_num_tokens(self, text: str) -> int:
38+
try:
39+
return super().get_num_tokens(text)
40+
except Exception as e:
41+
tokenizer = TokenizerManage.get_tokenizer()
42+
return len(tokenizer.encode(text))
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
from typing import Dict
22
from urllib.parse import urlparse, ParseResult
33

4-
from langchain_openai.chat_models import ChatOpenAI
5-
6-
from common.config.tokenizer_manage_config import TokenizerManage
74
from setting.models_provider.base_model_provider import MaxKBBaseModel
8-
9-
10-
def custom_get_token_ids(text: str):
11-
tokenizer = TokenizerManage.get_tokenizer()
12-
return tokenizer.encode(text)
5+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
136

147

158
def get_base_url(url: str):
@@ -20,7 +13,7 @@ def get_base_url(url: str):
2013
return result_url[:-1] if result_url.endswith("/") else result_url
2114

2215

23-
class OllamaImage(MaxKBBaseModel, ChatOpenAI):
16+
class OllamaImage(MaxKBBaseModel, BaseChatOpenAI):
2417

2518
@staticmethod
2619
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -34,5 +27,6 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
3427
openai_api_key=model_credential.get('api_key'),
3528
# stream_options={"include_usage": True},
3629
streaming=True,
30+
stream_usage=True,
3731
**optional_params,
3832
)
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
from typing import Dict
22

3-
from langchain_openai.chat_models import ChatOpenAI
4-
5-
from common.config.tokenizer_manage_config import TokenizerManage
63
from setting.models_provider.base_model_provider import MaxKBBaseModel
4+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
75

86

9-
def custom_get_token_ids(text: str):
10-
tokenizer = TokenizerManage.get_tokenizer()
11-
return tokenizer.encode(text)
12-
13-
14-
class OpenAIImage(MaxKBBaseModel, ChatOpenAI):
7+
class OpenAIImage(MaxKBBaseModel, BaseChatOpenAI):
158

169
@staticmethod
1710
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -22,5 +15,6 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
2215
openai_api_key=model_credential.get('api_key'),
2316
# stream_options={"include_usage": True},
2417
streaming=True,
18+
stream_usage=True,
2519
**optional_params,
2620
)

apps/setting/models_provider/impl/qwen_model_provider/model/image.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
from typing import Dict
44

5-
from langchain_community.chat_models import ChatOpenAI
6-
75
from setting.models_provider.base_model_provider import MaxKBBaseModel
6+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
87

98

10-
class QwenVLChatModel(MaxKBBaseModel, ChatOpenAI):
9+
class QwenVLChatModel(MaxKBBaseModel, BaseChatOpenAI):
1110

1211
@staticmethod
1312
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -18,6 +17,7 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
1817
openai_api_base='https://dashscope.aliyuncs.com/compatible-mode/v1',
1918
# stream_options={"include_usage": True},
2019
streaming=True,
20+
stream_usage=True,
2121
**optional_params,
2222
)
2323
return chat_tong_yi
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
from typing import Dict
22

3-
from langchain_openai.chat_models import ChatOpenAI
4-
5-
from common.config.tokenizer_manage_config import TokenizerManage
63
from setting.models_provider.base_model_provider import MaxKBBaseModel
4+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
75

86

9-
def custom_get_token_ids(text: str):
10-
tokenizer = TokenizerManage.get_tokenizer()
11-
return tokenizer.encode(text)
12-
13-
14-
class TencentVision(MaxKBBaseModel, ChatOpenAI):
7+
class TencentVision(MaxKBBaseModel, BaseChatOpenAI):
158

169
@staticmethod
1710
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -22,5 +15,6 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
2215
openai_api_key=model_credential.get('api_key'),
2316
# stream_options={"include_usage": True},
2417
streaming=True,
18+
stream_usage=True,
2519
**optional_params,
2620
)
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
from typing import Dict
22

3-
from langchain_openai.chat_models import ChatOpenAI
4-
5-
from common.config.tokenizer_manage_config import TokenizerManage
63
from setting.models_provider.base_model_provider import MaxKBBaseModel
4+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
75

86

9-
def custom_get_token_ids(text: str):
10-
tokenizer = TokenizerManage.get_tokenizer()
11-
return tokenizer.encode(text)
12-
13-
14-
class VolcanicEngineImage(MaxKBBaseModel, ChatOpenAI):
7+
class VolcanicEngineImage(MaxKBBaseModel, BaseChatOpenAI):
158

169
@staticmethod
1710
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -22,5 +15,6 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
2215
openai_api_base=model_credential.get('api_base'),
2316
# stream_options={"include_usage": True},
2417
streaming=True,
18+
stream_usage=True,
2519
**optional_params,
2620
)
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
from typing import Dict
22

3-
from langchain_openai.chat_models import ChatOpenAI
4-
5-
from common.config.tokenizer_manage_config import TokenizerManage
63
from setting.models_provider.base_model_provider import MaxKBBaseModel
4+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
75

86

9-
def custom_get_token_ids(text: str):
10-
tokenizer = TokenizerManage.get_tokenizer()
11-
return tokenizer.encode(text)
12-
13-
14-
class XinferenceImage(MaxKBBaseModel, ChatOpenAI):
7+
class XinferenceImage(MaxKBBaseModel, BaseChatOpenAI):
158

169
@staticmethod
1710
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -22,5 +15,6 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
2215
openai_api_key=model_credential.get('api_key'),
2316
# stream_options={"include_usage": True},
2417
streaming=True,
18+
stream_usage=True,
2519
**optional_params,
2620
)
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
from typing import Dict
22

3-
from langchain_openai.chat_models import ChatOpenAI
4-
5-
from common.config.tokenizer_manage_config import TokenizerManage
63
from setting.models_provider.base_model_provider import MaxKBBaseModel
4+
from setting.models_provider.impl.base_chat_open_ai import BaseChatOpenAI
75

86

9-
def custom_get_token_ids(text: str):
10-
tokenizer = TokenizerManage.get_tokenizer()
11-
return tokenizer.encode(text)
12-
13-
14-
class ZhiPuImage(MaxKBBaseModel, ChatOpenAI):
7+
class ZhiPuImage(MaxKBBaseModel, BaseChatOpenAI):
158

169
@staticmethod
1710
def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
@@ -22,5 +15,6 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
2215
openai_api_base='https://open.bigmodel.cn/api/paas/v4',
2316
# stream_options={"include_usage": True},
2417
streaming=True,
18+
stream_usage=True,
2519
**optional_params,
2620
)

0 commit comments

Comments
 (0)