| from fastapi import APIRouter |
|
|
| from Brain.src.common.assembler import Assembler |
| from Brain.src.common.brain_exception import BrainException |
| from Brain.src.firebase.firebase import firebase_admin_with_setting |
| from Brain.src.model.requests.request_model import ( |
| Document, |
| BasicReq, |
| ) |
| from Brain.src.service.train_service import TrainService |
|
|
| router = APIRouter() |
|
|
|
|
| def construct_blueprint_train_api() -> APIRouter: |
| |
| assembler = Assembler() |
|
|
| """@generator.response( |
| status_code=200, schema={"message": "message", "result": "test_result"} |
| )""" |
|
|
| @router.post("") |
| def read_all_documents(data: BasicReq): |
| |
| try: |
| setting, firebase_app = firebase_admin_with_setting(data) |
| except BrainException as ex: |
| return ex.get_response_exp() |
| |
| train_service = TrainService(firebase_app=firebase_app, setting=setting) |
| try: |
| result = train_service.read_all_documents() |
| except Exception as e: |
| return assembler.to_response(400, "failed to get all documents", "") |
| return assembler.to_response(200, "Get all documents list successfully", result) |
|
|
| """@generator.response( status_code=200, schema={"message": "message", "result": {"document_id": "document_id", |
| "page_content":"page_content"}} )""" |
|
|
| @router.post("/all") |
| def train_all_documents(data: BasicReq): |
| |
| try: |
| setting, firebase_app = firebase_admin_with_setting(data) |
| except BrainException as ex: |
| return ex.get_response_exp() |
| |
| train_service = TrainService(firebase_app=firebase_app, setting=setting) |
| try: |
| result = train_service.train_all_documents() |
| except Exception as e: |
| return assembler.to_response(400, "failed to get all documents", "") |
| return assembler.to_response(200, "Get all documents list successfully", result) |
|
|
| """@generator.response( status_code=200, schema={"message": "message", "result": {"document_id": "document_id", |
| "page_content":"page_content"}} )""" |
|
|
| @router.post("/read/{document_id}") |
| def read_one_document(document_id: str, data: BasicReq): |
| |
| try: |
| setting, firebase_app = firebase_admin_with_setting(data) |
| except BrainException as ex: |
| return ex.get_response_exp() |
| |
| train_service = TrainService(firebase_app=firebase_app, setting=setting) |
| if document_id != "all": |
| try: |
| result = train_service.read_one_document(document_id) |
| except Exception as e: |
| return assembler.to_response(400, "fail to get one document", "") |
| return assembler.to_response(200, "Get one document successfully", result) |
|
|
| """@generator.request_body( |
| { |
| "token": "test_token", |
| "uuid": "test_uuid", |
| "page_content": "string", |
| } |
| ) |
| @generator.response( status_code=200, schema={"message": "message", "result": {"document_id": "document_id", |
| "page_content":"page_content"}} )""" |
|
|
| @router.post("/create") |
| def create_document_train(data: Document): |
| |
| try: |
| setting, firebase_app = firebase_admin_with_setting(data) |
| except BrainException as ex: |
| return ex.get_response_exp() |
| |
| train_service = TrainService(firebase_app=firebase_app, setting=setting) |
| try: |
| result = train_service.create_one_document(data.page_content) |
| except Exception as e: |
| return assembler.to_response(400, "failed to create one document", "") |
| return assembler.to_response( |
| 200, "created one document and trained it successfully", result |
| ) |
|
|
| """@generator.request_body( |
| { |
| "token": "test_token", |
| "uuid": "test_uuid", |
| "document_id": "string", |
| "page_content": "string", |
| } |
| ) |
| @generator.response( status_code=200, schema={"message": "message", "result": {"document_id": "document_id", |
| "page_content":"page_content"}} )""" |
|
|
| @router.put("") |
| def update_one_document(data: Document): |
| |
| try: |
| setting, firebase_app = firebase_admin_with_setting(data) |
| except BrainException as ex: |
| return ex.get_response_exp() |
| |
| train_service = TrainService(firebase_app=firebase_app, setting=setting) |
| try: |
| result = train_service.update_one_document( |
| data.document_id, data.page_content |
| ) |
| except Exception as e: |
| return assembler.to_response(400, "fail to update one document", "") |
| return assembler.to_response( |
| 200, "updated one document and trained it successfully", result |
| ) |
|
|
| """@generator.request_body( |
| { |
| "token": "test_token", |
| "uuid": "test_uuid", |
| "document_id": "string", |
| } |
| ) |
| @generator.response( status_code=200, schema={"message": "message", "result": {"document_id": "document_id"}} )""" |
|
|
| @router.post("/delete/{document_id}") |
| def delete_one_document(document_id: str, data: BasicReq): |
| |
| try: |
| setting, firebase_app = firebase_admin_with_setting(data) |
| except BrainException as ex: |
| return ex.get_response_exp() |
| |
| train_service = TrainService(firebase_app=firebase_app, setting=setting) |
| try: |
| result = train_service.delete_one_document(document_id) |
| except Exception as e: |
| if isinstance(e, BrainException): |
| return e.get_response_exp() |
| return assembler.to_response(400, "fail to delete one train", "") |
| return assembler.to_response( |
| 200, "deleted one document and train data successfully", result |
| ) |
|
|
| """@generator.request_body( |
| { |
| "token": "test_token", |
| "uuid": "test_uuid", |
| } |
| ) |
| @generator.response( status_code=200, schema={"message": "message", "result": {"document_id": "document_id"}} )""" |
|
|
| @router.post("/delete/all/vectors") |
| def delete_all_pinecone(data: BasicReq): |
| |
| try: |
| setting, firebase_app = firebase_admin_with_setting(data) |
| except BrainException as ex: |
| return ex.get_response_exp() |
| |
| train_service = TrainService(firebase_app=firebase_app, setting=setting) |
| try: |
| result = train_service.delete_all_training_from_pinecone() |
| except Exception as e: |
| if isinstance(e, BrainException): |
| return e.get_response_exp() |
| return assembler.to_response(400, "fail to delete one train", "") |
| return assembler.to_response( |
| 200, "deleted one document and train data successfully", result |
| ) |
|
|
| return router |
|
|