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
29f904db
Commit
29f904db
authored
Aug 14, 2024
by
Michael Poluektov
Browse files
remove List imports
parent
038fc48a
Changes
38
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
64 additions
and
64 deletions
+64
-64
backend/apps/webui/models/prompts.py
backend/apps/webui/models/prompts.py
+2
-2
backend/apps/webui/models/tags.py
backend/apps/webui/models/tags.py
+6
-6
backend/apps/webui/models/tools.py
backend/apps/webui/models/tools.py
+4
-4
backend/apps/webui/models/users.py
backend/apps/webui/models/users.py
+2
-2
backend/apps/webui/routers/chats.py
backend/apps/webui/routers/chats.py
+11
-11
backend/apps/webui/routers/configs.py
backend/apps/webui/routers/configs.py
+7
-7
backend/apps/webui/routers/documents.py
backend/apps/webui/routers/documents.py
+3
-3
backend/apps/webui/routers/files.py
backend/apps/webui/routers/files.py
+2
-2
backend/apps/webui/routers/functions.py
backend/apps/webui/routers/functions.py
+3
-3
backend/apps/webui/routers/memories.py
backend/apps/webui/routers/memories.py
+2
-2
backend/apps/webui/routers/models.py
backend/apps/webui/routers/models.py
+2
-2
backend/apps/webui/routers/prompts.py
backend/apps/webui/routers/prompts.py
+2
-2
backend/apps/webui/routers/tools.py
backend/apps/webui/routers/tools.py
+3
-3
backend/apps/webui/routers/users.py
backend/apps/webui/routers/users.py
+2
-2
backend/apps/webui/routers/utils.py
backend/apps/webui/routers/utils.py
+1
-1
backend/main.py
backend/main.py
+2
-2
backend/utils/misc.py
backend/utils/misc.py
+9
-9
backend/utils/tools.py
backend/utils/tools.py
+1
-1
No files found.
backend/apps/webui/models/prompts.py
View file @
29f904db
from
pydantic
import
BaseModel
,
ConfigDict
from
typing
import
List
,
Optional
from
typing
import
Optional
import
time
from
sqlalchemy
import
String
,
Column
,
BigInteger
,
Text
...
...
@@ -82,7 +82,7 @@ class PromptsTable:
except
Exception
:
return
None
def
get_prompts
(
self
)
->
L
ist
[
PromptModel
]:
def
get_prompts
(
self
)
->
l
ist
[
PromptModel
]:
with
get_db
()
as
db
:
return
[
...
...
backend/apps/webui/models/tags.py
View file @
29f904db
from
pydantic
import
BaseModel
,
ConfigDict
from
typing
import
List
,
Optional
from
typing
import
Optional
import
json
import
uuid
...
...
@@ -69,11 +69,11 @@ class ChatIdTagForm(BaseModel):
class
TagChatIdsResponse
(
BaseModel
):
chat_ids
:
L
ist
[
str
]
chat_ids
:
l
ist
[
str
]
class
ChatTagsResponse
(
BaseModel
):
tags
:
L
ist
[
str
]
tags
:
l
ist
[
str
]
class
TagTable
:
...
...
@@ -135,7 +135,7 @@ class TagTable:
except
Exception
:
return
None
def
get_tags_by_user_id
(
self
,
user_id
:
str
)
->
L
ist
[
TagModel
]:
def
get_tags_by_user_id
(
self
,
user_id
:
str
)
->
l
ist
[
TagModel
]:
with
get_db
()
as
db
:
tag_names
=
[
chat_id_tag
.
tag_name
...
...
@@ -159,7 +159,7 @@ class TagTable:
def
get_tags_by_chat_id_and_user_id
(
self
,
chat_id
:
str
,
user_id
:
str
)
->
L
ist
[
TagModel
]:
)
->
l
ist
[
TagModel
]:
with
get_db
()
as
db
:
tag_names
=
[
...
...
@@ -184,7 +184,7 @@ class TagTable:
def
get_chat_ids_by_tag_name_and_user_id
(
self
,
tag_name
:
str
,
user_id
:
str
)
->
L
ist
[
ChatIdTagModel
]:
)
->
l
ist
[
ChatIdTagModel
]:
with
get_db
()
as
db
:
return
[
...
...
backend/apps/webui/models/tools.py
View file @
29f904db
from
pydantic
import
BaseModel
,
ConfigDict
from
typing
import
List
,
Optional
from
typing
import
Optional
import
time
import
logging
from
sqlalchemy
import
String
,
Column
,
BigInteger
,
Text
...
...
@@ -45,7 +45,7 @@ class ToolModel(BaseModel):
user_id
:
str
name
:
str
content
:
str
specs
:
L
ist
[
dict
]
specs
:
l
ist
[
dict
]
meta
:
ToolMeta
updated_at
:
int
# timestamp in epoch
created_at
:
int
# timestamp in epoch
...
...
@@ -81,7 +81,7 @@ class ToolValves(BaseModel):
class
ToolsTable
:
def
insert_new_tool
(
self
,
user_id
:
str
,
form_data
:
ToolForm
,
specs
:
L
ist
[
dict
]
self
,
user_id
:
str
,
form_data
:
ToolForm
,
specs
:
l
ist
[
dict
]
)
->
Optional
[
ToolModel
]:
with
get_db
()
as
db
:
...
...
@@ -118,7 +118,7 @@ class ToolsTable:
except
Exception
:
return
None
def
get_tools
(
self
)
->
L
ist
[
ToolModel
]:
def
get_tools
(
self
)
->
l
ist
[
ToolModel
]:
with
get_db
()
as
db
:
return
[
ToolModel
.
model_validate
(
tool
)
for
tool
in
db
.
query
(
Tool
).
all
()]
...
...
backend/apps/webui/models/users.py
View file @
29f904db
from
pydantic
import
BaseModel
,
ConfigDict
,
parse_obj_as
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
import
time
from
sqlalchemy
import
String
,
Column
,
BigInteger
,
Text
...
...
@@ -146,7 +146,7 @@ class UsersTable:
except
Exception
:
return
None
def
get_users
(
self
,
skip
:
int
=
0
,
limit
:
int
=
50
)
->
L
ist
[
UserModel
]:
def
get_users
(
self
,
skip
:
int
=
0
,
limit
:
int
=
50
)
->
l
ist
[
UserModel
]:
with
get_db
()
as
db
:
users
=
(
db
.
query
(
User
)
...
...
backend/apps/webui/routers/chats.py
View file @
29f904db
from
fastapi
import
Depends
,
Request
,
HTTPException
,
status
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
utils.utils
import
get_verified_user
,
get_admin_user
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -40,8 +40,8 @@ router = APIRouter()
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
ChatTitleIdResponse
])
@
router
.
get
(
"/list"
,
response_model
=
L
ist
[
ChatTitleIdResponse
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
ChatTitleIdResponse
])
@
router
.
get
(
"/list"
,
response_model
=
l
ist
[
ChatTitleIdResponse
])
async
def
get_session_user_chat_list
(
user
=
Depends
(
get_verified_user
),
page
:
Optional
[
int
]
=
None
):
...
...
@@ -80,7 +80,7 @@ async def delete_all_user_chats(request: Request, user=Depends(get_verified_user
############################
@
router
.
get
(
"/list/user/{user_id}"
,
response_model
=
L
ist
[
ChatTitleIdResponse
])
@
router
.
get
(
"/list/user/{user_id}"
,
response_model
=
l
ist
[
ChatTitleIdResponse
])
async
def
get_user_chat_list_by_user_id
(
user_id
:
str
,
user
=
Depends
(
get_admin_user
),
...
...
@@ -119,7 +119,7 @@ async def create_new_chat(form_data: ChatForm, user=Depends(get_verified_user)):
############################
@
router
.
get
(
"/all"
,
response_model
=
L
ist
[
ChatResponse
])
@
router
.
get
(
"/all"
,
response_model
=
l
ist
[
ChatResponse
])
async
def
get_user_chats
(
user
=
Depends
(
get_verified_user
)):
return
[
ChatResponse
(
**
{
**
chat
.
model_dump
(),
"chat"
:
json
.
loads
(
chat
.
chat
)})
...
...
@@ -132,7 +132,7 @@ async def get_user_chats(user=Depends(get_verified_user)):
############################
@
router
.
get
(
"/all/archived"
,
response_model
=
L
ist
[
ChatResponse
])
@
router
.
get
(
"/all/archived"
,
response_model
=
l
ist
[
ChatResponse
])
async
def
get_user_archived_chats
(
user
=
Depends
(
get_verified_user
)):
return
[
ChatResponse
(
**
{
**
chat
.
model_dump
(),
"chat"
:
json
.
loads
(
chat
.
chat
)})
...
...
@@ -145,7 +145,7 @@ async def get_user_archived_chats(user=Depends(get_verified_user)):
############################
@
router
.
get
(
"/all/db"
,
response_model
=
L
ist
[
ChatResponse
])
@
router
.
get
(
"/all/db"
,
response_model
=
l
ist
[
ChatResponse
])
async
def
get_all_user_chats_in_db
(
user
=
Depends
(
get_admin_user
)):
if
not
ENABLE_ADMIN_EXPORT
:
raise
HTTPException
(
...
...
@@ -163,7 +163,7 @@ async def get_all_user_chats_in_db(user=Depends(get_admin_user)):
############################
@
router
.
get
(
"/archived"
,
response_model
=
L
ist
[
ChatTitleIdResponse
])
@
router
.
get
(
"/archived"
,
response_model
=
l
ist
[
ChatTitleIdResponse
])
async
def
get_archived_session_user_chat_list
(
user
=
Depends
(
get_verified_user
),
skip
:
int
=
0
,
limit
:
int
=
50
):
...
...
@@ -216,7 +216,7 @@ class TagNameForm(BaseModel):
limit
:
Optional
[
int
]
=
50
@
router
.
post
(
"/tags"
,
response_model
=
L
ist
[
ChatTitleIdResponse
])
@
router
.
post
(
"/tags"
,
response_model
=
l
ist
[
ChatTitleIdResponse
])
async
def
get_user_chat_list_by_tag_name
(
form_data
:
TagNameForm
,
user
=
Depends
(
get_verified_user
)
):
...
...
@@ -241,7 +241,7 @@ async def get_user_chat_list_by_tag_name(
############################
@
router
.
get
(
"/tags/all"
,
response_model
=
L
ist
[
TagModel
])
@
router
.
get
(
"/tags/all"
,
response_model
=
l
ist
[
TagModel
])
async
def
get_all_tags
(
user
=
Depends
(
get_verified_user
)):
try
:
tags
=
Tags
.
get_tags_by_user_id
(
user
.
id
)
...
...
@@ -417,7 +417,7 @@ async def delete_shared_chat_by_id(id: str, user=Depends(get_verified_user)):
############################
@
router
.
get
(
"/{id}/tags"
,
response_model
=
L
ist
[
TagModel
])
@
router
.
get
(
"/{id}/tags"
,
response_model
=
l
ist
[
TagModel
])
async
def
get_chat_tags_by_id
(
id
:
str
,
user
=
Depends
(
get_verified_user
)):
tags
=
Tags
.
get_tags_by_chat_id_and_user_id
(
id
,
user
.
id
)
...
...
backend/apps/webui/routers/configs.py
View file @
29f904db
from
fastapi
import
Response
,
Request
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
from
typing
import
Union
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -29,12 +29,12 @@ class SetDefaultModelsForm(BaseModel):
class
PromptSuggestion
(
BaseModel
):
title
:
L
ist
[
str
]
title
:
l
ist
[
str
]
content
:
str
class
SetDefaultSuggestionsForm
(
BaseModel
):
suggestions
:
L
ist
[
PromptSuggestion
]
suggestions
:
l
ist
[
PromptSuggestion
]
############################
...
...
@@ -50,7 +50,7 @@ async def set_global_default_models(
return
request
.
app
.
state
.
config
.
DEFAULT_MODELS
@
router
.
post
(
"/default/suggestions"
,
response_model
=
L
ist
[
PromptSuggestion
])
@
router
.
post
(
"/default/suggestions"
,
response_model
=
l
ist
[
PromptSuggestion
])
async
def
set_global_default_suggestions
(
request
:
Request
,
form_data
:
SetDefaultSuggestionsForm
,
...
...
@@ -67,10 +67,10 @@ async def set_global_default_suggestions(
class
SetBannersForm
(
BaseModel
):
banners
:
L
ist
[
BannerModel
]
banners
:
l
ist
[
BannerModel
]
@
router
.
post
(
"/banners"
,
response_model
=
L
ist
[
BannerModel
])
@
router
.
post
(
"/banners"
,
response_model
=
l
ist
[
BannerModel
])
async
def
set_banners
(
request
:
Request
,
form_data
:
SetBannersForm
,
...
...
@@ -81,7 +81,7 @@ async def set_banners(
return
request
.
app
.
state
.
config
.
BANNERS
@
router
.
get
(
"/banners"
,
response_model
=
L
ist
[
BannerModel
])
@
router
.
get
(
"/banners"
,
response_model
=
l
ist
[
BannerModel
])
async
def
get_banners
(
request
:
Request
,
user
=
Depends
(
get_verified_user
),
...
...
backend/apps/webui/routers/documents.py
View file @
29f904db
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -24,7 +24,7 @@ router = APIRouter()
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
DocumentResponse
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
DocumentResponse
])
async
def
get_documents
(
user
=
Depends
(
get_verified_user
)):
docs
=
[
DocumentResponse
(
...
...
@@ -102,7 +102,7 @@ class TagItem(BaseModel):
class
TagDocumentForm
(
BaseModel
):
name
:
str
tags
:
L
ist
[
dict
]
tags
:
l
ist
[
dict
]
@
router
.
post
(
"/doc/tags"
,
response_model
=
Optional
[
DocumentResponse
])
...
...
backend/apps/webui/routers/files.py
View file @
29f904db
...
...
@@ -11,7 +11,7 @@ from fastapi import (
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
pathlib
import
Path
from
fastapi
import
APIRouter
...
...
@@ -104,7 +104,7 @@ def upload_file(file: UploadFile = File(...), user=Depends(get_verified_user)):
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
FileModel
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
FileModel
])
async
def
list_files
(
user
=
Depends
(
get_verified_user
)):
files
=
Files
.
get_files
()
return
files
...
...
backend/apps/webui/routers/functions.py
View file @
29f904db
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
,
Request
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -30,7 +30,7 @@ router = APIRouter()
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
FunctionResponse
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
FunctionResponse
])
async
def
get_functions
(
user
=
Depends
(
get_verified_user
)):
return
Functions
.
get_functions
()
...
...
@@ -40,7 +40,7 @@ async def get_functions(user=Depends(get_verified_user)):
############################
@
router
.
get
(
"/export"
,
response_model
=
L
ist
[
FunctionModel
])
@
router
.
get
(
"/export"
,
response_model
=
l
ist
[
FunctionModel
])
async
def
get_functions
(
user
=
Depends
(
get_admin_user
)):
return
Functions
.
get_functions
()
...
...
backend/apps/webui/routers/memories.py
View file @
29f904db
from
fastapi
import
Response
,
Request
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -30,7 +30,7 @@ async def get_embeddings(request: Request):
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
MemoryModel
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
MemoryModel
])
async
def
get_memories
(
user
=
Depends
(
get_verified_user
)):
return
Memories
.
get_memories_by_user_id
(
user
.
id
)
...
...
backend/apps/webui/routers/models.py
View file @
29f904db
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
,
Request
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -18,7 +18,7 @@ router = APIRouter()
###########################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
ModelResponse
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
ModelResponse
])
async
def
get_models
(
user
=
Depends
(
get_verified_user
)):
return
Models
.
get_all_models
()
...
...
backend/apps/webui/routers/prompts.py
View file @
29f904db
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -18,7 +18,7 @@ router = APIRouter()
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
PromptModel
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
PromptModel
])
async
def
get_prompts
(
user
=
Depends
(
get_verified_user
)):
return
Prompts
.
get_prompts
()
...
...
backend/apps/webui/routers/tools.py
View file @
29f904db
from
fastapi
import
Depends
,
HTTPException
,
status
,
Request
from
typing
import
List
,
Optional
from
typing
import
Optional
from
fastapi
import
APIRouter
...
...
@@ -27,7 +27,7 @@ router = APIRouter()
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
ToolResponse
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
ToolResponse
])
async
def
get_toolkits
(
user
=
Depends
(
get_verified_user
)):
toolkits
=
[
toolkit
for
toolkit
in
Tools
.
get_tools
()]
return
toolkits
...
...
@@ -38,7 +38,7 @@ async def get_toolkits(user=Depends(get_verified_user)):
############################
@
router
.
get
(
"/export"
,
response_model
=
L
ist
[
ToolModel
])
@
router
.
get
(
"/export"
,
response_model
=
l
ist
[
ToolModel
])
async
def
get_toolkits
(
user
=
Depends
(
get_admin_user
)):
toolkits
=
[
toolkit
for
toolkit
in
Tools
.
get_tools
()]
return
toolkits
...
...
backend/apps/webui/routers/users.py
View file @
29f904db
from
fastapi
import
Response
,
Request
from
fastapi
import
Depends
,
FastAPI
,
HTTPException
,
status
from
datetime
import
datetime
,
timedelta
from
typing
import
List
,
Union
,
Optional
from
typing
import
Union
,
Optional
from
fastapi
import
APIRouter
from
pydantic
import
BaseModel
...
...
@@ -39,7 +39,7 @@ router = APIRouter()
############################
@
router
.
get
(
"/"
,
response_model
=
L
ist
[
UserModel
])
@
router
.
get
(
"/"
,
response_model
=
l
ist
[
UserModel
])
async
def
get_users
(
skip
:
int
=
0
,
limit
:
int
=
50
,
user
=
Depends
(
get_admin_user
)):
return
Users
.
get_users
(
skip
,
limit
)
...
...
backend/apps/webui/routers/utils.py
View file @
29f904db
...
...
@@ -57,7 +57,7 @@ async def get_html_from_markdown(
class
ChatForm
(
BaseModel
):
title
:
str
messages
:
L
ist
[
dict
]
messages
:
l
ist
[
dict
]
@
router
.
post
(
"/pdf"
)
...
...
backend/main.py
View file @
29f904db
...
...
@@ -51,7 +51,7 @@ from apps.webui.internal.db import Session
from
pydantic
import
BaseModel
from
typing
import
List
,
Optional
from
typing
import
Optional
from
apps.webui.models.auths
import
Auths
from
apps.webui.models.models
import
Models
...
...
@@ -2027,7 +2027,7 @@ async def get_model_filter_config(user=Depends(get_admin_user)):
class
ModelFilterConfigForm
(
BaseModel
):
enabled
:
bool
models
:
L
ist
[
str
]
models
:
l
ist
[
str
]
@
app
.
post
(
"/api/config/model/filter"
)
...
...
backend/utils/misc.py
View file @
29f904db
...
...
@@ -9,7 +9,7 @@ import time
from
utils.task
import
prompt_template
def
get_last_user_message_item
(
messages
:
L
ist
[
dict
])
->
Optional
[
dict
]:
def
get_last_user_message_item
(
messages
:
l
ist
[
dict
])
->
Optional
[
dict
]:
for
message
in
reversed
(
messages
):
if
message
[
"role"
]
==
"user"
:
return
message
...
...
@@ -26,7 +26,7 @@ def get_content_from_message(message: dict) -> Optional[str]:
return
None
def
get_last_user_message
(
messages
:
L
ist
[
dict
])
->
Optional
[
str
]:
def
get_last_user_message
(
messages
:
l
ist
[
dict
])
->
Optional
[
str
]:
message
=
get_last_user_message_item
(
messages
)
if
message
is
None
:
return
None
...
...
@@ -34,31 +34,31 @@ def get_last_user_message(messages: List[dict]) -> Optional[str]:
return
get_content_from_message
(
message
)
def
get_last_assistant_message
(
messages
:
L
ist
[
dict
])
->
Optional
[
str
]:
def
get_last_assistant_message
(
messages
:
l
ist
[
dict
])
->
Optional
[
str
]:
for
message
in
reversed
(
messages
):
if
message
[
"role"
]
==
"assistant"
:
return
get_content_from_message
(
message
)
return
None
def
get_system_message
(
messages
:
L
ist
[
dict
])
->
Optional
[
dict
]:
def
get_system_message
(
messages
:
l
ist
[
dict
])
->
Optional
[
dict
]:
for
message
in
messages
:
if
message
[
"role"
]
==
"system"
:
return
message
return
None
def
remove_system_message
(
messages
:
L
ist
[
dict
])
->
L
ist
[
dict
]:
def
remove_system_message
(
messages
:
l
ist
[
dict
])
->
l
ist
[
dict
]:
return
[
message
for
message
in
messages
if
message
[
"role"
]
!=
"system"
]
def
pop_system_message
(
messages
:
L
ist
[
dict
])
->
Tuple
[
Optional
[
dict
],
L
ist
[
dict
]]:
def
pop_system_message
(
messages
:
l
ist
[
dict
])
->
Tuple
[
Optional
[
dict
],
l
ist
[
dict
]]:
return
get_system_message
(
messages
),
remove_system_message
(
messages
)
def
prepend_to_first_user_message_content
(
content
:
str
,
messages
:
L
ist
[
dict
]
)
->
L
ist
[
dict
]:
content
:
str
,
messages
:
l
ist
[
dict
]
)
->
l
ist
[
dict
]:
for
message
in
messages
:
if
message
[
"role"
]
==
"user"
:
if
isinstance
(
message
[
"content"
],
list
):
...
...
@@ -71,7 +71,7 @@ def prepend_to_first_user_message_content(
return
messages
def
add_or_update_system_message
(
content
:
str
,
messages
:
L
ist
[
dict
]):
def
add_or_update_system_message
(
content
:
str
,
messages
:
l
ist
[
dict
]):
"""
Adds a new system message at the beginning of the messages list
or updates the existing system message at the beginning.
...
...
backend/utils/tools.py
View file @
29f904db
...
...
@@ -16,7 +16,7 @@ def doc_to_dict(docstring):
return
ret_dict
def
get_tools_specs
(
tools
)
->
L
ist
[
dict
]:
def
get_tools_specs
(
tools
)
->
l
ist
[
dict
]:
function_list
=
[
{
"name"
:
func
,
"function"
:
getattr
(
tools
,
func
)}
for
func
in
dir
(
tools
)
...
...
Prev
1
2
Next
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