![Screenshot 2024-10-27 212211](https://private-user-images.githubusercontent.com/98256478/380608464-b276b74b-c6be-49e2-9f41-39b655f615fa.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyOTA5NjcsIm5iZiI6MTczOTI5MDY2NywicGF0aCI6Ii85ODI1NjQ3OC8zODA2MDg0NjQtYjI3NmI3NGItYzZiZS00OWUyLTlmNDEtMzliNjU1ZjYxNWZhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDE2MTc0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA0YTkxNzM3NTA0NGQyNGI2NThmZTVmNjYwYjQ5NmEwZDQ3NzRhMWEzYzJhMDQ2YjYyZTJkZmNmMTgzYTEwOTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.bUV9cdMNnMJj4PestSz0GGMNNrSr2SK_klWIL70A548)
![Screenshot 2024-10-27 212211](https://private-user-images.githubusercontent.com/98256478/380511581-949a21cf-6e9e-48d0-bc7c-8873e0e70987.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyOTA5NjcsIm5iZiI6MTczOTI5MDY2NywicGF0aCI6Ii85ODI1NjQ3OC8zODA1MTE1ODEtOTQ5YTIxY2YtNmU5ZS00OGQwLWJjN2MtODg3M2UwZTcwOTg3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDE2MTc0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAyYWNiMmQ2ZWY3NjFiMGM4YzRmMDNlYzBhNjVjM2I5NGZjMjZhOGYxNWY1ZDRlZGNjOWY5MmY1MDdkZTk0YjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Kq9qifiGAkmNF8c5rzgUZn66rGUxbZhzKUhYNk908LY)
![Screenshot 2024-10-27 212211](https://private-user-images.githubusercontent.com/98256478/380511586-34c9f975-7401-409e-9479-eb04caf239c1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyOTA5NjcsIm5iZiI6MTczOTI5MDY2NywicGF0aCI6Ii85ODI1NjQ3OC8zODA1MTE1ODYtMzRjOWY5NzUtNzQwMS00MDllLTk0NzktZWIwNGNhZjIzOWMxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDE2MTc0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkYTAzNWZlNTI0MGMyNGExMzJkMTU5Zjk4ZDQ5MmZmYWRiMDY2ZDE5YTU2Y2JiNDA5MDk0NWM5MjU4MDVlYzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Zio6CEi7qnuqxI5IEocIDWyLBkC1uZ0jbo86HjNgdvg)
![Screenshot 2024-10-27 212211](https://private-user-images.githubusercontent.com/98256478/380518889-3cae8018-02c1-4700-bd3b-acf4918a922a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyOTA5NjcsIm5iZiI6MTczOTI5MDY2NywicGF0aCI6Ii85ODI1NjQ3OC8zODA1MTg4ODktM2NhZTgwMTgtMDJjMS00NzAwLWJkM2ItYWNmNDkxOGE5MjJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDE2MTc0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgxNTUxYzg3ZWEyOGRkNWJkYjEwMGJmZGEyMWEyZTNkZjAwNmQ0MzdiM2UwNWZmMTFhMDkyMjg1M2VkNDA2NDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.K3qDNs8RpnscJ_or5uTFq4oDtjDBM6_4J0LYzyxU-UA)
![Screenshot 2024-10-27 212211](https://private-user-images.githubusercontent.com/98256478/380623251-a0a24373-7505-444a-b3a7-492dad361b08.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyOTA5NjcsIm5iZiI6MTczOTI5MDY2NywicGF0aCI6Ii85ODI1NjQ3OC8zODA2MjMyNTEtYTBhMjQzNzMtNzUwNS00NDRhLWIzYTctNDkyZGFkMzYxYjA4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDE2MTc0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMyM2JiY2JkNjk0MWEzMTg4MGYxZDQ3ZTU0YWI1ZmFhNDcxZDU0MmZmNjUyYTRiYzkyMDMyNjY5OTBlMGU2NGQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.tZKOOLu_P4yKS6AUrvwEu8BotSiJJMa07PqacyJ5mfk)
Q&A Planet is a AI platform where you can upload any document and ask question related to it
- ReactJs: For building the user interface.
- VueJs: For additional components and interactivity.
- FastAPI: For building the API efficiently.
- Python: The programming language used for the backend.
- Pydantic: For validating request and response data.
- CORS Middleware from FastAPI: To enable cross-origin resource sharing.
- PyMuPDF: For processing PDF files.
- LangChain: For text splitting and handling large documents.
- Hugging Face Transformers: For natural language processing tasks.
- Sentence Transformers: For embedding sentences and retrieving contextual information.
- SQLAlchemy ORM: For database interactions and object-relational mapping.
Use the package manager pip to install foobar. Copy the proejct url
cd ./frontend
npm install
and the frontend server will start
cd ./backend
To install all the dependencies
pip install fastapi uvicorn sqlalchemy pymupdf langchain transformers sentence-transformers fastapi[all]
To run the backend server
uvicorn main:app --reload
the server will run at port
http://127.0.0.1:8000/docs#/
- Endpoint:
/upload_pdf
- Method:
POST
- Description: Upload a PDF file to the server for processing.
-
Headers:
Content-Type
:multipart/form-data
-
Body:
file
: The PDF file to be uploaded (required).
- Status Code:
200 OK
- Response Body:
{ "document_id": "string" // The ID of the uploaded document. }
- Endpoint:
/ask_question
- Method:
POST
- Description: Submit a question related to the uploaded document and receive an answer.
-
Headers:
Content-Type
:application/json
-
Body:
document_id
: The ID of the document to ask questions about.question
: The question to be asked.
-
Status Code:
200 OK
-
Response Body:
{ "answer": "string" // The answer to the asked question. }
- Endpoint:
/document/{document_id}/questions
- Method:
GET
- Description: Retrieve a list of questions and answers associated with a specific document.
-
Path Parameters:
document_id
: The ID of the document for which questions are retrieved (required).
-
Status Code:
200 OK
-
Response Body:
[ { "question": "string", // The question asked. "answer": "string" // The answer provided. } ]