This repository now contains the active, trimmed codebase.
- Active components remain here (APIs, v5/dynamic agents, revision agent, simulation-to-concept, load tests, shared utilities).
- Older/experimental files that are no longer in this repo have been moved to a separate legacy repository.
- If you need historical code, point developers to the legacy repo link used by your team.
educational_agent_optimized_langsmith_v5/- Static autosuggestions variant.
educational_agent_optimized_langsmith_autosuggestion/- Dynamic autosuggestions variant.
revision_agent/- Exam/revision-focused agent with chapter question banks.
api_servers/api_server_v5.py- API for v5 graph plus simulation and revision endpoints.
api_servers/api_server.py- API for dynamic autosuggestion graph plus simulation endpoints.
api_servers/schemas.py- Shared request/response models.
simulation_to_concept/- Simulation teaching API integration and quiz evaluation flow.
simulation_to_concept_old/- Older snapshot retained for reference.
Streamlit_UI/app_agent_v5.pyStreamlit_UI/revision_app.py
autosuggestion/utils/api_tracker_utils/tester_agent/concept_map_poc/science_jsons/
load_tests/locustfile.pyload_tests/tasks/session_tasks.py(regular teaching session flow)load_tests/tasks/session_tasks_simulation.py(simulation-only flow)load_tests/tasks/session_tasks_mixed.py(calls both flows)load_tests/config.pywithLOAD_TEST_TASK_MODE
The previous broad codebase (older agent variants, legacy Streamlit apps, old experiments) has been moved out of this repository.
- This README intentionally documents only what currently exists in this repo.
- Add your internal/external legacy repository URL here for discoverability.
Example placeholder:
Legacy repository: <add-legacy-repo-url>
- Student interaction goes through FastAPI endpoints.
- FastAPI invokes LangGraph-based teaching/revision flows.
- Shared utilities handle translation, prompt/history shaping, and helper functions.
- Session persistence is checkpointer-backed for teaching agents (Postgres in v5 flow), while revision currently uses in-memory checkpointer behavior.
- Simulation endpoints use
simulation_to_conceptorchestration for parameterized concept teaching and quiz evaluation.
Base educational endpoints:
GET /GET /healthGET /conceptsPOST /session/startPOST /session/continueGET /session/status/{thread_id}GET /session/history/{thread_id}GET /session/summary/{thread_id}DELETE /session/{thread_id}
Testing/helper endpoints:
GET /test/personasPOST /test/personaPOST /test/imagesPOST /test/simulationPOST /concept-map/generate
Simulation endpoints:
GET /simulationPOST /simulation/session/startPOST /simulation/session/{session_id}/respondPOST /simulation/session/{session_id}/submit-quizGET /simulation/session/{session_id}GET /simulation/simulations
Revision endpoints (present in v5 server):
GET /revision/chaptersPOST /revision/session/startPOST /revision/session/continueGET /revision/session/status/{thread_id}GET /revision/session/history/{thread_id}DELETE /revision/session/{thread_id}
Translation endpoints (v5):
POST /translate/to-kannadaPOST /translate/to-english
Provides the same main teaching and simulation flow as above, but uses the dynamic autosuggestion graph and currently exposes:
POST /translate(Kannada translation endpoint in this server)
If you run both servers side by side, treat v5 as the fuller API surface (revision + dual translation routes).
python -m venv .venv
# Windows PowerShell
.venv\Scripts\Activate.ps1
pip install -r requirements.txtAlternative requirements files available:
requirements-minimal.txtrequirements_simple.txtrequirements_with_streamlit_audio_video.txt
# V5 static autosuggestion server
uvicorn api_servers.api_server_v5:app --host 0.0.0.0 --port 8000 --reload
# Dynamic autosuggestion server
uvicorn api_servers.api_server:app --host 0.0.0.0 --port 8001 --reloadstreamlit run Streamlit_UI/app_agent_v5.py
streamlit run Streamlit_UI/revision_app.pyload_tests/locustfile.py now supports mode selection through environment variable:
LOAD_TEST_TASK_MODE=regularLOAD_TEST_TASK_MODE=simulationLOAD_TEST_TASK_MODE=mixed
Default mode is mixed.
Examples (PowerShell):
$env:LOAD_TEST_TASK_MODE="mixed"
locust -f load_tests/locustfile.py --host http://localhost:8000$env:LOAD_TEST_TASK_MODE="simulation"
locust -f load_tests/locustfile.py --host http://localhost:8000$env:LOAD_TEST_TASK_MODE="regular"
locust -f load_tests/locustfile.py --host http://localhost:8000Note: load_tests/locustfile.py attempts to call /test/api-key-metrics at test stop. If your running API server does not expose this endpoint, Locust will print a non-fatal error during report export.
Create .env with values used by your deployment:
# Gemini keys (tracker can rotate across keys)
GOOGLE_API_KEY_1=...
GOOGLE_API_KEY_2=...
# Azure translator
AZURE_TRANSLATOR_KEY=...
# LangSmith
LANGCHAIN_TRACING_V2=true
LANGCHAIN_PROJECT=...
LANGCHAIN_API_KEY=...
# Postgres checkpointer
POSTGRES_DATABASE_URL=postgresql://...Additional settings may be required depending on which modules/endpoints you run.
main.pyreferenceseducational_agent_with_simulation, which is not part of the active top-level package layout in this trimmed repository.pyproject.tomlstill contains historical package include entries from older layouts.
If needed, clean these references as part of repository housekeeping; they do not change the current API-first runtime paths documented above.
For day-to-day usage, use these entry points first:
api_servers/api_server_v5.pyapi_servers/api_server.pyStreamlit_UI/app_agent_v5.pyStreamlit_UI/revision_app.pyload_tests/locustfile.py
Current important top-level folders/files include:
api_servers/api_tracker_utils/autosuggestion/concept_map_poc/educational_agent_optimized_langsmith_autosuggestion/educational_agent_optimized_langsmith_v5/load_tests/revision_agent/science_jsons/simulation_to_concept/simulation_to_concept_old/Streamlit_UI/tester_agent/utils/README.md
This list is intentionally practical rather than exhaustive.