Spaces:
Sleeping
Sleeping
Add RAG implementation with backend, frontend and aimakerspace
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- README.md +36 -5
- backend/main.py +1 -0
- backend/requirements.txt +8 -0
- backend/run.py +4 -0
- frontend/node_modules/.bin/acorn +1 -0
- frontend/node_modules/.bin/ansi-html +1 -0
- frontend/node_modules/.bin/autoprefixer +1 -0
- frontend/node_modules/.bin/browserslist +1 -0
- frontend/node_modules/.bin/css-blank-pseudo +1 -0
- frontend/node_modules/.bin/css-has-pseudo +1 -0
- frontend/node_modules/.bin/css-prefers-color-scheme +1 -0
- frontend/node_modules/.bin/cssesc +1 -0
- frontend/node_modules/.bin/detect +1 -0
- frontend/node_modules/.bin/detect-port +1 -0
- frontend/node_modules/.bin/ejs +1 -0
- frontend/node_modules/.bin/escodegen +1 -0
- frontend/node_modules/.bin/esgenerate +1 -0
- frontend/node_modules/.bin/eslint +1 -0
- frontend/node_modules/.bin/esparse +1 -0
- frontend/node_modules/.bin/esvalidate +1 -0
- frontend/node_modules/.bin/he +1 -0
- frontend/node_modules/.bin/html-minifier-terser +1 -0
- frontend/node_modules/.bin/import-local-fixture +1 -0
- frontend/node_modules/.bin/is-docker +1 -0
- frontend/node_modules/.bin/jake +1 -0
- frontend/node_modules/.bin/jest +1 -0
- frontend/node_modules/.bin/jiti +1 -0
- frontend/node_modules/.bin/js-yaml +1 -0
- frontend/node_modules/.bin/jsesc +1 -0
- frontend/node_modules/.bin/json5 +1 -0
- frontend/node_modules/.bin/loose-envify +1 -0
- frontend/node_modules/.bin/mime +1 -0
- frontend/node_modules/.bin/mkdirp +1 -0
- frontend/node_modules/.bin/multicast-dns +1 -0
- frontend/node_modules/.bin/nanoid +1 -0
- frontend/node_modules/.bin/node-which +1 -0
- frontend/node_modules/.bin/parser +1 -0
- frontend/node_modules/.bin/react-scripts +1 -0
- frontend/node_modules/.bin/regjsparser +1 -0
- frontend/node_modules/.bin/resolve +1 -0
- frontend/node_modules/.bin/rimraf +1 -0
- frontend/node_modules/.bin/rollup +1 -0
- frontend/node_modules/.bin/semver +1 -0
- frontend/node_modules/.bin/sucrase +1 -0
- frontend/node_modules/.bin/sucrase-node +1 -0
- frontend/node_modules/.bin/svgo +1 -0
- frontend/node_modules/.bin/tailwind +1 -0
- frontend/node_modules/.bin/tailwindcss +1 -0
- frontend/node_modules/.bin/terser +1 -0
- frontend/node_modules/.bin/tsc +1 -0
README.md
CHANGED
|
@@ -1,11 +1,42 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
| 8 |
license: apache-2.0
|
| 9 |
---
|
| 10 |
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: RAG Question Answering System
|
| 3 |
+
emoji: 🤖
|
| 4 |
+
colorFrom: blue
|
| 5 |
+
colorTo: purple
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
| 8 |
license: apache-2.0
|
| 9 |
---
|
| 10 |
|
| 11 |
+
# RAG Question Answering System
|
| 12 |
+
|
| 13 |
+
This application allows users to upload documents (PDF or TXT) and ask questions about their content. It uses a Retrieval-Augmented Generation (RAG) approach to provide accurate answers based on the document content.
|
| 14 |
+
|
| 15 |
+
## Features
|
| 16 |
+
|
| 17 |
+
- Upload PDF or TXT documents
|
| 18 |
+
- Ask questions about the document content
|
| 19 |
+
- View the context used to generate answers
|
| 20 |
+
- Modern, responsive user interface
|
| 21 |
+
|
| 22 |
+
## How to Use
|
| 23 |
+
|
| 24 |
+
1. Upload a document (PDF or TXT) using the file upload interface
|
| 25 |
+
2. Wait for the document to be processed
|
| 26 |
+
3. Ask questions about the document content in the chat interface
|
| 27 |
+
4. View the answers and the context used to generate them
|
| 28 |
+
|
| 29 |
+
## Technical Details
|
| 30 |
+
|
| 31 |
+
The application consists of two main components:
|
| 32 |
+
|
| 33 |
+
1. **FastAPI Backend**: Handles file uploads, document processing, and question answering
|
| 34 |
+
2. **React Frontend**: Provides a user-friendly interface for uploading documents and asking questions
|
| 35 |
+
|
| 36 |
+
## Environment Variables
|
| 37 |
+
|
| 38 |
+
- `OPENAI_API_KEY`: Your OpenAI API key (required)
|
| 39 |
+
|
| 40 |
+
## License
|
| 41 |
+
|
| 42 |
+
This project is licensed under the Apache 2.0 License.
|
backend/main.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
|
backend/requirements.txt
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
fastapi==0.110.0
|
| 2 |
+
uvicorn==0.27.1
|
| 3 |
+
python-multipart==0.0.9
|
| 4 |
+
numpy==2.2.2
|
| 5 |
+
openai==1.59.9
|
| 6 |
+
pydantic==2.10.1
|
| 7 |
+
pypdf2==3.0.1
|
| 8 |
+
websockets==14.2
|
backend/run.py
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import uvicorn
|
| 2 |
+
|
| 3 |
+
if __name__ == "__main__":
|
| 4 |
+
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)
|
frontend/node_modules/.bin/acorn
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../acorn/bin/acorn
|
frontend/node_modules/.bin/ansi-html
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../ansi-html/bin/ansi-html
|
frontend/node_modules/.bin/autoprefixer
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../autoprefixer/bin/autoprefixer
|
frontend/node_modules/.bin/browserslist
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../browserslist/cli.js
|
frontend/node_modules/.bin/css-blank-pseudo
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../css-blank-pseudo/dist/cli.cjs
|
frontend/node_modules/.bin/css-has-pseudo
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../css-has-pseudo/dist/cli.cjs
|
frontend/node_modules/.bin/css-prefers-color-scheme
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../css-prefers-color-scheme/dist/cli.cjs
|
frontend/node_modules/.bin/cssesc
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../cssesc/bin/cssesc
|
frontend/node_modules/.bin/detect
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../detect-port-alt/bin/detect-port
|
frontend/node_modules/.bin/detect-port
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../detect-port-alt/bin/detect-port
|
frontend/node_modules/.bin/ejs
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../ejs/bin/cli.js
|
frontend/node_modules/.bin/escodegen
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../escodegen/bin/escodegen.js
|
frontend/node_modules/.bin/esgenerate
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../escodegen/bin/esgenerate.js
|
frontend/node_modules/.bin/eslint
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../eslint/bin/eslint.js
|
frontend/node_modules/.bin/esparse
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../esprima/bin/esparse.js
|
frontend/node_modules/.bin/esvalidate
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../esprima/bin/esvalidate.js
|
frontend/node_modules/.bin/he
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../he/bin/he
|
frontend/node_modules/.bin/html-minifier-terser
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../html-minifier-terser/cli.js
|
frontend/node_modules/.bin/import-local-fixture
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../import-local/fixtures/cli.js
|
frontend/node_modules/.bin/is-docker
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../is-docker/cli.js
|
frontend/node_modules/.bin/jake
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../jake/bin/cli.js
|
frontend/node_modules/.bin/jest
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../jest/bin/jest.js
|
frontend/node_modules/.bin/jiti
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../jiti/bin/jiti.js
|
frontend/node_modules/.bin/js-yaml
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../js-yaml/bin/js-yaml.js
|
frontend/node_modules/.bin/jsesc
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../jsesc/bin/jsesc
|
frontend/node_modules/.bin/json5
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../json5/lib/cli.js
|
frontend/node_modules/.bin/loose-envify
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../loose-envify/cli.js
|
frontend/node_modules/.bin/mime
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../mime/cli.js
|
frontend/node_modules/.bin/mkdirp
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../mkdirp/bin/cmd.js
|
frontend/node_modules/.bin/multicast-dns
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../multicast-dns/cli.js
|
frontend/node_modules/.bin/nanoid
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../nanoid/bin/nanoid.cjs
|
frontend/node_modules/.bin/node-which
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../which/bin/node-which
|
frontend/node_modules/.bin/parser
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../@babel/parser/bin/babel-parser.js
|
frontend/node_modules/.bin/react-scripts
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../react-scripts/bin/react-scripts.js
|
frontend/node_modules/.bin/regjsparser
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../regjsparser/bin/parser
|
frontend/node_modules/.bin/resolve
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../resolve/bin/resolve
|
frontend/node_modules/.bin/rimraf
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../rimraf/bin.js
|
frontend/node_modules/.bin/rollup
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../rollup/dist/bin/rollup
|
frontend/node_modules/.bin/semver
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../semver/bin/semver.js
|
frontend/node_modules/.bin/sucrase
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../sucrase/bin/sucrase
|
frontend/node_modules/.bin/sucrase-node
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../sucrase/bin/sucrase-node
|
frontend/node_modules/.bin/svgo
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../svgo/bin/svgo
|
frontend/node_modules/.bin/tailwind
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../tailwindcss/lib/cli.js
|
frontend/node_modules/.bin/tailwindcss
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../tailwindcss/lib/cli.js
|
frontend/node_modules/.bin/terser
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../terser/bin/terser
|
frontend/node_modules/.bin/tsc
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
../typescript/bin/tsc
|