Spaces:
Sleeping
Sleeping
# Document RAG User API | |
This is a FastAPI application for processing and managing document uploads, including PDF and text files. The application allows users to upload files, query collections, and manage their document data. | |
## Features | |
- Upload files in various formats (PDF, TXT, etc.) | |
- Efficiently process and store document chunks with metadata | |
- Perform queries on collections using user-defined input | |
- Retrieve and list collections specific to each user | |
- Remove collections as needed | |
## Requirements | |
- Python 3.7+ | |
- FastAPI | |
- LanceDB | |
- Pydantic | |
- Pandas | |
- Other dependencies as specified in `requirements.txt` | |
## Installation | |
1. Clone the repository: | |
```bash | |
git clone <repository-url> | |
cd <repository-directory> | |
``` | |
2. Install the required packages: | |
```bash | |
pip install -r requirements.txt | |
``` | |
3. Run the application: | |
```bash | |
uvicorn app.document_rag_user:app --reload | |
``` | |
## API Endpoints | |
### Upload Files | |
- **POST** `/upload_files` | |
- Upload multiple files. | |
- Parameters: | |
- `files`: List of files to upload. | |
- `collection_name`: Optional name for the collection. | |
- `user_id`: User identifier. | |
### Get Document | |
- **GET** `/get_document/{collection_id}/{document_id}` | |
- Retrieve a specific document by its ID from a collection. | |
- Parameters: | |
- `collection_id`: ID of the collection. | |
- `document_id`: ID of the document. | |
- `user_id`: User identifier. | |
### Query Collection | |
- **POST** `/query_collection` | |
- Query a collection based on user input. | |
- Request Body: | |
- `collection_id`: ID of the collection. | |
- `query`: Search query. | |
- `top_k`: Optional number of top results to return (default is 3). | |
- `user_id`: User identifier. | |
### List Collections | |
- **GET** `/list_collections` | |
- List all collections for a specific user. | |
- Parameters: | |
- `user_id`: User identifier. | |
### Delete Collection | |
- **DELETE** `/delete_collection/{collection_id}` | |
- Delete a specific collection. | |
- Parameters: | |
- `collection_id`: ID of the collection to delete. | |
- `user_id`: User identifier. | |
## Contributing | |
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes. | |
## License | |
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |