Files
FastGPT/packages/global/core/ai/provider.ts
Archer 3f9b0fa1d4 V4.12.3 features (#5595)
* refactor: remove ModelProviderIdType and update related types (#5549)

* perf: model provider

* fix eval create split (#5570)

* git rebase --continuedoc

* add more variable types (#5540)

* variable types

* password

* time picker

* internal var

* file

* fix-test

* time select default value & range

* password & type render

* fix

* fix build

* fix

* move method

* split date select

* icon

* perf: variable code

* prompt editor add markdown plugin (#5556)

* editor markdown

* fix build

* pnpm lock

* add props

* update code

* fix list

* editor ui

* fix variable reset (#5586)

* perf: variables type code

* customize lexical indent (#5588)

* perf: multiple selector

* perf: tab plugin

* doc

* refactor: update workflow constants to use ToolTypeEnum (#5491)

* refactor: replace FlowNodeTemplateTypeEnum with string literals in workflow templates

* perf: tool type

---------

Co-authored-by: archer <545436317@qq.com>

* update doc

* fix: make table's row more natural while dragging it (#5596)

* feat: add APIGetTemplate function and refactor template fetching logic (#5498)

* feat: add APIGetTemplate function and refactor template fetching logic

* chore: adjust the code

* chore: update sdk

---------

Co-authored-by: FinleyGe <m13203533462@163.com>

* perf init system

* doc

* remove log

* remove i18n

* perf: variables render

---------

Co-authored-by: Ctrlz <143257420+ctrlz526@users.noreply.github.com>
Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: 伍闲犬 <whoeverimf5@gmail.com>
Co-authored-by: FinleyGe <m13203533462@163.com>
2025-09-07 14:41:48 +08:00

71 lines
1.8 KiB
TypeScript

import type { I18nStringStrictType } from '@fastgpt-sdk/plugin';
export type ModelProviderItemType = {
id: string;
name: string;
avatar: string;
order: number;
};
export type ModelProviderListType = {
id: string;
name: I18nStringStrictType | string;
avatar: string;
provider: string;
};
export type langType = keyof I18nStringStrictType;
export const defaultProvider: ModelProviderItemType = {
id: 'Other',
name: 'Other',
avatar: 'model/huggingface',
order: 999
};
export const formatModelProviders = (data: { provider: string; value: I18nStringStrictType }[]) => {
const getLocalizedName = (translations: I18nStringStrictType, language = 'en'): string => {
return translations[language as langType] || translations.en;
};
const formatModelProviderList = (language?: string): ModelProviderItemType[] => {
return data.map(({ provider, value }, index) => ({
id: provider,
name: getLocalizedName(value, language),
avatar: `/api/system/plugin/models/${provider}.svg`,
order: index
}));
};
const formatModelProviderMap = (language?: string) => {
const provider = {} as Record<string, ModelProviderItemType>;
data.forEach(({ provider: id, value }, index) => {
provider[id] = {
id,
name: getLocalizedName(value, language),
avatar: `/api/system/plugin/models/${id}.svg`,
order: index
};
});
return provider;
};
const ModelProviderListCache = {
en: formatModelProviderList('en'),
'zh-CN': formatModelProviderList('zh-CN'),
'zh-Hant': formatModelProviderList('zh-Hant')
};
const ModelProviderMapCache = {
en: formatModelProviderMap('en'),
'zh-CN': formatModelProviderMap('zh-CN'),
'zh-Hant': formatModelProviderMap('zh-Hant')
};
return {
ModelProviderListCache,
ModelProviderMapCache
};
};