commit5c3f3dbb70Author: italojohnny <italojohnnydosanjos@gmail.com> Date: Wed Jun 5 17:57:08 2024 -0300 fix libs commit2c7d7616faAuthor: anovazzi1 <otavio2204@gmail.com> Date: Wed Jun 5 17:45:17 2024 -0300 fix selection bug on Messages Table commit183f0bcca5Author: anovazzi1 <otavio2204@gmail.com> Date: Wed Jun 5 17:28:01 2024 -0300 update route commit79f998333fMerge:be919f1bcbcdc329d1Author: anovazzi1 <otavio2204@gmail.com> Date: Wed Jun 5 16:51:59 2024 -0300 Merge remote-tracking branch 'origin/dev' into SessionManagment commitbe919f1bcaAuthor: anovazzi1 <otavio2204@gmail.com> Date: Tue Jun 4 17:06:16 2024 -0300 Refactor: Remove commented code for chat history tab in IOModal commit91e3bd9151Author: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Tue Jun 4 16:33:05 2024 -0300 Refactor: Remove select from delete session button commit83b837966dAuthor: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Tue Jun 4 15:53:51 2024 -0300 Refactor: Make Reset Column button reset columns order commit254a2c423cAuthor: anovazzi1 <otavio2204@gmail.com> Date: Tue Jun 4 14:38:40 2024 -0300 Refactor: Add ResetColumns component to improve table functionality commit5275126e64Author: anovazzi1 <otavio2204@gmail.com> Date: Tue Jun 4 14:06:38 2024 -0300 chore: Update description text in SettingsPage commitfb27528a00Merge:0024753313369b54b8Author: anovazzi1 <otavio2204@gmail.com> Date: Mon Jun 3 22:17:15 2024 -0300 Merge branch 'SessionManagment' of personal:langflow-ai/langflow into SessionManagment commit3369b54b83Author: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Mon Jun 3 20:03:40 2024 -0300 Refactor: remove page size directly in css file commitc8fad13a3cAuthor: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Mon Jun 3 19:42:06 2024 -0300 Refactor: Remove “Page size” from table pagination commit49882e4201Author: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Mon Jun 3 19:34:43 2024 -0300 Remove unnused imports commitcd36ff8ad7Merge:cdf9d77b4adeaf4db9Author: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Mon Jun 3 19:28:44 2024 -0300 Merge SessionManagement into SessionManagement commitcdf9d77b45Author: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Mon Jun 3 19:25:47 2024 -0300 Feat: Make the table last column non-resizable and add a restore columns button commit002475331eAuthor: anovazzi1 <otavio2204@gmail.com> Date: Mon Jun 3 18:27:35 2024 -0300 update editable fields commitadeaf4db91Merge:d670ec8d6818696a66Author: cristhianzl <cristhian.lousa@gmail.com> Date: Mon Jun 3 18:17:19 2024 -0300 Merge branch 'SessionManagment' of https://github.com/langflow-ai/langflow into SessionManagment commitd670ec8d64Author: cristhianzl <cristhian.lousa@gmail.com> Date: Mon Jun 3 18:17:15 2024 -0300 🐛 (service.py): add missing 'id' column in SQL query to fix data retrieval issue 💡 (service.py): add print statement for debugging SQL query ♻️ (index.tsx): reorder imports for better readability and maintainability ♻️ (flowStore.ts): remove trailing commas to improve code consistency and readability 💡 (index.ts, storeUtils.ts): format type definitions for better readability commit818696a661Author: anovazzi1 <otavio2204@gmail.com> Date: Mon Jun 3 17:37:14 2024 -0300 refactor: Add getSessions function to fetch available sessions in IOModal commit895df8c050Author: cristhianzl <cristhian.lousa@gmail.com> Date: Mon Jun 3 17:05:50 2024 -0300 ♻️ (monitor.py, service.py): remove trailing whitespace to improve code cleanliness commit0e56617e26Author: cristhianzl <cristhian.lousa@gmail.com> Date: Mon Jun 3 17:05:39 2024 -0300 ♻️ (monitor.py): refactor update_message to return MessageModelResponse ♻️ (service.py): update SQL query to use index instead of id ♻️ (api.tsx): refactor duplicate request check logic ✨ (check-duplicate-requests.ts): add helper to check and store duplicate requests 🐛 (messagesStore.ts): fix message update logic to use index instead of id commit41c2d7feb5Author: anovazzi1 <otavio2204@gmail.com> Date: Mon Jun 3 14:48:05 2024 -0300 start history in playgroundModal commit93568b4c0dMerge:21a8545ddf3922dfffAuthor: cristhianzl <cristhian.lousa@gmail.com> Date: Mon Jun 3 10:31:46 2024 -0300 ✨ (tableComponent): add editable prop to TableComponent for column editing ✨ (API): add updateMessageApi function to update messages via API ✨ (chatView): add select dropdown for clearing builds and sessions ♻️ (use-messages-table): refactor to use messages store for setting messages ♻️ (use-remove-messages): remove setRows and use messages store for deletion ✨ (use-updateMessage): add hook for updating messages with API integration 📝 (headerMessages): update header message text in messages page ✨ (messagesPage): add cell edit request handling for message updates ♻️ (messagesPage): refactor state management and hooks usage ✨ (types): add new types for chat and message handling commit21a8545ddbAuthor: cristhianzl <cristhian.lousa@gmail.com> Date: Mon Jun 3 10:29:58 2024 -0300 ♻️ (monitor.py): change POST to DELETE for delete_messages endpoint ♻️ (schemas.py): remove unused MessageIds schema ♻️ (api.tsx): add missing commas in ApiInterceptor function 🐛 (api.tsx): fix duplicate request check to include method "get" ♻️ (index.ts): change deleteMessagesFn to use DELETE method instead of POST ♻️ (use-remove-messages.tsx): clean up comments and improve error handling commitf3922dfff6Author: anovazzi1 <otavio2204@gmail.com> Date: Sun Jun 2 19:38:15 2024 -0300 refactor: Move editable attribute to TableComponent add update function, need to fix backend commit1a65af7602Author: anovazzi1 <otavio2204@gmail.com> Date: Sun Jun 2 18:07:45 2024 -0300 move editable attribute to table Component commit729150a5a4Author: anovazzi1 <otavio2204@gmail.com> Date: Fri May 31 22:40:53 2024 -0300 refactor(headerMessages): update text content in HeaderMessagesComponent commit1d06969364Merge:57c38acac70f4fd077Author: anovazzi1 <otavio2204@gmail.com> Date: Fri May 31 17:47:08 2024 -0300 Merge remote-tracking branch 'origin/ic/flow_eraser_dropdown' into SessionManagment commit57c38acaceAuthor: cristhianzl <cristhian.lousa@gmail.com> Date: Fri May 31 13:43:41 2024 -0300 💡 (schemas.py): add newline at end of file to follow PEP 8 guidelines commit602ebf7b15Author: cristhianzl <cristhian.lousa@gmail.com> Date: Fri May 31 13:43:28 2024 -0300 ✨ (monitor.py): add MessageIds schema for structured message deletion ♻️ (monitor.py): change delete_messages endpoint to POST for better semantics ♻️ (monitor.py): update delete_messages to use MessageIds schema ✨ (schemas.py): add MessageIds schema for structured message deletion 🐛 (service.py): fix SQL query in delete_messages to use correct column name ✨ (index.tsx): add toTitleCase utility to format column headers ✨ (API/index.ts): add deleteMessagesFn to handle message deletion via API ✨ (headerMessages): add HeaderMessagesComponent for message management UI ✨ (use-messages-table): add useMessagesTable hook to fetch and manage messages ✨ (use-remove-messages): add useRemoveMessages hook to handle message deletion ♻️ (messagesPage): refactor messages page to use new messages store ✨ (messagesStore): create zustand store for managing messages state ✨ (types): add types for messages and zustand messages store commitf79289f966Author: ogabrielluiz <gabriel@langflow.org> Date: Fri May 31 09:38:05 2024 -0300 feat: Add API endpoints for managing messages This commit adds new API endpoints for managing messages. It includes the ability to delete messages by their IDs, update a specific message, and delete all messages associated with a session. These changes are implemented in the `monitor.py`, `schema.py`, and `service.py` files. commita99d0c7eb0Author: anovazzi1 <otavio2204@gmail.com> Date: Wed May 29 17:48:12 2024 -0300 refactor(tableComponent): update column definitions to include checkbox selection logic for first column feat(API): add support for excluding specific columns in getMessagesTable function fix(flowLogsModal): pass excludedFields parameter to getMessagesTable function refactor(GlobalVariablesPage): remove unnecessary checkbox selection properties from column definitions fix(messagesPage): pass excludedFields parameter to getMessagesTable function refactor(utils): add support for excluding specific columns in extractColumnsFromRows function commit022ef7c028Author: anovazzi1 <otavio2204@gmail.com> Date: Wed May 29 17:15:21 2024 -0300 feat: Add Messages page to SettingsPage Refactor the SettingsPage component to include a new "Messages" page. This page will be accessible through the "/settings/messages" route and will display messages related to user settings. The necessary changes have been made to the index.tsx file of the SettingsPage component and the routes.tsx file. commit70f4fd0770Author: igorrCarvalho <igorsilvabhz6@gmail.com> Date: Mon May 27 21:36:00 2024 -0300 Feat: Create the first version of the eraser tool
123 lines
4.2 KiB
Python
123 lines
4.2 KiB
Python
from typing import List, Optional
|
|
from uuid import UUID
|
|
from fastapi import APIRouter, Depends, HTTPException, Query
|
|
|
|
from langflow.services.deps import get_monitor_service
|
|
from langflow.services.monitor.schema import (
|
|
MessageModelRequest,
|
|
MessageModelResponse,
|
|
TransactionModelResponse,
|
|
VertexBuildMapModel,
|
|
)
|
|
from langflow.services.monitor.service import MonitorService
|
|
|
|
router = APIRouter(prefix="/monitor", tags=["Monitor"])
|
|
|
|
|
|
# Get vertex_builds data from the monitor service
|
|
@router.get("/builds", response_model=VertexBuildMapModel)
|
|
async def get_vertex_builds(
|
|
flow_id: Optional[str] = Query(None),
|
|
vertex_id: Optional[str] = Query(None),
|
|
valid: Optional[bool] = Query(None),
|
|
order_by: Optional[str] = Query("timestamp"),
|
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
|
):
|
|
try:
|
|
vertex_build_dicts = monitor_service.get_vertex_builds(
|
|
flow_id=flow_id, vertex_id=vertex_id, valid=valid, order_by=order_by
|
|
)
|
|
vertex_build_map = VertexBuildMapModel.from_list_of_dicts(vertex_build_dicts)
|
|
return vertex_build_map
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
@router.delete("/builds", status_code=204)
|
|
async def delete_vertex_builds(
|
|
flow_id: Optional[str] = Query(None),
|
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
|
):
|
|
try:
|
|
monitor_service.delete_vertex_builds(flow_id=flow_id)
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
@router.get("/messages", response_model=List[MessageModelResponse])
|
|
async def get_messages(
|
|
flow_id: Optional[str] = Query(None),
|
|
session_id: Optional[str] = Query(None),
|
|
sender: Optional[str] = Query(None),
|
|
sender_name: Optional[str] = Query(None),
|
|
order_by: Optional[str] = Query("timestamp"),
|
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
|
):
|
|
try:
|
|
df = monitor_service.get_messages(
|
|
flow_id=flow_id,
|
|
sender=sender,
|
|
sender_name=sender_name,
|
|
session_id=session_id,
|
|
order_by=order_by,
|
|
)
|
|
dicts = df.to_dict(orient="records")
|
|
return [MessageModelResponse(**d) for d in dicts]
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
@router.delete("/messages", status_code=204)
|
|
async def delete_messages(
|
|
message_ids: List[int],
|
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
|
):
|
|
try:
|
|
monitor_service.delete_messages(message_ids=message_ids)
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
@router.post("/messages/{message_id}", response_model=MessageModelResponse)
|
|
async def update_message(
|
|
message_id: str,
|
|
message: MessageModelRequest,
|
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
|
):
|
|
try:
|
|
message_dict = message.model_dump(exclude_none=True)
|
|
message_dict.pop("index", None)
|
|
monitor_service.update_message(message_id=message_id, **message_dict)
|
|
return MessageModelResponse(index=message_id, **message_dict)
|
|
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
@router.delete("/messages/session/{session_id}", status_code=204)
|
|
async def delete_messages_session(
|
|
session_id: str,
|
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
|
):
|
|
try:
|
|
monitor_service.delete_messages_session(session_id=session_id)
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
@router.get("/transactions", response_model=List[TransactionModelResponse])
|
|
async def get_transactions(
|
|
source: Optional[str] = Query(None),
|
|
target: Optional[str] = Query(None),
|
|
status: Optional[str] = Query(None),
|
|
order_by: Optional[str] = Query("timestamp"),
|
|
flow_id: Optional[str] = Query(None),
|
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
|
):
|
|
try:
|
|
dicts = monitor_service.get_transactions(
|
|
source=source, target=target, status=status, order_by=order_by, flow_id=flow_id
|
|
)
|
|
return [TransactionModelResponse(**d) for d in dicts]
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|