AI-powered retrieval and content generation platform for micro-learning workflows.
- Ingests and indexes knowledgebase documents
- Retrieves relevant context for generation tasks
- Generates learning content in multiple formats (for example PDF and voice assets)
- Supports chatbot streaming, background generation jobs, and prompt versioning
- Backend: FastAPI
- AI/Orchestration: OpenAI + Anthropic integrations, LangChain
- Storage/Search: Azure Blob Storage + Azure AI Search
- Data layer: Azure SQL (background jobs + prompt management)
- Frontend:
dummy-ui(served separately)
eduflow/
├── app/ # FastAPI application core
│ ├── adapters/ # External service adapters (Azure, model clients, etc.)
│ ├── core/ # Shared application logic
│ ├── knowledgebase/ # Indexing and document processing logic
│ ├── pipelines/ # Generation and chat workflow pipelines
│ ├── prompts/ # Prompt models and management services
│ ├── retrievers/ # Retrieval helpers
│ ├── routers/ # API route definitions
│ └── main.py # API entrypoint
├── config/ # Configuration and logging setup
├── docs/ # Architecture diagrams and documentation
├── dummy-ui/ # Frontend app
├── evaluator_service/ # Evaluator microservice
├── tests/ # Test suite
├── docker-compose.yml
├── requirements.txt
└── README.md
- Python 3.10+ (recommended)
- Docker Desktop (optional, for containerized run)
- Azure resources configured for Blob/Search/SQL
- A populated
.envfile in the project root
docker compose up --build- Backend API:
http://localhost:8000 - Frontend UI:
http://localhost:3000
python -m venv .venv# Windows PowerShell
.venv\Scripts\Activate.ps1pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadPOST /chat/stream- stream chatbot responses using a selected indexPOST /gen/start- start background content generationPOST /gen/start-baseline- start baseline generation flowPOST /gen/start-memory- start memory-based generation flowPOST /gen/start-test- trigger test generation flow
POST /run-ai-indexing/{index_id}- provision indexing pipeline artifactsPOST /knowledgebase/{index_id}/upload- upload and index documentsDELETE /knowledgebase/{index_id}/documents- delete indexed docs by filenameDELETE /index/{index_id}- remove index artifacts and related containerGET /blobs- list blobs by container/prefixGET /test-blob-connection- test Blob connectivity
GET /bg_jobsandGET /bg_jobs/{job_id}- inspect generation job state/resultsDELETE /bg_jobs/clear- clear background jobsPOST /init-tables- initialize prompt tablesGET /prompts/*,POST /prompts/new,POST /prompts/activate,PUT/DELETE /prompts/...- prompt lifecycle APIs
- CORS is currently open (
allow_origins=["*"]) inapp/main.pyfor development flexibility. requirements.txtincludesweasyprint; on Windows, if install issues occur, reinstallcffiandfonttoolsas noted in the file.