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
8464b304
Commit
8464b304
authored
Jun 10, 2024
by
Timothy J. Baek
Browse files
refac
parent
c9619646
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
40 additions
and
6 deletions
+40
-6
backend/apps/webui/routers/tools.py
backend/apps/webui/routers/tools.py
+3
-1
src/lib/components/workspace/Tools.svelte
src/lib/components/workspace/Tools.svelte
+21
-4
src/lib/components/workspace/Tools/ToolkitEditor.svelte
src/lib/components/workspace/Tools/ToolkitEditor.svelte
+0
-1
src/routes/(app)/workspace/tools/create/+page.svelte
src/routes/(app)/workspace/tools/create/+page.svelte
+16
-0
No files found.
backend/apps/webui/routers/tools.py
View file @
8464b304
...
...
@@ -80,6 +80,8 @@ async def create_new_toolkit(form_data: ToolForm, user=Depends(get_admin_user)):
detail
=
"Only alphanumeric characters and underscores are allowed in the id"
,
)
form_data
.
id
=
form_data
.
id
.
lower
()
toolkit
=
Tools
.
get_tool_by_id
(
form_data
.
id
)
if
toolkit
==
None
:
toolkit_path
=
os
.
path
.
join
(
TOOLS_DIR
,
f
"
{
form_data
.
id
}
.py"
)
...
...
@@ -151,7 +153,7 @@ async def update_toolkit_by_id(
specs
=
get_tools_specs
(
TOOLS
[
id
])
updated
=
{
**
form_data
.
model_dump
(),
**
form_data
.
model_dump
(
exclude
=
{
"id"
}
),
"specs"
:
specs
,
}
...
...
src/lib/components/workspace/Tools.svelte
View file @
8464b304
...
...
@@ -8,7 +8,13 @@
import { createNewPrompt, deletePromptByCommand, getPrompts } from '$lib/apis/prompts';
import { goto } from '$app/navigation';
import { createNewTool, deleteToolById, exportTools, getTools } from '$lib/apis/tools';
import {
createNewTool,
deleteToolById,
exportTools,
getToolById,
getTools
} from '$lib/apis/tools';
const i18n = getContext('i18n');
...
...
@@ -121,9 +127,20 @@
<button
class="self-center w-fit text-sm px-2 py-2 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
type="button"
on:click={() => {
sessionStorage.tool = JSON.stringify(tool);
on:click={async () => {
const _tool = await getToolById(localStorage.token, tool.id).catch((error) => {
toast.error(error);
return null;
});
if (_tool) {
sessionStorage.tool = JSON.stringify({
..._tool,
id: `${_tool.id}_clone`,
name: `${_tool.name} (Clone)`
});
goto('/workspace/tools/create');
}
}}
>
<svg
...
...
src/lib/components/workspace/Tools/ToolkitEditor.svelte
View file @
8464b304
...
...
@@ -9,7 +9,6 @@
const dispatch = createEventDispatcher();
let formElement = null;
let loading = false;
export let edit = false;
...
...
src/routes/(app)/workspace/tools/create/+page.svelte
View file @
8464b304
...
...
@@ -3,8 +3,11 @@
import { createNewTool, getTools } from '$lib/apis/tools';
import ToolkitEditor from '$lib/components/workspace/Tools/ToolkitEditor.svelte';
import { tools } from '$lib/stores';
import { onMount } from 'svelte';
import { toast } from 'svelte-sonner';
let tool = null;
const saveHandler = async (data) => {
console.log(data);
const res = await createNewTool(localStorage.token, {
...
...
@@ -24,9 +27,22 @@
await goto('/workspace/tools');
}
};
onMount(() => {
console.log('mounted');
if (sessionStorage.tool) {
tool = JSON.parse(sessionStorage.tool);
sessionStorage.removeItem('tool');
}
});
</script>
<ToolkitEditor
id={tool?.id ?? ''}
name={tool?.name ?? ''}
meta={tool?.meta ?? { description: '' }}
content={tool?.content ?? ''}
on:save={(e) => {
saveHandler(e.detail);
}}
...
...
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