fix(sdk): removing deprecating param from our sdk and docs changes with it (#4740)

This commit is contained in:
Kartik
2026-04-12 00:34:58 +05:30
committed by GitHub
parent 3882af7450
commit e44b46ef2e
138 changed files with 1186 additions and 2840 deletions
+16 -102
View File
@@ -1,6 +1,6 @@
---
title: Advanced Retrieval
description: "Advanced memory search with keyword expansion, intelligent reranking, and precision filtering"
description: "Advanced memory search with intelligent reranking for precise results"
---
## What is Advanced Retrieval?
@@ -9,40 +9,6 @@ Advanced Retrieval gives you precise control over how memories are found and ran
## Search Enhancement Options
### Keyword Search
Expands results to include memories with specific terms, names, and technical keywords.
<Tabs>
<Tab title="When to Use">
- Searching for specific entities, names, or technical terms
- Need comprehensive coverage of a topic
- Want broader recall even if some results are less relevant
- Working with domain-specific terminology
</Tab>
<Tab title="How it Works">
```python Python
# Find memories containing specific food-related terms
results = client.search(
query="What foods should I avoid?",
keyword_search=True,
user_id="user123"
)
# Results might include:
# ✓ "Allergic to peanuts and shellfish"
# ✓ "Lactose intolerant - avoid dairy"
# ✓ "Mentioned avoiding gluten last week"
```
</Tab>
<Tab title="Performance">
- **Latency**: ~10ms additional
- **Recall**: Significantly increased
- **Precision**: Slightly decreased
- **Best for**: Entity search, comprehensive coverage
</Tab>
</Tabs>
### Reranking
Reorders results using deep semantic understanding to put the most relevant memories first.
@@ -77,41 +43,6 @@ results = client.search(
</Tab>
</Tabs>
### Memory Filtering
Filters results to keep only the most precisely relevant memories.
<Tabs>
<Tab title="When to Use">
- Need highly specific, focused results
- Working with large datasets where noise is problematic
- Quality over quantity is essential
- Building production or safety-critical applications
</Tab>
<Tab title="How it Works">
```python Python
# Get only the most relevant dietary restrictions
results = client.search(
query="What are my dietary restrictions?",
filter_memories=True,
user_id="user123"
)
# Before filtering: After filtering:
# • "Allergic to nuts" → • "Allergic to nuts"
# • "Likes Italian food" → • "Vegetarian diet"
# • "Vegetarian diet" →
# • "Eats dinner at 7pm" →
```
</Tab>
<Tab title="Performance">
- **Latency**: 200-300ms additional
- **Precision**: Maximized
- **Recall**: May be reduced
- **Best for**: Focused queries, production systems
</Tab>
</Tabs>
## Real-World Use Cases
<Tabs>
@@ -120,7 +51,6 @@ results = client.search(
# Smart home assistant finding device preferences
results = client.search(
query="How do I like my bedroom temperature?",
keyword_search=True, # Find specific temperature mentions
rerank=True, # Get most recent preferences first
user_id="user123"
)
@@ -133,8 +63,6 @@ results = client.search(
# Find specific product issues with high precision
results = client.search(
query="Problems with premium subscription billing",
keyword_search=True, # Find "premium", "billing", "subscription"
filter_memories=True, # Only billing-related issues
user_id="customer456"
)
@@ -147,11 +75,10 @@ results = client.search(
results = client.search(
query="Patient allergies and contraindications",
rerank=True, # Most important info first
filter_memories=True, # Only medical restrictions
user_id="patient789"
)
# Ensures critical allergy info appears first and filters out non-medical data
# Ensures critical allergy info appears first
```
</Tab>
<Tab title="Learning Platform">
@@ -159,7 +86,6 @@ results = client.search(
# Find learning progress for specific topics
results = client.search(
query="Python programming progress and difficulties",
keyword_search=True, # Find "Python", "programming", specific concepts
rerank=True, # Recent progress first
user_id="student123"
)
@@ -169,63 +95,57 @@ results = client.search(
</Tab>
</Tabs>
## Choosing the Right Combination
## Choosing the Right Configuration
### Recommended Configurations
<CodeGroup>
```python Python
# Fast and broad - good for exploration
# Basic search - good for exploration
def quick_search(query, user_id):
return client.search(
query=query,
keyword_search=True,
user_id=user_id
)
# Balanced - good for most applications
# Reranked search - good for most applications
def standard_search(query, user_id):
return client.search(
query=query,
keyword_search=True,
rerank=True,
user_id=user_id
)
# High precision - good for critical applications
# Reranked search - good for critical applications
def precise_search(query, user_id):
return client.search(
query=query,
rerank=True,
filter_memories=True,
user_id=user_id
)
```
```javascript JavaScript
// Fast and broad - good for exploration
// Basic search - good for exploration
function quickSearch(query, userId) {
return client.search(query, {
user_id: userId,
keyword_search: true
user_id: userId
});
}
// Balanced - good for most applications
// Reranked search - good for most applications
function standardSearch(query, userId) {
return client.search(query, {
user_id: userId,
keyword_search: true,
rerank: true
});
}
// High precision - good for critical applications
// Reranked search - good for critical applications
function preciseSearch(query, userId) {
return client.search(query, {
user_id: userId,
rerank: true,
filter_memories: true
rerank: true
});
}
```
@@ -235,19 +155,15 @@ function preciseSearch(query, userId) {
### Do
- Start simple with just one enhancement and measure impact
- Use keyword search for entity-heavy queries (names, places, technical terms)
- Start simple with basic search and measure impact before enabling reranking
- Use reranking when the top result quality matters most
- Use filtering for production systems where precision is critical
- Handle empty results gracefully when filtering is too aggressive
- Monitor latency and adjust based on your application's needs
- Handle empty results gracefully
### Don't
- Enable all options by default without measuring necessity
- Use filtering for broad exploratory queries
- Enable reranking by default without measuring necessity
- Ignore latency impact in real-time applications
- Forget to handle cases where filtering returns no results
- Use advanced retrieval for simple, fast lookup scenarios
## Performance Guidelines
@@ -261,20 +177,18 @@ import time
start_time = time.time()
results = client.search(
query="user preferences",
keyword_search=True, # +10ms
rerank=True, # +150ms
filter_memories=True, # +250ms
user_id="user123"
)
latency = time.time() - start_time
print(f"Search completed in {latency:.2f}s") # ~0.41s expected
print(f"Search completed in {latency:.2f}s")
```
### Optimization Tips
1. **Cache frequent queries** to avoid repeated advanced processing
2. **Use session-specific search** with `run_id` to reduce search space
3. **Implement fallback logic** when filtering returns empty results
3. **Implement fallback logic** when search returns empty results
4. **Monitor and alert** on search latency patterns
<Snippet file="get-help.mdx" />