Class: BxBuilderChain::DocumentsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- BxBuilderChain::DocumentsController
- Defined in:
- lib/generators/bx_builder_chain/templates/app/controllers/bx_builder_chain/documents_controller.rb
Constant Summary collapse
- LLM_CLASS_NAME =
'BxBuilderChain::Llm::OpenAi'- CLIENT_CLASS_NAME =
'BxBuilderChain::Vectorsearch::Pgvector'
Instance Method Summary collapse
- #delete_documents ⇒ Object
- #namespace_documents ⇒ Object
- #upload_and_process ⇒ Object
- #upload_and_process_later ⇒ Object
Instance Method Details
#delete_documents ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/generators/bx_builder_chain/templates/app/controllers/bx_builder_chain/documents_controller.rb', line 13 def delete_documents return render json: { error: 'No document IDs provided' }, status: :bad_request unless params[:ids].present? # Filter documents by the provided IDs and the namespace from the current user groups documents_to_delete = BxBuilderChain::Document.where(id: params[:ids], namespace: current_user_document_groups.first) # Destroy the documents documents_to_delete.destroy_all render json: { success: 'Documents deleted successfully' } end |
#namespace_documents ⇒ Object
8 9 10 11 |
# File 'lib/generators/bx_builder_chain/templates/app/controllers/bx_builder_chain/documents_controller.rb', line 8 def namespace_documents documents = BxBuilderChain::Document.where(namespace: current_user_document_groups.first) render json: documents end |
#upload_and_process ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/bx_builder_chain/templates/app/controllers/bx_builder_chain/documents_controller.rb', line 25 def upload_and_process service = DocumentUploadService.new( files: params[:files], user_groups: current_user_document_groups, # optional defaults to ['public'] client_class_name: CLIENT_CLASS_NAME, # optional defaults to 'BxBuilderChain::Vectorsearch::Pgvector' llm_class_name: LLM_CLASS_NAME # optional defaults to 'BxBuilderChain::Llm::OpenAi' ) result = service.upload_and_process if result[:error] render json: { error: result[:error] }, status: :bad_request else render json: result end end |
#upload_and_process_later ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/generators/bx_builder_chain/templates/app/controllers/bx_builder_chain/documents_controller.rb', line 42 def upload_and_process_later service = DocumentUploadService.new( files: params[:files], current_user_groups: current_user_document_groups, client_class_name: CLIENT_CLASS_NAME, llm_class_name: LLM_CLASS_NAME ) result = service.upload_and_process_later if result[:error] render json: { error: result[:error] }, status: :bad_request else render json: result end end |