mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-12 21:49:00 +08:00
Feat(api): Add dsl parameters to control whether dsl fields are included (#5769)
1. **Issue**: When calling `list_agent_session` via the HTTP API, users may only need to display conversation messages, and do not want to see the associated dsl, which can be very large. Therefore, consider adding a control option to determine whether the DSL should be returned, with the default being to return it. 2. **Documentation Discrepancy**: In the HTTP API documentation, under "List agent sessions," the "Response" section states that the "data" field is a dictionary when "success" is returned. However, the actual returned data is a list. This discrepancy has been corrected.
This commit is contained in:
parent
64c6cc4cf3
commit
66938e0b68
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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": ""
|
||||
}
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user