A ReAct (Reasoning and Acting) pattern-based AI chatbot that leverages Amazon Bedrock Knowledge Base for document retrieval and citation generation with enhanced multi-stage search capabilities.
python run_app.pystreamlit run ui/app_improved_safe_final.py --server.port 8501 --server.address 0.0.0.0Then open your browser and navigate to http://localhost:8501
- Enhanced ReAct Agent Pattern: Advanced reasoning and acting cycles with intent analysis
- Multi-Stage Search: Intent-based additional searches for comprehensive results
- Real-time Progress Tracking: Live UI updates during processing stages
- Advanced Citation Management: Accurate citation extraction with proper filename display
- Token-Limited Response Generation: Safe 3000-token response generation with fallback
- MCP Tool Call Tracking: Real-time tool execution monitoring
- Session Management: Persistent conversation context across interactions
graph TB
User[User Query] --> Intent[Intent Analysis]
Intent --> Primary[Primary KB Search - 50 results]
Primary --> Additional[Additional Searches - 1-5 times]
Additional --> Integration[Result Integration]
Integration --> Response[3000 Token Response]
Response --> Citations[Citation Display]
subgraph "Real-time UI Updates"
Progress[Progress Tracking]
Status[Status Messages]
Metrics[Quality Metrics]
end
Intent -.-> Progress
Primary -.-> Progress
Additional -.-> Progress
Response -.-> Progress
- ReAct Agent (
react_agent_improved_safe.py): Main orchestration with enhanced error handling - Intent Analyzer (
intent_analyzer.py): Query classification and search strategy planning - Multi-Stage Search (
multi_stage_search.py): Comprehensive search execution - Orchestration Agent (
orchestration_improved.py): Enhanced query analysis - Action Agent (
action_improved.py): Search execution with tool tracking - Response Agent (
response_improved_safe.py): Safe response generation with token limits - Citation Display (
citation_display.py): Advanced citation rendering
βββ ui/ # User Interface
β βββ app_improved_safe_final.py # Main Streamlit application
β βββ citation_display.py # Citation display components
βββ src/
β βββ agents/ # AI Agents
β β βββ react_agent_improved_safe.py # Main ReAct orchestrator
β β βββ intent_analyzer.py # Query intent analysis
β β βββ orchestration_improved.py # Enhanced query planning
β β βββ action_improved.py # Search execution
β β βββ response_improved_safe.py # Safe response generation
β β βββ multi_stage_search.py # Multi-stage search engine
β βββ mcp/ # MCP Integration
β β βββ server.py # MCP server
β β βββ kb_client.py # Knowledge Base client
β β βββ rerank_client.py # ReRank service client
β β βββ tool_call_tracker.py # Tool execution tracking
β βββ utils/ # Utilities
β βββ citation.py # Citation processing
β βββ session.py # Session management
β βββ logger.py # Logging utilities
βββ config/ # Configuration
β βββ settings.py # Application settings
βββ tests/ # Test suites
βββ archive/ # Archived development files
β βββ ui/ # Previous UI versions
β βββ agents/ # Previous agent versions
β βββ docs/ # Development documentation
β βββ logs/ # Historical logs
βββ run_app.py # Simple execution script
βββ requirements.txt # Dependencies
- Primary Search: Hybrid search returning up to 50 results
- Intent Analysis: Automatic classification of query types (μ μ°¨_λ¬Έμ, κ·μ _νμΈ, κΈ°μ _μ§λ¬Έ, etc.)
- Additional Searches: 1-5 targeted searches based on intent analysis
- Result Integration: Smart deduplication and quality scoring
- π§ Intent Analysis: "μ¬μ©μ μλ λΆμ μ€..."
- π KB Search: "1μ°¨ KB κ²μ μ€ν μ€... (μ΅λ 50κ° κ²°κ³Ό)"
- π Multi-Stage: "μΆκ° κ²μ 2/3 μ€ν μ€..."
- π Response: "ν¬κ΄μ μλ΅ μμ± μ€... (3000 ν ν° μ΄λ΄)"
- β Complete: "μ²λ¦¬ μλ£!"
- Primary: tiktoken library for accurate token counting
- Fallback: Character-based estimation when tiktoken unavailable
- Limit: 3000 token maximum for response generation
- Quality: Maintains response quality within token constraints
- Python 3.9+
- AWS Account with Bedrock access
- Configured AWS credentials
- Clone the repository:
git clone https://github.com/jesamkim/agentic-kb-chat.git
cd agentic-kb-chat- Create virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Configure settings:
cp config/settings.py.example config/settings.py
# Edit config/settings.py with your AWS and Knowledge Base settingsUpdate config/settings.py:
class KnowledgeBaseSettings:
kb_id = "YOUR_KB_ID" # Replace with your actual KB ID
region = "us-west-2"
max_results = 50
search_type = "HYBRID"class ModelSettings:
primary_model_id = "us.anthropic.claude-3-7-sonnet-20250219-v1:0"
region = "us-west-2"
temperature = 0.0Run the test suite:
pytest tests/- 30% reduction in information omission through multi-stage search
- Intelligent query expansion based on intent analysis
- Quality scoring for search results and responses
- Real-time progress tracking eliminates waiting uncertainty
- Comprehensive citation display with original filenames
- Error resilience with fallback mechanisms
Development history and intermediate versions are preserved in the archive/ directory:
archive/ui/: Previous UI implementationsarchive/agents/: Earlier agent versionsarchive/docs/: Development documentationarchive/logs/: Historical execution logs
This project is licensed under the MIT License - see the LICENSE file for details.