forked from open-webui/open-webui
feat: update chat
This commit is contained in:
parent
0810a2648f
commit
1303407f53
3 changed files with 23 additions and 1 deletions
|
@ -44,6 +44,10 @@ class ChatForm(BaseModel):
|
||||||
chat: dict
|
chat: dict
|
||||||
|
|
||||||
|
|
||||||
|
class ChatTitleForm(BaseModel):
|
||||||
|
title: str
|
||||||
|
|
||||||
|
|
||||||
class ChatResponse(BaseModel):
|
class ChatResponse(BaseModel):
|
||||||
id: str
|
id: str
|
||||||
user_id: str
|
user_id: str
|
||||||
|
@ -93,6 +97,20 @@ class ChatTable:
|
||||||
except:
|
except:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def update_chat_by_id(self, id: str, chat: dict) -> Optional[ChatModel]:
|
||||||
|
try:
|
||||||
|
query = Chat.update(
|
||||||
|
chat=json.dumps(chat),
|
||||||
|
title=chat["title"] if "title" in chat else "New Chat",
|
||||||
|
timestamp=int(time.time()),
|
||||||
|
).where(Chat.id == id)
|
||||||
|
query.execute()
|
||||||
|
|
||||||
|
chat = Chat.get(Chat.id == id)
|
||||||
|
return ChatModel(**model_to_dict(chat))
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
|
||||||
def get_chat_lists_by_user_id(
|
def get_chat_lists_by_user_id(
|
||||||
self, user_id: str, skip: int = 0, limit: int = 50
|
self, user_id: str, skip: int = 0, limit: int = 50
|
||||||
) -> List[ChatModel]:
|
) -> List[ChatModel]:
|
||||||
|
|
|
@ -11,6 +11,7 @@ from apps.web.models.users import Users
|
||||||
from apps.web.models.chats import (
|
from apps.web.models.chats import (
|
||||||
ChatModel,
|
ChatModel,
|
||||||
ChatResponse,
|
ChatResponse,
|
||||||
|
ChatTitleForm,
|
||||||
ChatForm,
|
ChatForm,
|
||||||
ChatTitleIdResponse,
|
ChatTitleIdResponse,
|
||||||
Chats,
|
Chats,
|
||||||
|
@ -95,7 +96,9 @@ async def update_chat_by_id(id: str, form_data: ChatForm, cred=Depends(bearer_sc
|
||||||
if user:
|
if user:
|
||||||
chat = Chats.get_chat_by_id_and_user_id(id, user.id)
|
chat = Chats.get_chat_by_id_and_user_id(id, user.id)
|
||||||
if chat:
|
if chat:
|
||||||
chat = Chats.update_chat_by_id(id, form_data.chat)
|
updated_chat = {**json.loads(chat.chat), **form_data.chat}
|
||||||
|
|
||||||
|
chat = Chats.update_chat_by_id(id, updated_chat)
|
||||||
return ChatResponse(**{**chat.model_dump(), "chat": json.loads(chat.chat)})
|
return ChatResponse(**{**chat.model_dump(), "chat": json.loads(chat.chat)})
|
||||||
else:
|
else:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
|
@ -254,6 +254,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
const rateMessage = async (messageIdx, rating) => {
|
const rateMessage = async (messageIdx, rating) => {
|
||||||
|
// TODO: Move this function to parent
|
||||||
messages = messages.map((message, idx) => {
|
messages = messages.map((message, idx) => {
|
||||||
if (messageIdx === idx) {
|
if (messageIdx === idx) {
|
||||||
message.rating = rating;
|
message.rating = rating;
|
||||||
|
|
Loading…
Reference in a new issue