Current Date and Time (UTC): 2025-02-28 13:45:49
Current User: srikrishnavansi
Version: 1.0.0
%%{init: {'theme': 'dark', 'themeVariables': { 'fontSize': '16px'}}}%%
flowchart TD
subgraph FE[Frontend Layer]
UI[User Interface] --> SM[Session Manager]
end
subgraph AL[Application Layer]
RC[Research Controller] --> SC[Synthesis Controller]
end
subgraph IL[Integration Layer]
TS[Tavily Search] --> GM[Gemini Model]
end
SM --> RC
SC --> TS
SC --> GM
%%{init: {'theme': 'dark', 'themeVariables': { 'fontSize': '14px'}}}%%
sequenceDiagram
participant U as User
participant R as Research Controller
participant T as Tavily API
participant G as Gemini API
U->>R: Submit Query
R->>T: Execute Search
T-->>R: Raw Results
R->>G: Process & Synthesize
G-->>R: Final Results
R->>U: Return Response
%%{init: {'theme': 'dark', 'themeVariables': { 'fontSize': '14px'}}}%%
graph LR
A[Query Input] --> B[Validation]
B --> C[Research]
C --> D[Synthesis]
D --> E[Results]
-
Basic Research Mode
- Quick surface-level analysis
- Key points extraction
- Summary generation
-
Advanced Research Mode
- In-depth analysis
- Comprehensive data gathering
- Detailed synthesis
- Query validation and preprocessing
- Multi-source research integration
- AI-powered synthesis
- Result caching and optimization
- Structured data format
- History tracking
- Cache management
- Error handling
class Settings(BaseSettings):
# API Keys
tavily_api_key: SecretStr
google_api_key: SecretStr
# Research Settings
max_results_per_query: int = 10
search_depth: SearchDepth = SearchDepth.BASIC
max_retries: int = 3
# Session Info
current_timestamp: datetime = "2025-02-28 13:45:49"
current_user: str = "srikrishnavansi"%%{init: {'theme': 'dark', 'themeVariables': { 'fontSize': '14px'}}}%%
graph TD
A[Error Detection] --> B{Error Type}
B -->|API| C[Retry Logic]
B -->|Validation| D[User Feedback]
B -->|System| E[Logging]
C --> F[Resolution]
D --> F
E --> F
- Python 3.8+
- Required APIs:
- Tavily Search API
- Google Gemini API
- RAM: 4GB minimum
- Storage: 1GB minimum
- Stable internet connection
streamlit>=1.24.0
pydantic>=2.0.0
requests>=2.31.0
python-dotenv>=1.0.0
✅ Core research functionality ✅ API integrations ✅ Basic synthesis ✅ Error handling
🔄 Advanced caching 🔄 Multiple research strategies 🔄 Performance optimization
📅 Machine learning integration 📅 Custom research templates 📅 Advanced analytics
deep_research/
├── app.py # Main application
├── config.py # Configuration
├── static/ # Static assets
├── agents/ # Core agents
│ ├── research_agent.py
│ └── synthesis_agent.py
├── models/ # Data models
├── utils/ # Utilities
├── requirements.txt
└── README.md
- Clone the repository
- Create .env file:
TAVILY_API_KEY=your-tavily-api-key
GOOGLE_API_KEY=your-google-api-key
- Install dependencies:
pip install -r requirements.txt- Run the application:
streamlit run app.pyDetailed documentation available for:
- API Integration
- Research Strategies
- Data Models
- Error Handling
- Cache Management
- Results Processing
Please refer to CONTRIBUTING.md for:
- Code standards
- Pull request process
- Development guidelines