How vibol18/chatbot works
CodeScan is a local, rule-based coding assistant with both a terminal chatbot and a Flask chat interface. Users submit a question or code; the interface routes it to code detection and checks, style fixing, error-message lookup, or knowledge matching, then returns a reply. The architecture separates intent/routing, language analysis, and response services. The README also describes editable knowledge-base teaching and formatting behavior. The referenced data directory is absent from the supplied tree, and some checker implementations were not excerpted, so those internals are represented only at subsystem level.
Main entry points: app.py Flask chat API · chatbot.py Terminal chatbot · code_analyzer.py Analysis router · matcher.py Knowledge matcher
Components 18
User interfaces
- Terminal chatbot
chatbot.py - Flask chat API
web/app.py - Web launcher
app.py
Intent and routing
- Intent classifier
engine/intent_classifier.py - Code snippet detector
engine/code_analyzer.py - Language and thresholds
config/settings.py
Code analysis
- Language detector
engine/detector.py - Analysis router
engine/code_analyzer.py - Language checkers
checkers - Bracket checker
checkers/bracket_checker.py
Answer and fix services
- Knowledge matcher
engine/matcher.py - Knowledge base data
- Error lookup
engine/error_lookup.py - Error reference data
- Fixer registry
fixers/__init__.py - Language formatters
fixers
Other components
- User
- OCR service
Connections 25
- User → Terminal chatbot: enters question
README.md - User → Flask chat API: sends chat
web/app.py - Web launcher → Flask chat API: launches
app.py - Terminal chatbot → Intent classifier: classifies intent
chatbot.py - Terminal chatbot → Code snippet detector: tests code
chatbot.py - Terminal chatbot → Language detector: detects language
chatbot.py - Terminal chatbot → Analysis router: analyzes code
chatbot.py - Terminal chatbot → Error lookup: looks up errors
chatbot.py - Terminal chatbot → Knowledge matcher: matches question
chatbot.py - Flask chat API → Intent classifier: classifies intent
web/app.py - Flask chat API → Code snippet detector: tests code
web/app.py - Flask chat API → Language detector: detects language
web/app.py - Flask chat API → Analysis router: analyzes code
web/app.py - Flask chat API → Error lookup: looks up errors
web/app.py - Flask chat API → Knowledge matcher: matches question
web/app.py - Flask chat API → Fixer registry: requests formatter
web/app.py - Flask chat API → OCR service: extracts image text
web/app.py - Analysis router → Language detector: detects when absent
engine/code_analyzer.py - Analysis router → Language checkers: routes code
engine/code_analyzer.py - Language checkers → Bracket checker: checks brackets
checkers/check_php.py - Knowledge matcher → Language and thresholds: uses thresholds
chatbot.py - Error lookup → Language and thresholds: loads settings
engine/error_lookup.py - Knowledge matcher → Knowledge base data: loads entries
- Error lookup → Error reference data: loads JSON entries
engine/error_lookup.py - Fixer registry → Language formatters: dispatches formatter
fixers/__init__.py