Skip to content

Commit e58f958

Browse files
committed
fix: aws computer tokens error
--bug=1055094 --user=王孝刚 【应用】aws模型在应用编排中使用时,回答内容会带一串报错信息,并且消耗tokens显示为0 https://www.tapd.cn/57709429/s/1689448
1 parent f24337d commit e58f958

File tree

1 file changed

+17
-1
lines changed
  • apps/setting/models_provider/impl/aws_bedrock_model_provider/model

1 file changed

+17
-1
lines changed

apps/setting/models_provider/impl/aws_bedrock_model_provider/model/llm.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import os
22
import re
3-
from typing import Dict
3+
from typing import Dict, List
44

55
from botocore.config import Config
66
from langchain_community.chat_models import BedrockChat
7+
from langchain_core.messages import BaseMessage, get_buffer_string
78

9+
from common.config.tokenizer_manage_config import TokenizerManage
810
from setting.models_provider.base_model_provider import MaxKBBaseModel
911

1012

@@ -72,6 +74,20 @@ def new_instance(cls, model_type: str, model_name: str, model_credential: Dict[s
7274
config=config
7375
)
7476

77+
def get_num_tokens_from_messages(self, messages: List[BaseMessage]) -> int:
78+
try:
79+
return super().get_num_tokens_from_messages(messages)
80+
except Exception as e:
81+
tokenizer = TokenizerManage.get_tokenizer()
82+
return sum([len(tokenizer.encode(get_buffer_string([m]))) for m in messages])
83+
84+
def get_num_tokens(self, text: str) -> int:
85+
try:
86+
return super().get_num_tokens(text)
87+
except Exception as e:
88+
tokenizer = TokenizerManage.get_tokenizer()
89+
return len(tokenizer.encode(text))
90+
7591

7692
def _update_aws_credentials(profile_name, access_key_id, secret_access_key):
7793
credentials_path = os.path.join(os.path.expanduser("~"), ".aws", "credentials")

0 commit comments

Comments
 (0)