How hungvv109/student-laziness-kg-multi-agent works
This is a Streamlit school-counseling assistant: a student submits a concern, a LangGraph workflow routes it, and the app returns a conversational or graph-grounded counseling response. The graph distinguishes intent routing, query generation, Neo4j retrieval, and response generation. The sampled source implements these stages together in one file; the README documents the Neo4j graph setup. Future improvements are not represented as existing runtime components.
Main entry points: graph_agent.py LangGraph app · graph_study.cypher Graph setup
Components 10
Chat interface
- Streamlit chat
src/graph_agent.py
Agent workflow
- LangGraph app
src/graph_agent.py - Intent router
src/graph_agent.py - Cypher generator
src/graph_agent.py - Graph executor
src/graph_agent.py - Counselor
src/graph_agent.py
Knowledge services
- Google Gemini
- Neo4j graph
- Graph setup
database/graph_study.cypher
Other components
- Student
Connections 19
- Student → Streamlit chat: submits concern
- Streamlit chat → LangGraph app: invokes workflow
- LangGraph app → Intent router: dispatches
- Intent router → Google Gemini: classifies intent
- Intent router → LangGraph app: returns intent
- LangGraph app → Cypher generator: dispatches GRAPH
- LangGraph app → Counselor: dispatches CHAT
- Cypher generator → Google Gemini: generates query
- Cypher generator → LangGraph app: returns query
- LangGraph app → Graph executor: dispatches query
- Graph executor → Neo4j graph: executes Cypher
- Neo4j graph → Graph executor: returns records
- Graph executor → LangGraph app: returns graph data
- LangGraph app → Counselor: dispatches graph result
- Counselor → Google Gemini: generates response
- Counselor → LangGraph app: returns response
- LangGraph app → Streamlit chat: returns result
- Streamlit chat → Student: shows response
- Graph setup → Neo4j graph: creates graph data