Skip to main content

Conversation File Management

The DeepSearch application maintains a file directory tree for each session_id. You can update the directory tree using temporary file IDs and file or folder metadata. You can also delete files and retrieve the directory tree. This feature is applicable only to legal case review scenarios.

Update session files

You can create a file directory tree for a session_id to improve the model's understanding of files in specific scenarios. You can build the tree using successfully parsed temporary dynamic file IDs, folder paths, and file metadata.

Request syntax

POST /deep-search-agent/session/files/upsert HTTP/1.1

Request parameters

Parameter name

Type

Required

Description

input

object

Yes

Request parameters

input.request_id

str

No

Request ID (business)

input.chat_id

str

No

Chat ID

input.session_id

str

Yes

Session ID

input.files

array[object]

Yes

Collection of parsed file information

input.files.file_id

str

Yes

File ID

input.files.file_name

str

Yes

File name

input.files.file_path

str

Yes

Full file path

input.files.type

str

Yes

Type. Valid values: file or dir

input.files.index_order

int

Yes

Sorting order

parameters

object

Yes

Configuration parameters. Leave empty: {}

Response parameters

Parameter

Type

Required

Description

code

str

Yes

Status code. Success: 200

message

str

Yes

Status message

output

object

Yes

Response parameters

output.request_id

str

No

Request ID

output.chat_id

str

No

Chat ID

output.session_id

str

No

Session ID

output.result

object

Yes

Update result

output.result.status

bool

Yes

Update status

Examples

Request example

{
    "input": {
        "session_id": "18220***66b3",
        "files":[
            {
                "file_id": "file_session_e93***17301",
                "file_name": "Test Document.txt",
                "file_path": "Evaluation/Test Document.txt",
                "type": "file",
                "index_order": 0
            }
        ]
    },
    "parameters": {
    }
}

Response example

{
    "code": "200",
    "message": "Success",
    "output": {
        "request_id": "bbe29140-766b-4caf-8558-2c703d9cb641",
        "result": {
            "status": true
        }
    }
}

Delete session files

You can delete file information from the file directory tree of a session_id.

Service endpoint

Deletes the file directory tree for a session_id.

Request syntax

POST /deep-search-agent/session/files/delete HTTP/1.1

Request parameters

Parameter Name

Type

Required

Description

Field

Type

Required

Description

input

object

Yes

Request parameters

input.request_id

str

No

Request ID (business)

input.chat_id

str

No

Chat ID

input.session_id

str

Yes

Session ID

input.file_ids

array[str]

Yes

Collection of file IDs

parameters

object

Yes

Configuration parameters. Leave empty: {}

Response parameters

Parameter Name

Type

Required

Description

code

str

Yes

Status code. Success: 200

message

str

Yes

Status message

output

object

Yes

Response parameters

output.request_id

str

No

Request ID

output.chat_id

str

No

Chat ID

output.session_id

str

No

Session ID

output.result

object

Yes

Update result

output.result.status

bool

Yes

Update status

Examples

Request example

{
    "input": {
        "session_id": "18220***66b3",
        "file_ids":[
            "file_session_e93***17301"
        ]
    },
    "parameters": {
    }
}

Response example

{
    "code": "200",
    "message": "Success",
    "output": {
        "request_id": "bbe29140-766b-4caf-8558-2c703d9cb641",
        "result": {
            "status": true
        }
    }
}

Get session files

You can retrieve the file directory tree of a session_id.

Request syntax

POST /deep-search-agent/session/files/list HTTP/1.1

Request parameters

Parameter

Type

Required

Description

input

object

Yes

Request parameters

input.request_id

str

No

Request ID (business)

input.chat_id

str

No

Chat ID

input.session_id

str

Yes

Session ID

input.page_number

int

No

Paging parameter. Page number

input.page_size

int

No

Paging parameter. Items per page

parameters

object

Yes

Configuration parameters. Leave empty: {}

Response parameters

Parameter name

Type

Required

Description

code

str

Yes

