Fix: agent files issue, (#13067)

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
Kevin Hu
2026-02-09 19:52:52 +08:00
committed by GitHub
parent a2dda8fb70
commit 9bc16d8df2
3 changed files with 34 additions and 3 deletions

View File

@ -705,7 +705,7 @@ async def rename():
@manager.route("/get/<doc_id>", methods=["GET"]) # noqa: F821
# @login_required
@login_required
async def get(doc_id):
try:
e, doc = DocumentService.get_by_id(doc_id)

View File

@ -27,7 +27,7 @@ from pydantic import BaseModel, Field, validator
from api.constants import FILE_NAME_LEN_LIMIT
from api.db import FileType
from api.db.db_models import File, Task
from api.db.db_models import APIToken, File, Task
from api.db.services.document_service import DocumentService
from api.db.services.doc_metadata_service import DocMetadataService
from api.db.services.file2document_service import File2DocumentService
@ -419,6 +419,36 @@ async def download(tenant_id, dataset_id, document_id):
)
@manager.route("/documents/<document_id>", methods=["GET"]) # noqa: F821
async def download_doc(document_id):
token = request.headers.get("Authorization").split()
if len(token) != 2:
return get_error_data_result(message='Authorization is not valid!"')
token = token[1]
objs = APIToken.query(beta=token)
if not objs:
return get_error_data_result(message='Authentication error: API key is invalid!"')
if not document_id:
return get_error_data_result(message="Specify document_id please.")
doc = DocumentService.query(id=document_id)
if not doc:
return get_error_data_result(message=f"The dataset not own the document {document_id}.")
# The process of downloading
doc_id, doc_location = File2DocumentService.get_storage_address(doc_id=document_id) # minio address
file_stream = settings.STORAGE_IMPL.get(doc_id, doc_location)
if not file_stream:
return construct_json_result(message="This file is empty.", code=RetCode.DATA_ERROR)
file = BytesIO(file_stream)
# Use send_file with a proper filename and MIME type
return await send_file(
file,
as_attachment=True,
attachment_filename=doc[0].name,
mimetype="application/octet-stream", # Set a default MIME type
)
@manager.route("/datasets/<dataset_id>/documents", methods=["GET"]) # noqa: F821
@token_required
def list_docs(dataset_id, tenant_id):

View File

@ -229,7 +229,8 @@ async def completion(tenant_id, agent_id, session_id=None, **kwargs):
conv.message.append({
"role": "user",
"content": query,
"id": message_id
"id": message_id,
"files": files
})
txt = ""
async for ans in canvas.run(query=query, files=files, user_id=user_id, inputs=inputs):