Feat/model as tool (#2744)
This commit is contained in:
parent
3231a8c51c
commit
40c646cf7a
26 changed files with 840 additions and 43 deletions
|
|
@ -4,24 +4,24 @@ from yaml import FullLoader, load
|
|||
|
||||
from core.tools.entities.user_entities import UserToolProvider
|
||||
|
||||
position = {}
|
||||
|
||||
class BuiltinToolProviderSort:
|
||||
@staticmethod
|
||||
def sort(providers: list[UserToolProvider]) -> list[UserToolProvider]:
|
||||
global position
|
||||
if not position:
|
||||
_position = {}
|
||||
|
||||
@classmethod
|
||||
def sort(cls, providers: list[UserToolProvider]) -> list[UserToolProvider]:
|
||||
if not cls._position:
|
||||
tmp_position = {}
|
||||
file_path = os.path.join(os.path.dirname(__file__), '..', '_position.yaml')
|
||||
with open(file_path) as f:
|
||||
for pos, val in enumerate(load(f, Loader=FullLoader)):
|
||||
tmp_position[val] = pos
|
||||
position = tmp_position
|
||||
cls._position = tmp_position
|
||||
|
||||
def sort_compare(provider: UserToolProvider) -> int:
|
||||
# if provider.type == UserToolProvider.ProviderType.MODEL:
|
||||
# return position.get(f'model_provider.{provider.name}', 10000)
|
||||
return position.get(provider.name, 10000)
|
||||
if provider.type == UserToolProvider.ProviderType.MODEL:
|
||||
return cls._position.get(f'model.{provider.name}', 10000)
|
||||
return cls._position.get(provider.name, 10000)
|
||||
|
||||
sorted_providers = sorted(providers, key=sort_compare)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue