Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
e35ec03f
authored
May 23, 2024
by
1808837298@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 完善获取模型列表功能 (close #237)
parent
dc2106f1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
3 deletions
+53
-3
web/src/pages/Channel/EditChannel.js
+53
-3
No files found.
web/src/pages/Channel/EditChannel.js
View file @
e35ec03f
...
@@ -37,6 +37,8 @@ const STATUS_CODE_MAPPING_EXAMPLE = {
...
@@ -37,6 +37,8 @@ const STATUS_CODE_MAPPING_EXAMPLE = {
400
:
'500'
,
400
:
'500'
,
};
};
const
fetchButtonTips
=
"1. 新建渠道时,请求通过当前浏览器发出;2. 编辑已有渠道,请求通过后端服务器发出"
function
type2secretPrompt
(
type
)
{
function
type2secretPrompt
(
type
)
{
// inputs.type === 15 ? '按照如下格式输入:APIKey|SecretKey' : (inputs.type === 18 ? '按照如下格式输入:APPID|APISecret|APIKey' : '请输入渠道对应的鉴权密钥')
// inputs.type === 15 ? '按照如下格式输入:APIKey|SecretKey' : (inputs.type === 18 ? '按照如下格式输入:APPID|APISecret|APIKey' : '请输入渠道对应的鉴权密钥')
switch
(
type
)
{
switch
(
type
)
{
...
@@ -175,12 +177,60 @@ const EditChannel = (props) => {
...
@@ -175,12 +177,60 @@ const EditChannel = (props) => {
setLoading
(
false
);
setLoading
(
false
);
};
};
const
fetchUpstreamModelList
=
async
(
name
)
=>
{
if
(
inputs
[
"type"
]
!==
1
)
{
showError
(
"仅支持 OpenAI 接口格式"
)
return
;
}
setLoading
(
true
)
const
models
=
inputs
[
"models"
]
||
[]
let
err
=
false
;
if
(
isEdit
)
{
const
res
=
await
API
.
get
(
"/api/channel/fetch_models/"
+
channelId
)
if
(
res
.
data
&&
res
.
data
?.
success
)
{
models
.
push
(...
res
.
data
.
data
)
}
else
{
err
=
true
}
}
else
{
if
(
!
inputs
?.[
"key"
])
{
showError
(
"请填写密钥"
)
err
=
true
}
else
{
try
{
const
host
=
new
URL
((
inputs
[
"base_url"
]
||
"https://api.openai.com"
))
const
url
=
`https://
${
host
.
hostname
}
/v1/models`
;
const
key
=
inputs
[
"key"
];
const
res
=
await
axios
.
get
(
url
,
{
headers
:
{
'Authorization'
:
`Bearer
${
key
}
`
}
})
if
(
res
.
data
&&
res
.
data
?.
success
)
{
models
.
push
(...
es
.
data
.
data
.
map
((
model
)
=>
model
.
id
))
}
else
{
err
=
true
}
}
catch
(
error
)
{
err
=
true
}
}
}
if
(
!
err
)
{
handleInputChange
(
name
,
Array
.
from
(
new
Set
(
models
)));
showSuccess
(
"获取模型列表成功"
);
}
else
{
showError
(
'获取模型列表失败'
);
}
setLoading
(
false
);
}
const
fetchModels
=
async
()
=>
{
const
fetchModels
=
async
()
=>
{
try
{
try
{
let
res
=
await
API
.
get
(
`/api/channel/models`
);
let
res
=
await
API
.
get
(
`/api/channel/models`
);
if
(
res
===
undefined
)
{
return
;
}
let
localModelOptions
=
res
.
data
.
data
.
map
((
model
)
=>
({
let
localModelOptions
=
res
.
data
.
data
.
map
((
model
)
=>
({
label
:
model
.
id
,
label
:
model
.
id
,
value
:
model
.
id
,
value
:
model
.
id
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment