How shirsh3/sarvashikshaai works
Sarvasiksha AI is a Spring Boot voice-assistant API. REST clients submit questions through the JSON endpoint, while Alexa sends skill requests to a separate endpoint; both paths call the OpenAI-backed teacher service and return answers in their respective response formats. The API also exposes a health check, and Alexa handles launch, help, stop, and session-end requests. The graph follows the sampled controllers and service; configuration details beyond the properties class are not expanded.
Main entry points: OpenAiTeacherService.java Teacher service · AskController.java Ask API · AlexaController.java Alexa endpoint · OpenAiProperties.java OpenAI settings
Components 11
Client interfaces
- Ask API
src/main/java/ai/sarvasiksha/web/AskController.java - Ask request
src/main/java/ai/sarvasiksha/dto/AskRequest.java - Ask response
src/main/java/ai/sarvasiksha/dto/AskResponse.java - Alexa endpoint
src/main/java/ai/sarvasiksha/web/AlexaController.java - API errors
src/main/java/ai/sarvasiksha/web/ApiExceptionHandler.java
Answer service
- Teacher service
src/main/java/ai/sarvasiksha/service/OpenAiTeacherService.java
Configuration
- OpenAI settings
src/main/java/ai/sarvasiksha/config/OpenAiProperties.java - Spring Boot app
src/main/java/ai/sarvasiksha/SarvasikshaAiApplication.java
Other components
- REST clients
- Alexa platform
- OpenAI API
Connections 13
- REST clients → Ask API: HTTP requests
- Ask API → Ask request: binds JSON
- Ask API → Teacher service: asks question
- Teacher service → Ask API: returns answer
- Ask API → Ask response: builds response
- Ask API → OpenAI settings: checks key
- Alexa platform → Alexa endpoint: skill requests
- Alexa endpoint → Teacher service: asks question
- Teacher service → Alexa endpoint: returns answer
- Alexa endpoint → Alexa platform: returns speech
- Teacher service → OpenAI settings: reads settings
- Teacher service → OpenAI API: sends completion request
- OpenAI API → Teacher service: returns completion