Spaces:
Sleeping
Sleeping
File size: 3,501 Bytes
6f31655 f5b0cd7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | ---
title: Humanoids
emoji: π¨
colorFrom: gray
colorTo: purple
sdk: docker
pinned: false
---
# SpecKit-Plus Backend (Humanoids)
This is the AI-powered backend for the **Physical AI & Humanoid Robotics** interactive textbook. It provides Retrieval-Augmented Generation (RAG) capabilities, allowing students to query textbook content and get context-aware explanations.
## Directory Structure
```
backend/
βββ main.py # Main FastAPI application entry point
βββ configs/
β βββ config.py # Configuration and model settings
βββ services/
β βββ rag.py # RAG (Retrieval Augmented Generation) service
β βββ indexer.py # Document indexing for Qdrant vector database
β βββ chatkit_service.py # ChatKit server with RAG capabilities
βββ data/
β βββ vector_store.py # Qdrant vector database operations
β βββ embeddings.py # Embedding service using FastEmbed
βββ simple_agents/
β βββ aagents.py # Triage Agent definition
βββ agents/
β βββ Runner.py # Agent runner
βββ tests/
β βββ test_keys.py # Configuration tests
β βββ test_rag.py # RAG functionality tests
βββ history/ # History of prompts and decisions
βββ prompts/ # Prompt History Records (PHRs)
βββ adr/ # Architecture Decision Records (ADRs)
```
## What Has Been Done
### 1. Code Organization & Structure
- Organized backend files into logical directories (configs, services, data, simple_agents, agents, tests)
- Fixed import paths across all files to work with new directory structure
- Centralized model configuration in `configs/config.py`
### 2. Qdrant Integration & RAG System
- Implemented document indexing system in `services/indexer.py` to upload documents from `frontend/docs` to Qdrant
- Fixed Qdrant ID validation issues by changing from file paths to UUIDs
- Created RAG service in `services/rag.py` for contextual query processing
- Connected the main Agent in `main.py` to use Qdrant context before responding
- Updated default collection name to "Humanoids" across all components
### 3. Agent Integration
- Connected the Triage Agent to use RAG context from Qdrant for more informed responses
- Updated API endpoints (`/api/query` and `/api/selection`) to incorporate RAG context
### 4. Configuration & Security
- Centralized configuration management with proper environment variable handling
- Fixed undefined variable issues in services
## What Is Left
### 1. Testing & Verification
- [ ] Test complete RAG flow to verify Agent uses Qdrant context properly
- [ ] Verify responses include context from uploaded documents
- [ ] Confirm sources field is populated with document references
### 2. Documentation & History
- [ ] Create PHR for RAG integration work
- [ ] Finalize commit with all changes
## API Endpoints
- `GET /` - Health check endpoint
- `POST /api/query` - General chat queries with RAG context
- `POST /api/selection` - Queries based on selected text with RAG context
## Setup
1. Install dependencies: `uv pip install -r requirements.txt`
2. Set up environment variables in `.env`:
```
QDRANT_URL=your_qdrant_url
QDRANT_API_KEY=your_qdrant_api_key
EXTERNAL_API_KEY=your_external_api_key
```
3. Index documents: `python services/indexer.py`
4. Start server: `uv run --no-dev uvicorn main:app --reload --port=8000` |