Spaces:
Sleeping
Search Optimization Features
Overview
Atlas includes an intelligent search optimization system that automatically determines when web searches are necessary, reducing unnecessary searches by 40-60% while maintaining high response quality. This results in faster responses, lower costs, and better conversation flow.
How It Works
Smart Decision Engine
Atlas uses a sophisticated hybrid system to decide when to search:
User Question β Analyze Context β Make Decision β Respond
β β β β
"Tell me more" β Has history? β Skip search β Use history
"Latest news" β No context β Perform search β Web + AI
Two-Phase Analysis
Fast Rule-Based Patterns (< 1ms)
- Detects follow-up questions ("tell me more", "elaborate")
- Identifies referential questions ("what about that?")
- Recognizes clarification requests ("what do you mean?")
AI-Powered Analysis (for ambiguous cases)
- Deep semantic understanding using Google Gemini
- Context sufficiency assessment
- Information recency requirements
Key Features
π§ Intelligent Pattern Recognition
Follow-up Questions: Automatically detected
- "Tell me more about that"
- "Can you elaborate?"
- "Explain that better"
- "What else should I know?"
Referential Questions: Context-aware
- "How does this work?"
- "What about the previous point?"
- "Can you expand on it?"
New Information Requests: Always searched
- "Latest news about AI"
- "Current stock prices"
- "What happened today?"
β‘ Context-Aware Request Flow
First Message (No History):
- Cache-first approach for performance
- Check vector database for similar queries
- Search only if no relevant cached results
Follow-up Messages (Has History):
- Analyze conversation context first
- Search only when new information needed
- Leverage existing conversation knowledge
ποΈ ChromaDB Vector Caching
Semantic Similarity Matching:
- Finds similar queries even with different wording
- "machine learning basics" matches "intro to ML"
- Persistent storage across server restarts
Performance Benefits:
- Instant responses for cached queries
- Reduced API costs and latency
- Automatic cache cleanup and management
Configuration Options
Search Decision Modes
Control how aggressively the system searches:
Conservative Mode
{
"prompt": "Tell me about AI",
"search_decision_mode": "conservative"
}
- Behavior: Strongly prefers conversation history
- Use Case: Follow-up heavy conversations, cost optimization
- Search Reduction: ~60-70%
Balanced Mode (Default)
{
"prompt": "Tell me about AI",
"search_decision_mode": "balanced"
}
- Behavior: Smart balance between search and history
- Use Case: General purpose usage
- Search Reduction: ~40-50%
Aggressive Mode
{
"prompt": "Tell me about AI",
"search_decision_mode": "aggressive"
}
- Behavior: Prefers fresh web search results
- Use Case: News, current events, frequently changing topics
- Search Reduction: ~20-30%
Force Search Override
Complete control over search behavior:
{
"prompt": "What is 2+2?",
"force_search": true
}
Values:
true: Always search, ignore optimizationfalse: Never search, use only conversation historynull(default): Use intelligent optimization
Usage Examples
Basic Usage
Let the system optimize automatically:
curl -X POST /chat -d '{
"prompt": "What is machine learning?"
}'
# System will search (no conversation history)
curl -X POST /chat -d '{
"prompt": "Tell me more about neural networks",
"history": [
{"role": "user", "content": "What is machine learning?"},
{"role": "assistant", "content": "Machine learning is..."}
]
}'
# System will likely skip search (elaboration request)
Advanced Configuration
Conservative approach for cost optimization:
const response = await fetch('/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
prompt: "Can you explain that concept better?",
search_decision_mode: "conservative",
history: conversationHistory
})
});
Aggressive approach for current events:
const response = await fetch('/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
prompt: "What are today's tech headlines?",
search_decision_mode: "aggressive"
})
});
Force search for specific needs:
const response = await fetch('/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
prompt: "Company internal policy on remote work",
force_search: true // Ensure fresh search
})
});
Response Information
Search Decision Details
Every response includes detailed search decision information:
{
"response": "Neural networks are...",
"search_decision": {
"should_search": false,
"reason": "Elaboration request with sufficient context",
"confidence": 0.85,
"decision_method": "rule_based"
},
"cache_info": {
"cache_hit": false,
"flow_type": "search_decision_skip"
}
}
search_decision fields:
should_search: Final decision madereason: Human-readable explanationconfidence: Decision confidence (0.0-1.0)decision_method: "rule_based", "hybrid", or "fallback"
cache_info fields:
cache_hit: Whether results came from cacheflow_type: Request processing flow usedcache_type: Caching system used (e.g., "chromadb_vector")
Flow Types
Cache-First Flows (No conversation history):
cache_first_hit: Found cached resultscache_first_miss: No cache, performed search
Search-Decision-First Flows (Has conversation history):
search_decision_skip: Smart system skipped searchsearch_decision_cache_hit: Decided to search, found in cachesearch_decision_cache_miss: Decided to search, performed web search
Performance Benefits
Response Time Improvements
Cached Responses: < 200ms
- Instant retrieval from ChromaDB
- No web search delays
- No API rate limiting
Skipped Searches: < 500ms
- Fast rule-based decisions (< 1ms)
- Direct conversation history usage
- No external API calls
Regular Searches: 2-5 seconds
- Only when truly needed
- Fresh information guaranteed
- Full web search capabilities
Cost Optimization
API Call Reduction:
- Search API calls: -40 to -60%
- AI model calls: Optimized caching
- Rate limit utilization: More efficient
Resource Usage:
- Server CPU: Reduced search processing
- Network bandwidth: Fewer external requests
- Storage: Efficient vector caching
Best Practices
For Different Use Cases
Customer Support Chatbots:
{
"search_decision_mode": "conservative",
"force_search": false
}
- Rely heavily on conversation context
- Minimize external searches for common questions
- Use aggressive mode only for account-specific queries
News and Information Services:
{
"search_decision_mode": "aggressive",
"force_search": null
}
- Prioritize fresh information
- Let system decide on follow-up questions
- Cache recent searches for popular topics
Educational Applications:
{
"search_decision_mode": "balanced",
"force_search": null
}
- Balance between comprehensive info and follow-ups
- Trust the system's optimization
- Use force_search for specific research needs
Conversation Design
Effective Follow-ups (will skip search):
- "Can you explain that in simpler terms?"
- "What are some examples of this?"
- "How does this relate to what we discussed?"
New Topic Indicators (will trigger search):
- "Now tell me about [different topic]"
- "What's the latest on [topic]?"
- "I have a question about [new subject]"
Monitoring and Analytics
Cache Performance
Check cache effectiveness at /analytics/cache:
{
"cache_statistics": {
"hit_rate_percentage": 65.4,
"cache_size": 1250,
"memory_usage_mb": 45.2
},
"cache_effectiveness": "High"
}
Search Decision Analytics
View optimization impact at /analytics/dashboard:
- Search reduction percentage
- Response time improvements
- Decision accuracy metrics
- Cache hit rates over time
Individual Query Analysis
Each response includes optimization details for monitoring:
// Log search decisions for analysis
console.log(`Decision: ${response.search_decision.should_search}`);
console.log(`Reason: ${response.search_decision.reason}`);
console.log(`Confidence: ${response.search_decision.confidence}`);
console.log(`Cache hit: ${response.cache_info.cache_hit}`);
Troubleshooting
Common Issues
Too Many Searches:
- Use "conservative" mode
- Check conversation history format
- Verify follow-up question patterns
Missing Information:
- Use "aggressive" mode for current events
- Check cache expiration settings
- Use force_search for critical updates
Slow Responses:
- Monitor cache hit rates
- Check ChromaDB performance
- Verify conversation history size
Performance Optimization
For High Traffic:
- Use conservative mode to maximize cache hits
- Implement client-side conversation management
- Monitor cache performance metrics
For Accuracy:
- Use aggressive mode for dynamic content
- Implement domain-specific force_search logic
- Monitor false negative rates
Advanced Features
Custom Integration Patterns
Progressive Enhancement:
class SmartChatClient {
constructor() {
this.mode = "balanced"; // Start balanced
}
// Adapt based on conversation type
setContextMode(conversationType) {
switch(conversationType) {
case "support": this.mode = "conservative"; break;
case "news": this.mode = "aggressive"; break;
default: this.mode = "balanced";
}
}
}
Domain-Specific Rules:
function getSearchMode(prompt) {
if (prompt.includes("latest") || prompt.includes("current")) {
return "aggressive";
}
if (prompt.includes("explain") || prompt.includes("clarify")) {
return "conservative";
}
return "balanced";
}
Integration with Analytics
Track Optimization Impact:
// Monitor search reduction
const searchReduction = (totalRequests - actualSearches) / totalRequests;
// Track response time improvements
const avgResponseTime = responseTimes.reduce((a, b) => a + b) / responseTimes.length;
// Measure user satisfaction
const satisfactionScore = positiveResponses / totalResponses;
Future Enhancements
Planned Features
- User Learning: Personalized optimization based on usage patterns
- Domain Adaptation: Industry-specific optimization rules
- Multimodal Context: Support for image and document context
- Real-time Adaptation: Dynamic threshold adjustment based on performance
Feedback and Improvement
The search optimization system continuously improves based on:
- Usage patterns: Common conversation flows
- Performance metrics: Response times and accuracy
- User feedback: Explicit and implicit satisfaction signals
- Cache effectiveness: Hit rates and relevance scoring
The search optimization system makes Atlas smarter, faster, and more cost-effective while maintaining the high-quality responses users expect. By intelligently determining when fresh information is needed versus when conversation history suffices, Atlas provides an optimal balance of performance and accuracy.