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
24741474
Commit
24741474
authored
Jan 02, 2024
by
Timothy J. Baek
Browse files
feat: prompts backend support
parent
22c210e8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
108 additions
and
0 deletions
+108
-0
backend/apps/web/routers/prompts.py
backend/apps/web/routers/prompts.py
+108
-0
No files found.
backend/apps/web/routers/prompts.py
0 → 100644
View file @
24741474
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
import
json
from
apps.web.models.prompts
import
Prompts
,
PromptForm
,
PromptModel
from
utils.utils
import
get_current_user
from
constants
import
ERROR_MESSAGES
router
=
APIRouter
()
############################
# GetPrompts
############################
@
router
.
get
(
"/"
,
response_model
=
List
[
PromptModel
])
async
def
get_prompts
(
user
=
Depends
(
get_current_user
)):
return
Prompts
.
get_prompts
()
############################
# CreateNewPrompt
############################
@
router
.
post
(
"/create"
,
response_model
=
Optional
[
PromptModel
])
async
def
create_new_prompt
(
form_data
:
PromptForm
,
user
=
Depends
(
get_current_user
)):
if
user
.
role
!=
"admin"
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
ACCESS_PROHIBITED
,
)
prompt
=
Prompts
.
insert_new_prompt
(
user
.
id
,
form_data
)
if
prompt
:
return
prompt
else
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
DEFAULT
(),
)
############################
# GetPromptByCommand
############################
@
router
.
get
(
"/{command}"
,
response_model
=
Optional
[
PromptModel
])
async
def
get_prompt_by_command
(
command
:
str
,
user
=
Depends
(
get_current_user
)):
prompt
=
Prompts
.
get_prompt_by_command
(
command
)
if
prompt
:
return
prompt
else
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
NOT_FOUND
,
)
############################
# UpdatePromptByCommand
############################
@
router
.
post
(
"/{command}/update"
,
response_model
=
Optional
[
PromptModel
])
async
def
update_prompt_by_command
(
command
:
str
,
form_data
:
PromptForm
,
user
=
Depends
(
get_current_user
)
):
if
user
.
role
!=
"admin"
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
ACCESS_PROHIBITED
,
)
prompt
=
Prompts
.
update_prompt_by_command
(
command
,
form_data
)
if
prompt
:
return
prompt
else
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
ACCESS_PROHIBITED
,
)
############################
# DeletePromptByCommand
############################
@
router
.
delete
(
"/{command}/delete"
,
response_model
=
bool
)
async
def
delete_prompt_by_command
(
command
:
str
,
user
=
Depends
(
get_current_user
)):
if
user
.
role
!=
"admin"
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
ACCESS_PROHIBITED
,
)
result
=
Prompts
.
delete_prompt_by_command
(
command
)
return
result
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