Status code. Success: 200

message

str

Yes

Status message

output

object

Yes

Response parameters

output.request_id

str

No

Request ID

output.chat_id

str

No

Chat ID

output.session_id

str

No

Session ID

output.result

object

Yes

Update result

output.result.total

int

Yes

Total hits

output.result.files

array[object]

Yes

File list

output.result.files.[0].file_id

str

Yes

File ID

output.result.files.[0].file_name

str

Yes

File name

output.result.files.[0].file_path

str

Yes

File path

output.result.files.[0].type

str

Yes

Type. Valid values: file or dir

output.result.files.[0].index_order

int

Yes

Sorting order

Examples

Request example

{
    "input": {
        "session_id": "18220***66b3",
        "page_number": 1,
        "page_size": 10
    },
    "parameters": {
    }
}

Response example

{
    "code": "200",
    "message": "Success",
    "output": {
        "request_id": "bbe29140-766b-4caf-8558-2c703d9cb641",
        "result": {
            "total": 0,
            "files": []
        }
    }
}

Call examples

import os
import sys
import uuid
import json
from copy import deepcopy

import requests

from http import HTTPStatus

list_session_files_url = "https://dashscope.aliyuncs.com/api/v2/apps/deep-search-agent/session/files/list"
upsert_session_files_url = "https://dashscope.aliyuncs.com/api/v2/apps/deep-search-agent/session/files/upsert"
delete_session_files_url = "https://dashscope.aliyuncs.com/api/v2/apps/deep-search-agent/session/files/delete"

headers = {
    'Authorization': f'Bearer {os.getenv("DASHSCOPE_API_KEY")}',  # Configure API key
    'Content-Type': 'application/json'
}

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("usage: python operate_session_files.py <session_id>")
        exit(1)

    session_id = sys.argv[1]

    # 1. Get test session files
    list_session_files_params = {
        "request_id": str(uuid.uuid4()),
        "input": {
            "session_id": session_id
        },
        "parameters": {}
    }
    response = requests.post(list_session_files_url, json=list_session_files_params, headers=headers)
    session_files_data = {}
    if response.status_code == HTTPStatus.OK:
        print("1. List session files successfully.")
        session_files_data = response.json()["output"]["result"]
        print(json.dumps(response.json(), indent=2, ensure_ascii=False))
    else:
        print(f'code={response.status_code}')
        exit(1)

    # 2. Update test session files
    files = session_files_data["files"]
    temp_file = None
    for file in files:
        if 'Test/' in file["file_path"]:
            temp_file = file
    if temp_file is None:
        temp_file = deepcopy(files[0])
        temp_file["file_id"] = temp_file["file_id"] + "_test"
        temp_file["file_path"] = "Test/" + temp_file["file_path"]
        files.append(temp_file)

    upsert_session_files_params = {
        "request_id": str(uuid.uuid4()),
        "input": {
            "session_id": session_id,
            "files": files
        },
        "parameters": {}
    }
    response = requests.post(upsert_session_files_url, json=upsert_session_files_params, headers=headers)
    upsert_data = {}
    if response.status_code == HTTPStatus.OK:
        print("2. Upsert session files successfully.")
        print(json.dumps(response.json(), indent=2, ensure_ascii=False))
    else:
        print(f'code={response.status_code}')
        exit(1)

    # 3. Delete test session files
    delete_session_files_params = {
        "request_id": str(uuid.uuid4()),
        "input": {
            "session_id": session_id,
            "file_ids": [
                temp_file["file_id"]
            ]
        },
        "parameters": {}
    }
    response = requests.post(delete_session_files_url, json=delete_session_files_params, headers=headers)
    delete_data = {}
    if response.status_code == HTTPStatus.OK:
        print("3. Delete session files successfully.")
        print(json.dumps(response.json(), indent=2, ensure_ascii=False))
    else:
        print(f'code={response.status_code}')
        exit(1)
Agent Development
Agent Context
Agent Governance & Evolution
Store
Application Marketplace