diff --git a/api/apps/sdk/session.py b/api/apps/sdk/session.py index eb56fce77..8fb70ec35 100644 --- a/api/apps/sdk/session.py +++ b/api/apps/sdk/session.py @@ -448,7 +448,10 @@ def list_agent_session(tenant_id, agent_id): desc = False else: desc = True - convs = API4ConversationService.get_list(agent_id, tenant_id, page_number, items_per_page, orderby, desc, id, user_id) + # dsl defaults to True in all cases except for False and false + include_dsl = request.args.get("dsl") != "False" and request.args.get("dsl") != "false" + convs = API4ConversationService.get_list(agent_id, tenant_id, page_number, items_per_page, orderby, desc, id, + user_id, include_dsl) if not convs: return get_result(data=[]) for conv in convs: diff --git a/api/db/services/api_service.py b/api/db/services/api_service.py index 246a0469f..b393812e9 100644 --- a/api/db/services/api_service.py +++ b/api/db/services/api_service.py @@ -43,8 +43,12 @@ class API4ConversationService(CommonService): @DB.connection_context() def get_list(cls, dialog_id, tenant_id, page_number, items_per_page, - orderby, desc, id, user_id=None): - sessions = cls.model.select().where(cls.model.dialog_id == dialog_id) + orderby, desc, id, user_id=None, include_dsl=True): + if include_dsl: + sessions = cls.model.select().where(cls.model.dialog_id == dialog_id) + else: + fields = [field for field in cls.model._meta.fields.values() if field.name != 'dsl'] + sessions = cls.model.select(*fields).where(cls.model.dialog_id == dialog_id) if id: sessions = sessions.where(cls.model.id == id) if user_id: diff --git a/docs/references/http_api_reference.md b/docs/references/http_api_reference.md index 1781ad8b6..40b172717 100644 --- a/docs/references/http_api_reference.md +++ b/docs/references/http_api_reference.md @@ -2716,7 +2716,7 @@ Failure: ### List agent sessions -**GET** `/api/v1/agents/{agent_id}/sessions?page={page}&page_size={page_size}&orderby={orderby}&desc={desc}&id={session_id}&user_id={user_id}` +**GET** `/api/v1/agents/{agent_id}/sessions?page={page}&page_size={page_size}&orderby={orderby}&desc={desc}&id={session_id}&user_id={user_id}&dsl={dsl}` Lists sessions associated with a specified agent. @@ -2753,7 +2753,9 @@ curl --request GET \ The ID of the agent session to retrieve. - `user_id`: (*Filter parameter*), `string` The optional user-defined ID passed in when creating session. - +- `dsl`: (*Filter parameter*), `boolean` + Indicates whether to include the dsl field of the sessions in the response. Defaults to `true`. + #### Response Success: @@ -2761,7 +2763,7 @@ Success: ```json { "code": 0, - "data": { + "data": [{ "agent_id": "e9e2b9c2b2f911ef801d0242ac120006", "dsl": { "answer": [], @@ -2893,7 +2895,7 @@ Success: ], "source": "agent", "user_id": "" - } + }] } ```