Compare commits

...

3 Commits

Author SHA1 Message Date
ningyv 9c54fec65e fix: homepage Permission Configuration 2025-03-03 14:20:20 +08:00
ningyv e09d35ec53 fix: homepage Permission Configuration 2025-03-03 14:14:20 +08:00
ningyv d424b68b2b feat: feature/1.5-Data Integration 2025-02-20 18:35:26 +08:00
7 changed files with 39 additions and 13 deletions
@@ -870,5 +870,6 @@
"K8097d6be": "is an open-source AI Gateway and API Portal that unifies access to OpenAI, DeepSeek, and other AI models. With enterprise-grade security features and real-time monitoring, it helps teams safely manage and share their AI APIs through a unified gateway.",
"Kf1ce5b3": "✨ We'd love your support on Github! Leave us a star or share your feedback. ",
"K3af90490": "⚡ You can quickly open the API for everyone to use via the following methods:",
"K6b99dce8": "address"
"K6b99dce8": "address",
"Kce2fcdbf": "No Permission"
}
@@ -892,5 +892,6 @@
"K8097d6be": "OpenAIやDeepSeekなどのさまざまなAIモデルに迅速にアクセスできるオープンソースのワンストップAIゲートウェイおよびAPIポータルです。統一されたリクエスト形式を使用して、モデルの切り替えによるビジネスへの影響を回避し、企業レベルのAPIセキュリティ(認証/レート制限/センシティブワードフィルタリング)とリアルタイムの使用量監視を提供します。チーム内でのAPI共有やコラボレーションをサポートし、インターフェースのサブスクリプション認証を管理してAPIのセキュリティを確保します。",
"Kf1ce5b3": "✨ Githubでスターを付けていただくか、製品フィードバックをお寄せください。",
"K3af90490": "⚡ 以下の方法で、APIをすぐに公開して皆さんに利用してもらえます:",
"K6b99dce8": "Ollama アドレス"
"K6b99dce8": "Ollama アドレス",
"Kce2fcdbf": "権限がありません"
}
@@ -823,5 +823,6 @@
"K8097d6be": "是开源的一站式 AI 网关与 API 门户,可快速接入 OpenAI/DeepSeek 等各类 AI 模型,通过统一请求格式避免模型切换对业务造成影响,提供企业级 API 安全防护(鉴权/限流/敏感词过滤)与实时用量监控,支持团队内 API 共享协作,管理接口订阅授权并保证您的API安全。",
"Kf1ce5b3": "✨ 欢迎在 Github 为我们 Star 或提供产品反馈意见。",
"K3af90490": "⚡您可快速通过以下方式开放API供大家使用:",
"K6b99dce8": "Ollama 地址"
"K6b99dce8": "Ollama 地址",
"Kce2fcdbf": "暂无权限"
}
@@ -892,5 +892,6 @@
"K8097d6be": "是一個開源的一站式 AI 閘道和 API 入口網站,可快速接入 OpenAI/DeepSeek 等各類 AI 模型,通過統一的請求格式避免模型切換對業務造成影響,提供企業級 API 安全防護(鑑權/限流/敏感詞過濾)與實時用量監控,支持團隊內 API 共享協作,管理介面訂閱授權並保證您的 API 安全。",
"Kf1ce5b3": "✨ 歡迎在 Github 為我們 Star 或提供產品反饋意見。",
"K3af90490": "⚡ 您可以快速通過以下方式開放 API 供大家使用:",
"K6b99dce8": "Ollama 地址"
"K6b99dce8": "Ollama 地址",
"Kce2fcdbf": "暫無權限"
}
@@ -133,9 +133,7 @@ const LocalModelList: React.FC = () => {
const configureService = (address?: string) => {
modal.confirm({
title: $t('配置 Ollama 服务'),
content: (
<ConfigureOllamaService ref={ConfigureOllamaServiceRef} address={address}></ConfigureOllamaService>
),
content: <ConfigureOllamaService ref={ConfigureOllamaServiceRef} address={address}></ConfigureOllamaService>,
onOk: () => {
return ConfigureOllamaServiceRef.current?.save().then((res) => {
if (res === true) {
@@ -175,9 +173,11 @@ const LocalModelList: React.FC = () => {
<div>
<Icon className="align-sub mr-[5px]" icon="ph:hard-drives-light" width="50" height="50" />
<div>{$t('模型部署服务未配置')}</div>
<Button type="primary" className="mt-[10px]" onClick={() => configureService()}>
{$t('配置服务')}
</Button>
<WithPermission access="system.devops.ai_provider.edit">
<Button type="primary" className="mt-[10px]" onClick={() => configureService()}>
{$t('配置服务')}
</Button>
</WithPermission>
</div>
</>
)
@@ -448,14 +448,19 @@ const LocalModelList: React.FC = () => {
setSearchWord(e.target.value)
pageListRef.current?.reload()
}}
beforeNewBtn={
[<Button className="mr-btnbase" key="removeFromDep" onClick={() => configureService(ollamaAddress)}>{$t('配置服务')}</Button>]
}
beforeNewBtn={[
<WithPermission access="system.devops.ai_provider.edit">
<Button className="mr-btnbase" key="removeFromDep" onClick={() => configureService(ollamaAddress)}>
{$t('配置服务')}
</Button>
</WithPermission>
]}
showPagination={true}
searchPlaceholder={$t('请输入名称搜索')}
columns={columns}
addNewBtnTitle={$t('部署模型')}
onAddNewBtnClick={handleAdd}
addNewBtnAccess="system.devops.ai_provider.edit"
addNewBtnDisabled={!ollamaAddress}
/>
)
@@ -216,6 +216,7 @@ const OnlineModelList: React.FC = () => {
showPagination={true}
searchPlaceholder={$t('请输入名称搜索')}
columns={columns}
addNewBtnAccess="system.devops.ai_provider.edit"
addNewBtnTitle={$t('添加模型')}
onAddNewBtnClick={handleAdd}
/>
@@ -36,6 +36,10 @@ export const AIModelGuide = () => {
* rest
*/
const restCardClick = async () => {
const permission = checkAccess('system.workspace.service.edit', accessData)
if (!permission) {
return message.warning($t('暂无权限'))
}
modal.confirm({
title: $t('添加 Rest 服务'),
content: <RestAIDeploy ref={restAiDeployRef}></RestAIDeploy>,
@@ -58,6 +62,10 @@ export const AIModelGuide = () => {
* AI
*/
const aiCardClick = () => {
const permission = checkAccess('system.devops.ai_provider.edit', accessData)
if (!permission) {
return message.warning($t('暂无权限'))
}
// 更新弹窗
const updateEntityData = (data: any) => {
entityData.current = data
@@ -130,6 +138,10 @@ export const AIModelGuide = () => {
* AI API
*/
const localModelCardClick = async () => {
const permission = checkAccess('system.devops.ai_provider.edit', accessData)
if (!permission) {
return message.warning($t('暂无权限'))
}
if (!ollamaAddress) {
navigateTo('/aisetting?status=unconfigure')
return
@@ -156,6 +168,10 @@ export const AIModelGuide = () => {
}
const deployDeepSeek = async (e: any) => {
e.stopPropagation()
const permission = checkAccess('system.devops.ai_provider.edit', accessData)
if (!permission) {
return message.warning($t('暂无权限'))
}
if (!ollamaAddress) {
navigateTo('/aisetting?status=unconfigure')
return