|
|
@@ -167,21 +167,21 @@ export const getModelCategories = (() => {
|
|
|
gemini: {
|
|
|
label: 'Gemini',
|
|
|
icon: <Gemini.Color />,
|
|
|
- filter: (model) =>
|
|
|
- model.model_name.toLowerCase().includes('gemini') ||
|
|
|
+ filter: (model) =>
|
|
|
+ model.model_name.toLowerCase().includes('gemini') ||
|
|
|
model.model_name.toLowerCase().includes('gemma') ||
|
|
|
- model.model_name.toLowerCase().includes('learnlm') ||
|
|
|
+ model.model_name.toLowerCase().includes('learnlm') ||
|
|
|
model.model_name.toLowerCase().startsWith('embedding-') ||
|
|
|
model.model_name.toLowerCase().includes('text-embedding-004') ||
|
|
|
- model.model_name.toLowerCase().includes('imagen-4') ||
|
|
|
- model.model_name.toLowerCase().includes('veo-') ||
|
|
|
- model.model_name.toLowerCase().includes('aqa') ,
|
|
|
+ model.model_name.toLowerCase().includes('imagen-4') ||
|
|
|
+ model.model_name.toLowerCase().includes('veo-') ||
|
|
|
+ model.model_name.toLowerCase().includes('aqa'),
|
|
|
},
|
|
|
moonshot: {
|
|
|
label: 'Moonshot',
|
|
|
icon: <Moonshot />,
|
|
|
- filter: (model) =>
|
|
|
- model.model_name.toLowerCase().includes('moonshot') ||
|
|
|
+ filter: (model) =>
|
|
|
+ model.model_name.toLowerCase().includes('moonshot') ||
|
|
|
model.model_name.toLowerCase().includes('kimi'),
|
|
|
},
|
|
|
zhipu: {
|
|
|
@@ -189,8 +189,8 @@ export const getModelCategories = (() => {
|
|
|
icon: <Zhipu.Color />,
|
|
|
filter: (model) =>
|
|
|
model.model_name.toLowerCase().includes('chatglm') ||
|
|
|
- model.model_name.toLowerCase().includes('glm-') ||
|
|
|
- model.model_name.toLowerCase().includes('cogview') ||
|
|
|
+ model.model_name.toLowerCase().includes('glm-') ||
|
|
|
+ model.model_name.toLowerCase().includes('cogview') ||
|
|
|
model.model_name.toLowerCase().includes('cogvideo'),
|
|
|
},
|
|
|
qwen: {
|
|
|
@@ -206,8 +206,8 @@ export const getModelCategories = (() => {
|
|
|
minimax: {
|
|
|
label: 'MiniMax',
|
|
|
icon: <Minimax.Color />,
|
|
|
- filter: (model) =>
|
|
|
- model.model_name.toLowerCase().includes('abab') ||
|
|
|
+ filter: (model) =>
|
|
|
+ model.model_name.toLowerCase().includes('abab') ||
|
|
|
model.model_name.toLowerCase().includes('minimax'),
|
|
|
},
|
|
|
baidu: {
|
|
|
@@ -233,7 +233,7 @@ export const getModelCategories = (() => {
|
|
|
cohere: {
|
|
|
label: 'Cohere',
|
|
|
icon: <Cohere.Color />,
|
|
|
- filter: (model) =>
|
|
|
+ filter: (model) =>
|
|
|
model.model_name.toLowerCase().includes('command') ||
|
|
|
model.model_name.toLowerCase().includes('c4ai-') ||
|
|
|
model.model_name.toLowerCase().includes('embed-'),
|
|
|
@@ -256,7 +256,7 @@ export const getModelCategories = (() => {
|
|
|
mistral: {
|
|
|
label: 'Mistral AI',
|
|
|
icon: <Mistral.Color />,
|
|
|
- filter: (model) =>
|
|
|
+ filter: (model) =>
|
|
|
model.model_name.toLowerCase().includes('mistral') ||
|
|
|
model.model_name.toLowerCase().includes('codestral') ||
|
|
|
model.model_name.toLowerCase().includes('pixtral') ||
|
|
|
@@ -602,6 +602,34 @@ export function stringToColor(str) {
|
|
|
return colors[i];
|
|
|
}
|
|
|
|
|
|
+// High-contrast color palette for group tags (avoids similar blue/teal shades)
|
|
|
+const groupColors = [
|
|
|
+ 'red',
|
|
|
+ 'orange',
|
|
|
+ 'yellow',
|
|
|
+ 'lime',
|
|
|
+ 'green',
|
|
|
+ 'cyan',
|
|
|
+ 'blue',
|
|
|
+ 'indigo',
|
|
|
+ 'violet',
|
|
|
+ 'purple',
|
|
|
+ 'pink',
|
|
|
+ 'amber',
|
|
|
+ 'grey',
|
|
|
+];
|
|
|
+
|
|
|
+export function groupToColor(str) {
|
|
|
+ // Use a better hash algorithm for more even distribution
|
|
|
+ let hash = 0;
|
|
|
+ for (let i = 0; i < str.length; i++) {
|
|
|
+ hash = (hash << 5) - hash + str.charCodeAt(i);
|
|
|
+ hash = hash & hash;
|
|
|
+ }
|
|
|
+ hash = Math.abs(hash);
|
|
|
+ return groupColors[hash % groupColors.length];
|
|
|
+}
|
|
|
+
|
|
|
// 渲染带有模型图标的标签
|
|
|
export function renderModelTag(modelName, options = {}) {
|
|
|
const {
|
|
|
@@ -670,7 +698,7 @@ export function renderGroup(group) {
|
|
|
<span key={group}>
|
|
|
{groups.map((group) => (
|
|
|
<Tag
|
|
|
- color={tagColors[group] || stringToColor(group)}
|
|
|
+ color={tagColors[group] || groupToColor(group)}
|
|
|
key={group}
|
|
|
shape='circle'
|
|
|
onClick={async (event) => {
|