Merge branch 'main' into default-data
This commit is contained in:
commit
34739193eb
2 changed files with 57 additions and 13 deletions
|
|
@ -13,12 +13,25 @@ async def upload(request: Request, document_service, session_manager):
|
||||||
user = request.state.user
|
user = request.state.user
|
||||||
jwt_token = request.state.jwt_token
|
jwt_token = request.state.jwt_token
|
||||||
|
|
||||||
|
from config.settings import is_no_auth_mode
|
||||||
|
|
||||||
|
# In no-auth mode, pass None for owner fields so documents have no owner
|
||||||
|
# This allows all users to see them when switching to auth mode
|
||||||
|
if is_no_auth_mode():
|
||||||
|
owner_user_id = None
|
||||||
|
owner_name = None
|
||||||
|
owner_email = None
|
||||||
|
else:
|
||||||
|
owner_user_id = user.user_id
|
||||||
|
owner_name = user.name
|
||||||
|
owner_email = user.email
|
||||||
|
|
||||||
result = await document_service.process_upload_file(
|
result = await document_service.process_upload_file(
|
||||||
upload_file,
|
upload_file,
|
||||||
owner_user_id=user.user_id,
|
owner_user_id=owner_user_id,
|
||||||
jwt_token=jwt_token,
|
jwt_token=jwt_token,
|
||||||
owner_name=user.name,
|
owner_name=owner_name,
|
||||||
owner_email=user.email,
|
owner_email=owner_email,
|
||||||
)
|
)
|
||||||
return JSONResponse(result, status_code=201) # Created
|
return JSONResponse(result, status_code=201) # Created
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
@ -48,12 +61,25 @@ async def upload_path(request: Request, task_service, session_manager):
|
||||||
|
|
||||||
user = request.state.user
|
user = request.state.user
|
||||||
jwt_token = request.state.jwt_token
|
jwt_token = request.state.jwt_token
|
||||||
|
|
||||||
|
from config.settings import is_no_auth_mode
|
||||||
|
|
||||||
|
# In no-auth mode, pass None for owner fields so documents have no owner
|
||||||
|
if is_no_auth_mode():
|
||||||
|
owner_user_id = None
|
||||||
|
owner_name = None
|
||||||
|
owner_email = None
|
||||||
|
else:
|
||||||
|
owner_user_id = user.user_id
|
||||||
|
owner_name = user.name
|
||||||
|
owner_email = user.email
|
||||||
|
|
||||||
task_id = await task_service.create_upload_task(
|
task_id = await task_service.create_upload_task(
|
||||||
user.user_id,
|
owner_user_id,
|
||||||
file_paths,
|
file_paths,
|
||||||
jwt_token=jwt_token,
|
jwt_token=jwt_token,
|
||||||
owner_name=user.name,
|
owner_name=owner_name,
|
||||||
owner_email=user.email,
|
owner_email=owner_email,
|
||||||
)
|
)
|
||||||
|
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
|
|
@ -146,18 +172,31 @@ async def upload_bucket(request: Request, task_service, session_manager):
|
||||||
jwt_token = request.state.jwt_token
|
jwt_token = request.state.jwt_token
|
||||||
|
|
||||||
from models.processors import S3FileProcessor
|
from models.processors import S3FileProcessor
|
||||||
|
from config.settings import is_no_auth_mode
|
||||||
|
|
||||||
|
# In no-auth mode, pass None for owner fields so documents have no owner
|
||||||
|
if is_no_auth_mode():
|
||||||
|
owner_user_id = None
|
||||||
|
owner_name = None
|
||||||
|
owner_email = None
|
||||||
|
task_user_id = None
|
||||||
|
else:
|
||||||
|
owner_user_id = user.user_id
|
||||||
|
owner_name = user.name
|
||||||
|
owner_email = user.email
|
||||||
|
task_user_id = user.user_id
|
||||||
|
|
||||||
processor = S3FileProcessor(
|
processor = S3FileProcessor(
|
||||||
task_service.document_service,
|
task_service.document_service,
|
||||||
bucket,
|
bucket,
|
||||||
s3_client=s3_client,
|
s3_client=s3_client,
|
||||||
owner_user_id=user.user_id,
|
owner_user_id=owner_user_id,
|
||||||
jwt_token=jwt_token,
|
jwt_token=jwt_token,
|
||||||
owner_name=user.name,
|
owner_name=owner_name,
|
||||||
owner_email=user.email,
|
owner_email=owner_email,
|
||||||
)
|
)
|
||||||
|
|
||||||
task_id = await task_service.create_custom_task(user.user_id, keys, processor)
|
task_id = await task_service.create_custom_task(task_user_id, keys, processor)
|
||||||
|
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
{"task_id": task_id, "total_files": len(keys), "status": "accepted"},
|
{"task_id": task_id, "total_files": len(keys), "status": "accepted"},
|
||||||
|
|
|
||||||
|
|
@ -207,13 +207,18 @@ class S3FileProcessor(TaskProcessor):
|
||||||
"page": chunk["page"],
|
"page": chunk["page"],
|
||||||
"text": chunk["text"],
|
"text": chunk["text"],
|
||||||
"chunk_embedding": vect,
|
"chunk_embedding": vect,
|
||||||
"owner": self.owner_user_id,
|
|
||||||
"owner_name": self.owner_name,
|
|
||||||
"owner_email": self.owner_email,
|
|
||||||
"file_size": file_size,
|
"file_size": file_size,
|
||||||
"connector_type": "s3", # S3 uploads
|
"connector_type": "s3", # S3 uploads
|
||||||
"indexed_time": datetime.datetime.now().isoformat(),
|
"indexed_time": datetime.datetime.now().isoformat(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Only set owner fields if owner_user_id is provided (for no-auth mode support)
|
||||||
|
if self.owner_user_id is not None:
|
||||||
|
chunk_doc["owner"] = self.owner_user_id
|
||||||
|
if self.owner_name is not None:
|
||||||
|
chunk_doc["owner_name"] = self.owner_name
|
||||||
|
if self.owner_email is not None:
|
||||||
|
chunk_doc["owner_email"] = self.owner_email
|
||||||
chunk_id = f"{slim_doc['id']}_{i}"
|
chunk_id = f"{slim_doc['id']}_{i}"
|
||||||
try:
|
try:
|
||||||
await opensearch_client.index(
|
await opensearch_client.index(
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue