diff --git a/web/src/assets/svg/enable.svg b/web/src/assets/svg/enable.svg
index bf1535b0d..49c42a263 100644
--- a/web/src/assets/svg/enable.svg
+++ b/web/src/assets/svg/enable.svg
@@ -1,10 +1,9 @@
\ No newline at end of file
diff --git a/web/src/assets/svg/llm/xinference.svg b/web/src/assets/svg/llm/xinference.svg
new file mode 100644
index 000000000..8d2ab4f3e
--- /dev/null
+++ b/web/src/assets/svg/llm/xinference.svg
@@ -0,0 +1,39 @@
+
+
\ No newline at end of file
diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts
index 33fb8d9cc..4a4ca5595 100644
--- a/web/src/locales/en.ts
+++ b/web/src/locales/en.ts
@@ -397,13 +397,14 @@ export default {
upgrade: 'Upgrade',
addLlmTitle: 'Add LLM',
modelName: 'Model name',
+ modelUid: 'Model UID',
modelNameMessage: 'Please input your model name!',
modelType: 'Model type',
modelTypeMessage: 'Please input your model type!',
addLlmBaseUrl: 'Base url',
baseUrlNameMessage: 'Please input your base url!',
vision: 'Does it support Vision?',
- ollamaLink: 'How to integrate Ollama',
+ ollamaLink: 'How to integrate {{name}}',
},
message: {
registered: 'Registered!',
diff --git a/web/src/locales/zh.ts b/web/src/locales/zh.ts
index 70a3b42c7..ad4741ac0 100644
--- a/web/src/locales/zh.ts
+++ b/web/src/locales/zh.ts
@@ -382,13 +382,14 @@ export default {
upgrade: '升级',
addLlmTitle: '添加 LLM',
modelName: '模型名称',
+ modelUid: '模型UID',
modelType: '模型类型',
addLlmBaseUrl: '基础 Url',
vision: '是否支持 Vision',
modelNameMessage: '请输入模型名称!',
modelTypeMessage: '请输入模型类型!',
baseUrlNameMessage: '请输入基础 Url!',
- ollamaLink: '如何集成 Ollama',
+ ollamaLink: '如何集成 {{name}}',
},
message: {
registered: '注册成功',
diff --git a/web/src/pages/user-setting/constants.tsx b/web/src/pages/user-setting/constants.tsx
index 73df9c7c5..d91843c2a 100644
--- a/web/src/pages/user-setting/constants.tsx
+++ b/web/src/pages/user-setting/constants.tsx
@@ -14,3 +14,5 @@ export const UserSettingIconMap = {
};
export * from '@/constants/setting';
+
+export const LocalLlmFactories = ['Ollama', 'Xinference'];
diff --git a/web/src/pages/user-setting/setting-model/hooks.ts b/web/src/pages/user-setting/setting-model/hooks.ts
index 5e9bd8c35..617c564e9 100644
--- a/web/src/pages/user-setting/setting-model/hooks.ts
+++ b/web/src/pages/user-setting/setting-model/hooks.ts
@@ -132,6 +132,7 @@ export const useSelectModelProvidersLoading = () => {
export const useSubmitOllama = () => {
const loading = useOneNamespaceEffectsLoading('settingModel', ['add_llm']);
+ const [selectedLlmFactory, setSelectedLlmFactory] = useState('');
const addLlm = useAddLlm();
const {
visible: llmAddingVisible,
@@ -149,11 +150,17 @@ export const useSubmitOllama = () => {
[hideLlmAddingModal, addLlm],
);
+ const handleShowLlmAddingModal = (llmFactory: string) => {
+ setSelectedLlmFactory(llmFactory);
+ showLlmAddingModal();
+ };
+
return {
llmAddingLoading: loading,
onLlmAddingOk,
llmAddingVisible,
hideLlmAddingModal,
- showLlmAddingModal,
+ showLlmAddingModal: handleShowLlmAddingModal,
+ selectedLlmFactory,
};
};
diff --git a/web/src/pages/user-setting/setting-model/index.tsx b/web/src/pages/user-setting/setting-model/index.tsx
index 272ffb5bc..cd570e71e 100644
--- a/web/src/pages/user-setting/setting-model/index.tsx
+++ b/web/src/pages/user-setting/setting-model/index.tsx
@@ -25,6 +25,7 @@ import {
} from 'antd';
import { useCallback } from 'react';
import SettingTitle from '../components/setting-title';
+import { isLocalLlmFactory } from '../utils';
import ApiKeyModal from './api-key-modal';
import {
useSelectModelProvidersLoading,
@@ -43,6 +44,7 @@ const IconMap = {
'ZHIPU-AI': 'zhipu',
文心一言: 'wenxin',
Ollama: 'ollama',
+ Xinference: 'xinference',
};
const LlmIcon = ({ name }: { name: string }) => {
@@ -89,7 +91,7 @@ const ModelCard = ({ item, clickApiKey }: IModelCardProps) => {