diff --git a/ui/ModelModal/package.json b/ui/ModelModal/package.json
index e03bd04..6969bcf 100644
--- a/ui/ModelModal/package.json
+++ b/ui/ModelModal/package.json
@@ -1,6 +1,6 @@
{
"name": "@yokowu/modelkit-ui",
- "version": "0.4.2",
+ "version": "0.5.0",
"description": "A reusable AI model configuration modal component for React applications",
"private": false,
"type": "module",
@@ -29,7 +29,8 @@
"type-check": "tsc --noEmit",
"lint": "eslint src --ext .ts,.tsx",
"clean": "rimraf dist",
- "prepublishOnly": "npm run build"
+ "prepublishOnly": "npm run build",
+ "icon": "node ./scripts/downLoadIcon.cjs"
},
"keywords": [
"react",
diff --git a/ui/ModelModal/scripts/downLoadIcon.cjs b/ui/ModelModal/scripts/downLoadIcon.cjs
new file mode 100644
index 0000000..2778ced
--- /dev/null
+++ b/ui/ModelModal/scripts/downLoadIcon.cjs
@@ -0,0 +1,23 @@
+const fs = require("fs");
+const path = require("path");
+
+async function downloadFile(url) {
+ const iconPath = path.resolve(__dirname, "../src/assets/fonts/iconfont.js");
+ const iconDir = path.dirname(iconPath);
+
+ // 检查目录是否存在,不存在则创建
+ if (!fs.existsSync(iconDir)) {
+ fs.mkdirSync(iconDir, { recursive: true });
+ console.log(`目录 ${iconDir} 已创建`);
+ }
+
+ const response = await fetch(`https:${url}`, {
+ method: "GET",
+ // responseType: "stream", // fetch 不支持此参数
+ }).then((res) => res.text());
+ fs.writeFileSync(iconPath, response);
+ console.log("Download Icon Success");
+}
+let argument = process.argv.splice(2);
+downloadFile(argument[0]);
+
diff --git a/ui/ModelModal/src/assets/fonts/iconfont.js b/ui/ModelModal/src/assets/fonts/iconfont.js
index 3013a34..3733808 100644
--- a/ui/ModelModal/src/assets/fonts/iconfont.js
+++ b/ui/ModelModal/src/assets/fonts/iconfont.js
@@ -1 +1 @@
-window._iconfont_svg_string_4856251='',(c=>{var a=(l=(l=document.getElementsByTagName("script"))[l.length-1]).getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var h,i,o,t,p,v=function(a,l){l.parentNode.insertBefore(a,l)};if(a&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}h=function(){var a,l=document.createElement("div");l.innerHTML=c._iconfont_svg_string_4856251,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?v(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(h,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),h()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(o=h,t=c.document,p=!1,d(),t.onreadystatechange=function(){"complete"==t.readyState&&(t.onreadystatechange=null,z())})}function z(){p||(p=!0,o())}function d(){try{t.documentElement.doScroll("left")}catch(a){return void setTimeout(d,50)}z()}})(window);
\ No newline at end of file
+window._iconfont_svg_string_4856251='',(c=>{var a=(l=(l=document.getElementsByTagName("script"))[l.length-1]).getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var h,i,t,o,p,z=function(a,l){l.parentNode.insertBefore(a,l)};if(a&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}h=function(){var a,l=document.createElement("div");l.innerHTML=c._iconfont_svg_string_4856251,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?z(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(h,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),h()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(t=h,o=c.document,p=!1,d(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,v())})}function v(){p||(p=!0,t())}function d(){try{o.documentElement.doScroll("left")}catch(a){return void setTimeout(d,50)}v()}})(window);
\ No newline at end of file
diff --git a/ui/ModelModal/src/constants/providers.ts b/ui/ModelModal/src/constants/providers.ts
index d58e245..301b06c 100644
--- a/ui/ModelModal/src/constants/providers.ts
+++ b/ui/ModelModal/src/constants/providers.ts
@@ -125,7 +125,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
Qiniu: {
label: 'Qiniu',
cn: '七牛云',
- icon: 'icon-qiniu',
+ icon: 'icon-qiniuyun',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -175,7 +175,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
Yi: {
label: 'Yi',
cn: '零一万物',
- icon: 'icon-yi',
+ icon: 'icon-lingyiwanwu',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -246,7 +246,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
CTYun: {
label: 'CTYun',
cn: '天翼云息壤',
- icon: 'icon-ctyun',
+ icon: 'icon-tianyiyun',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -256,7 +256,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
TencentTI: {
label: 'TencentTI',
cn: '腾讯云TI',
- icon: 'icon-tencentcloud',
+ icon: 'icon-tengxunyun',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -266,7 +266,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
BaiDuQianFan: {
label: 'BaiDuQianFan',
cn: '百度云千帆',
- icon: 'icon-baiduqianfan',
+ icon: 'icon-baiduyun',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -276,7 +276,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
ModelScope: {
label: 'ModelScope',
cn: '魔搭社区',
- icon: 'icon-modelscope',
+ icon: 'icon-modaGPT',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -296,7 +296,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
StepFun: {
label: 'StepFun',
cn: '阶跃星辰',
- icon: 'icon-stepfun',
+ icon: 'icon-step',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -356,7 +356,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
DMXAPI: {
label: 'DMXAPI',
cn: 'DMXAPI',
- icon: 'icon-dmxapi',
+ icon: 'icon-DMXAPI',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -373,20 +373,20 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
modelDocumentUrl: 'https://ai.burncloud.com/docs',
defaultBaseUrl: 'https://ai.burncloud.com/v1',
},
- Grok: {
- label: 'Grok',
- cn: 'Grok',
- icon: 'icon-grok',
- urlWrite: false,
- secretRequired: true,
- customHeader: false,
- modelDocumentUrl: 'https://docs.x.ai/',
- defaultBaseUrl: 'https://api.x.ai/v1',
- },
+ // Grok: {
+ // label: 'Grok',
+ // cn: 'Grok',
+ // icon: 'icon-grok',
+ // urlWrite: false,
+ // secretRequired: true,
+ // customHeader: false,
+ // modelDocumentUrl: 'https://docs.x.ai/',
+ // defaultBaseUrl: 'https://api.x.ai/v1',
+ // },
Nvidia: {
label: 'Nvidia',
cn: '英伟达',
- icon: 'icon-nvidia',
+ icon: 'icon-yingweida',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -406,7 +406,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
AI302: {
label: 'AI302',
cn: '302.AI',
- icon: 'icon-302ai',
+ icon: 'icon-a-302ai',
urlWrite: false,
secretRequired: true,
customHeader: false,
@@ -446,7 +446,7 @@ export const DEFAULT_MODEL_PROVIDERS: ModelProviderMap = {
Mistral: {
label: 'Mistral',
cn: 'Mistral',
- icon: 'icon-mistral',
+ icon: 'icon-Mistral',
urlWrite: false,
secretRequired: true,
customHeader: false,