mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-08-28 05:25:33 +00:00
472 lines
12 KiB
Text
472 lines
12 KiB
Text
---
|
|
title: "Memories Search (/v4/search)"
|
|
description: "Minimal-latency search optimized for chatbots and conversational AI"
|
|
---
|
|
|
|
|
|
Memories search (`POST /v4/search`) provides minimal-latency search optimized for real-time interactions. This endpoint prioritizes speed over extensive control, making it perfect for chatbots, Q&A systems, and any application where users expect immediate responses.
|
|
|
|
## Basic Search
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
import Supermemory from 'supermemory';
|
|
|
|
const client = new Supermemory({
|
|
apiKey: process.env.SUPERMEMORY_API_KEY!
|
|
});
|
|
|
|
const results = await client.search.memories({
|
|
q: "machine learning applications",
|
|
limit: 5
|
|
});
|
|
|
|
console.log(results)
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
from supermemory import Supermemory
|
|
import os
|
|
|
|
client = Supermemory(api_key=os.environ.get("SUPERMEMORY_API_KEY"))
|
|
|
|
results = client.search.memories(
|
|
q="machine learning applications",
|
|
limit=5
|
|
)
|
|
|
|
console.log(results)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "machine learning applications",
|
|
"limit": 5
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
**Sample Output:**
|
|
```json
|
|
{
|
|
"results": [
|
|
{
|
|
"id": "mem_ml_apps_2024",
|
|
"memory": "Machine learning applications span numerous industries including healthcare (diagnostic imaging, drug discovery), finance (fraud detection, algorithmic trading), autonomous vehicles (computer vision, path planning), and natural language processing (chatbots, translation services).",
|
|
"similarity": 0.92,
|
|
"title": "Machine Learning Industry Applications",
|
|
"type": "text",
|
|
"metadata": {
|
|
"topic": "machine-learning",
|
|
"industry": "technology",
|
|
"created": "2024-01-10"
|
|
}
|
|
},
|
|
{
|
|
"id": "mem_ml_healthcare",
|
|
"memory": "In healthcare, machine learning enables early disease detection through medical imaging analysis, personalized treatment recommendations, and drug discovery acceleration by predicting molecular behavior.",
|
|
"similarity": 0.89,
|
|
"title": "ML in Healthcare",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"total": 8,
|
|
"timing": 87
|
|
}
|
|
```
|
|
|
|
## Container Tag Filtering
|
|
|
|
Filter by user, project, or organization:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
const results = await client.search.memories({
|
|
q: "project updates",
|
|
containerTag: "user_123", // Note: singular, not plural
|
|
limit: 10
|
|
});
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
results = client.search.memories(
|
|
q="project updates",
|
|
container_tag="user_123", # Note: singular, not plural
|
|
limit=10
|
|
)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "project updates",
|
|
"containerTag": "user_123",
|
|
"limit": 10
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Threshold Control
|
|
|
|
Control result quality with similarity threshold:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
const results = await client.search.memories({
|
|
q: "artificial intelligence research",
|
|
threshold: 0.7, // Higher = fewer, more similar results
|
|
limit: 10
|
|
});
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
results = client.search.memories(
|
|
q="artificial intelligence research",
|
|
threshold=0.7, # Higher = fewer, more similar results
|
|
limit=10
|
|
)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "artificial intelligence research",
|
|
"threshold": 0.7,
|
|
"limit": 10
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Reranking
|
|
|
|
Improve result quality with secondary ranking:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
const results = await client.search.memories({
|
|
q: "quantum computing breakthrough",
|
|
rerank: true, // Better relevance, slight latency increase
|
|
limit: 5
|
|
});
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
results = client.search.memories(
|
|
q="quantum computing breakthrough",
|
|
rerank=True, # Better relevance, slight latency increase
|
|
limit=5
|
|
)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "quantum computing breakthrough",
|
|
"rerank": true,
|
|
"limit": 5
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Query Rewriting
|
|
|
|
Improve search accuracy with automatic query expansion:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
const results = await client.search.memories({
|
|
q: "How do neural networks learn?",
|
|
rewriteQuery: true, // +400ms latency but better results
|
|
limit: 5
|
|
});
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
results = client.search.memories(
|
|
q="How do neural networks learn?",
|
|
rewrite_query=True, # +400ms latency but better results
|
|
limit=5
|
|
)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "How do neural networks learn?",
|
|
"rewriteQuery": true,
|
|
"limit": 5
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Include Related Content
|
|
|
|
Include documents, related memories, and summaries:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
const results = await client.search.memories({
|
|
q: "machine learning trends",
|
|
include: {
|
|
documents: true, // Include source documents
|
|
relatedMemories: true, // Include related memory entries
|
|
summaries: true // Include memory summaries
|
|
},
|
|
limit: 5
|
|
});
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
results = client.search.memories(
|
|
q="machine learning trends",
|
|
include={
|
|
"documents": True, # Include source documents
|
|
"relatedMemories": True, # Include related memory entries
|
|
"summaries": True # Include memory summaries
|
|
},
|
|
limit=5
|
|
)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "machine learning trends",
|
|
"include": {
|
|
"documents": true,
|
|
"relatedMemories": true,
|
|
"summaries": true
|
|
},
|
|
"limit": 5
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Metadata Filtering
|
|
|
|
Simple metadata filtering for Memories search:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
const results = await client.search.memories({
|
|
q: "research findings",
|
|
filters: {
|
|
AND: [
|
|
{ key: "category", value: "science", negate: false },
|
|
{ key: "status", value: "published", negate: false }
|
|
]
|
|
},
|
|
limit: 10
|
|
});
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
results = client.search.memories(
|
|
q="research findings",
|
|
filters={
|
|
"AND": [
|
|
{"key": "category", "value": "science", "negate": False},
|
|
{"key": "status", "value": "published", "negate": False}
|
|
]
|
|
},
|
|
limit=10
|
|
)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "research findings",
|
|
"filters": {
|
|
"AND": [
|
|
{"key": "category", "value": "science", "negate": false},
|
|
{"key": "status", "value": "published", "negate": false}
|
|
]
|
|
},
|
|
"limit": 10
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Chatbot Example
|
|
|
|
Optimal configuration for conversational AI:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
// Optimized for chatbot responses
|
|
const results = await client.search.memories({
|
|
q: userMessage,
|
|
containerTag: userId,
|
|
threshold: 0.6, // Balanced relevance
|
|
rerank: false, // Skip for speed
|
|
rewriteQuery: false, // Skip for speed
|
|
limit: 3 // Few, relevant results
|
|
});
|
|
|
|
// Quick response for chat
|
|
const context = results.results
|
|
.map(r => r.memory)
|
|
.join('\n\n');
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
# Optimized for chatbot responses
|
|
results = client.search.memories(
|
|
q=user_message,
|
|
container_tag=user_id,
|
|
threshold=0.6, # Balanced relevance
|
|
rerank=False, # Skip for speed
|
|
rewrite_query=False, # Skip for speed
|
|
limit=3 # Few, relevant results
|
|
)
|
|
|
|
# Quick response for chat
|
|
context = '\n\n'.join([r.memory for r in results.results])
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
# Optimized for chatbot responses
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "user question here",
|
|
"containerTag": "user_123",
|
|
"threshold": 0.6,
|
|
"rerank": false,
|
|
"rewriteQuery": false,
|
|
"limit": 3
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Complete Memories Search Example
|
|
|
|
Combining features for comprehensive results:
|
|
|
|
<Tabs>
|
|
<Tab title="TypeScript">
|
|
```typescript
|
|
const results = await client.search.memories({
|
|
q: "machine learning model performance",
|
|
containerTag: "research_team",
|
|
filters: {
|
|
AND: [
|
|
{ key: "topic", value: "ai", negate: false }
|
|
]
|
|
},
|
|
threshold: 0.7,
|
|
rerank: true,
|
|
rewriteQuery: false, // Skip for speed
|
|
include: {
|
|
documents: true,
|
|
relatedMemories: false,
|
|
summaries: true
|
|
},
|
|
limit: 5
|
|
});
|
|
```
|
|
</Tab>
|
|
<Tab title="Python">
|
|
```python
|
|
results = client.search.memories(
|
|
q="machine learning model performance",
|
|
container_tag="research_team",
|
|
filters={
|
|
"AND": [
|
|
{"key": "topic", "value": "ai", "negate": False}
|
|
]
|
|
},
|
|
threshold=0.7,
|
|
rerank=True,
|
|
rewrite_query=False, # Skip for speed
|
|
include={
|
|
"documents": True,
|
|
"relatedMemories": False,
|
|
"summaries": True
|
|
},
|
|
limit=5
|
|
)
|
|
```
|
|
</Tab>
|
|
<Tab title="cURL">
|
|
```bash
|
|
curl -X POST "https://api.supermemory.ai/v4/search" \
|
|
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"q": "machine learning model performance",
|
|
"containerTag": "research_team",
|
|
"filters": {
|
|
"AND": [
|
|
{"key": "topic", "value": "ai", "negate": false}
|
|
]
|
|
},
|
|
"threshold": 0.7,
|
|
"rerank": true,
|
|
"rewriteQuery": false,
|
|
"include": {
|
|
"documents": true,
|
|
"relatedMemories": false,
|
|
"summaries": true
|
|
},
|
|
"limit": 5
|
|
}'
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Comon Use Cases
|
|
|
|
- **Chatbots**: Basic search with container tag and low threshold
|
|
- **Q&A Systems**: Add reranking for better relevance
|
|
- **Knowledge Retrieval**: Include documents and summaries
|
|
- **Real-time Search**: Skip rewriting and reranking for maximum speed
|