Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
open-webui
Commits
0996f3c2
Commit
0996f3c2
authored
Dec 26, 2023
by
Timothy J. Baek
Browse files
chore: layout refac
parent
75332752
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
101 additions
and
73 deletions
+101
-73
src/lib/apis/auths/index.ts
src/lib/apis/auths/index.ts
+33
-6
src/lib/apis/index.ts
src/lib/apis/index.ts
+9
-21
src/lib/apis/ollama/index.ts
src/lib/apis/ollama/index.ts
+8
-8
src/lib/apis/openai/index.ts
src/lib/apis/openai/index.ts
+35
-0
src/lib/apis/users/index.ts
src/lib/apis/users/index.ts
+3
-3
src/routes/(app)/+layout.svelte
src/routes/(app)/+layout.svelte
+1
-1
src/routes/+layout.svelte
src/routes/+layout.svelte
+12
-34
No files found.
src/lib/apis/auths/index.ts
View file @
0996f3c2
import
{
WEBUI_API_BASE_URL
}
from
'
$lib/constants
'
;
import
{
WEBUI_API_BASE_URL
}
from
'
$lib/constants
'
;
export
const
getSessionUser
=
async
(
token
:
string
)
=>
{
let
error
=
null
;
const
res
=
await
fetch
(
`
${
WEBUI_API_BASE_URL
}
/auths`
,
{
method
:
'
GET
'
,
headers
:
{
'
Content-Type
'
:
'
application/json
'
,
Authorization
:
`Bearer
${
token
}
`
}
})
.
then
(
async
(
res
)
=>
{
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
error
=
err
.
detail
;
return
null
;
});
if
(
error
)
{
throw
error
;
}
return
res
;
};
export
const
userSignIn
=
async
(
email
:
string
,
password
:
string
)
=>
{
export
const
userSignIn
=
async
(
email
:
string
,
password
:
string
)
=>
{
let
error
=
null
;
let
error
=
null
;
...
@@ -17,10 +44,10 @@ export const userSignIn = async (email: string, password: string) => {
...
@@ -17,10 +44,10 @@ export const userSignIn = async (email: string, password: string) => {
if
(
!
res
.
ok
)
throw
await
res
.
json
();
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
return
res
.
json
();
})
})
.
catch
((
err
or
)
=>
{
.
catch
((
err
)
=>
{
console
.
log
(
err
or
);
console
.
log
(
err
);
error
=
err
or
.
detail
;
error
=
err
.
detail
;
return
null
;
return
null
;
});
});
...
@@ -49,9 +76,9 @@ export const userSignUp = async (name: string, email: string, password: string)
...
@@ -49,9 +76,9 @@ export const userSignUp = async (name: string, email: string, password: string)
if
(
!
res
.
ok
)
throw
await
res
.
json
();
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
return
res
.
json
();
})
})
.
catch
((
err
or
)
=>
{
.
catch
((
err
)
=>
{
console
.
log
(
err
or
);
console
.
log
(
err
);
error
=
err
or
.
detail
;
error
=
err
.
detail
;
return
null
;
return
null
;
});
});
...
...
src/lib/apis/index.ts
View file @
0996f3c2
export
const
getOpenAIModels
=
async
(
import
{
WEBUI_API_BASE_URL
}
from
'
$lib/constants
'
;
base_url
:
string
=
'
https://api.openai.com/v1
'
,
api_key
:
string
=
''
export
const
getBackendConfig
=
async
()
=>
{
)
=>
{
let
error
=
null
;
let
error
=
null
;
const
res
=
await
fetch
(
`
${
base_url
}
/models
`
,
{
const
res
=
await
fetch
(
`
${
WEBUI_API_BASE_URL
}
/
`
,
{
method
:
'
GET
'
,
method
:
'
GET
'
,
headers
:
{
headers
:
{
'
Content-Type
'
:
'
application/json
'
,
'
Content-Type
'
:
'
application/json
'
Authorization
:
`Bearer
${
api_key
}
`
}
}
})
})
.
then
(
async
(
res
)
=>
{
.
then
(
async
(
res
)
=>
{
if
(
!
res
.
ok
)
throw
await
res
.
json
();
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
return
res
.
json
();
})
})
.
catch
((
err
or
)
=>
{
.
catch
((
err
)
=>
{
console
.
log
(
err
or
);
console
.
log
(
err
);
error
=
`OpenAI:
${
error
?.
error
?.
message
??
'
Network Problem
'
}
`
;
error
=
err
;
return
null
;
return
null
;
});
});
if
(
error
)
{
return
res
;
throw
error
;
}
let
models
=
Array
.
isArray
(
res
)
?
res
:
res
?.
data
??
null
;
console
.
log
(
models
);
return
models
.
map
((
model
)
=>
({
name
:
model
.
id
,
external
:
true
}))
.
filter
((
model
)
=>
(
base_url
.
includes
(
'
openai
'
)
?
model
.
name
.
includes
(
'
gpt
'
)
:
true
));
};
};
src/lib/apis/ollama/index.ts
View file @
0996f3c2
...
@@ -18,10 +18,10 @@ export const getOllamaVersion = async (
...
@@ -18,10 +18,10 @@ export const getOllamaVersion = async (
if
(
!
res
.
ok
)
throw
await
res
.
json
();
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
return
res
.
json
();
})
})
.
catch
((
err
or
)
=>
{
.
catch
((
err
)
=>
{
console
.
log
(
err
or
);
console
.
log
(
err
);
if
(
'
detail
'
in
err
or
)
{
if
(
'
detail
'
in
err
)
{
error
=
err
or
.
detail
;
error
=
err
.
detail
;
}
else
{
}
else
{
error
=
'
Server connection failed
'
;
error
=
'
Server connection failed
'
;
}
}
...
@@ -53,10 +53,10 @@ export const getOllamaModels = async (
...
@@ -53,10 +53,10 @@ export const getOllamaModels = async (
if
(
!
res
.
ok
)
throw
await
res
.
json
();
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
return
res
.
json
();
})
})
.
catch
((
err
or
)
=>
{
.
catch
((
err
)
=>
{
console
.
log
(
err
or
);
console
.
log
(
err
);
if
(
'
detail
'
in
err
or
)
{
if
(
'
detail
'
in
err
)
{
error
=
err
or
.
detail
;
error
=
err
.
detail
;
}
else
{
}
else
{
error
=
'
Server connection failed
'
;
error
=
'
Server connection failed
'
;
}
}
...
...
src/lib/apis/openai/index.ts
0 → 100644
View file @
0996f3c2
export
const
getOpenAIModels
=
async
(
base_url
:
string
=
'
https://api.openai.com/v1
'
,
api_key
:
string
=
''
)
=>
{
let
error
=
null
;
const
res
=
await
fetch
(
`
${
base_url
}
/models`
,
{
method
:
'
GET
'
,
headers
:
{
'
Content-Type
'
:
'
application/json
'
,
Authorization
:
`Bearer
${
api_key
}
`
}
})
.
then
(
async
(
res
)
=>
{
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
error
=
`OpenAI:
${
err
?.
error
?.
message
??
'
Network Problem
'
}
`
;
return
null
;
});
if
(
error
)
{
throw
error
;
}
let
models
=
Array
.
isArray
(
res
)
?
res
:
res
?.
data
??
null
;
console
.
log
(
models
);
return
models
.
map
((
model
)
=>
({
name
:
model
.
id
,
external
:
true
}))
.
filter
((
model
)
=>
(
base_url
.
includes
(
'
openai
'
)
?
model
.
name
.
includes
(
'
gpt
'
)
:
true
));
};
src/lib/apis/users/index.ts
View file @
0996f3c2
...
@@ -18,9 +18,9 @@ export const updateUserRole = async (token: string, id: string, role: string) =>
...
@@ -18,9 +18,9 @@ export const updateUserRole = async (token: string, id: string, role: string) =>
if
(
!
res
.
ok
)
throw
await
res
.
json
();
if
(
!
res
.
ok
)
throw
await
res
.
json
();
return
res
.
json
();
return
res
.
json
();
})
})
.
catch
((
err
or
)
=>
{
.
catch
((
err
)
=>
{
console
.
log
(
err
or
);
console
.
log
(
err
);
error
=
err
or
.
detail
;
error
=
err
.
detail
;
return
null
;
return
null
;
});
});
...
...
src/routes/(app)/+layout.svelte
View file @
0996f3c2
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
import toast from 'svelte-french-toast';
import toast from 'svelte-french-toast';
import { OLLAMA_API_BASE_URL, WEBUI_API_BASE_URL } from '$lib/constants';
import { OLLAMA_API_BASE_URL, WEBUI_API_BASE_URL } from '$lib/constants';
import { getOllamaModels, getOllamaVersion } from '$lib/apis/ollama';
import { getOllamaModels, getOllamaVersion } from '$lib/apis/ollama';
import { getOpenAIModels } from '$lib/apis';
import { getOpenAIModels } from '$lib/apis
/openai
';
import {
import {
createNewChat,
createNewChat,
deleteChatById,
deleteChatById,
...
...
src/routes/+layout.svelte
View file @
0996f3c2
...
@@ -2,52 +2,30 @@
...
@@ -2,52 +2,30 @@
import { onMount, tick } from 'svelte';
import { onMount, tick } from 'svelte';
import { config, user } from '$lib/stores';
import { config, user } from '$lib/stores';
import { goto } from '$app/navigation';
import { goto } from '$app/navigation';
import { WEBUI_API_BASE_URL } from '$lib/constants';
import toast, { Toaster } from 'svelte-french-toast';
import toast, { Toaster } from 'svelte-french-toast';
import { getBackendConfig } from '$lib/apis';
import { getSessionUser } from '$lib/apis/auths';
import '../app.css';
import '../app.css';
import '../tailwind.css';
import '../tailwind.css';
import 'tippy.js/dist/tippy.css';
import 'tippy.js/dist/tippy.css';
let loaded = false;
let loaded = false;
onMount(async () => {
onMount(async () => {
// Check Backend Status
// Check Backend Status
const res = await fetch(`${WEBUI_API_BASE_URL}/`, {
const backendConfig = await getBackendConfig();
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((error) => {
console.log(error);
return null;
});
if (
res
) {
if (
backendConfig
) {
await config.set(
res
);
await config.set(
backendConfig
);
console.log(
res
);
console.log(
backendConfig
);
if ($config) {
if ($config) {
if (localStorage.token) {
if (localStorage.token) {
// Get Session User Info
// Get Session User Info
const sessionUser = await fetch(`${WEBUI_API_BASE_URL}/auths`, {
const sessionUser = await getSessionUser(localStorage.token).catch((error) => {
method: 'GET',
toast.error(error);
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${localStorage.token}`
}
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((error) => {
console.log(error);
toast.error(error.detail);
return null;
return null;
});
});
...
...
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