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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek