The Tasks API is an interface for managing background tasks such as reindexing and edge regeneration.
Overview
const client = new NdxClient({
apiKey: process.env.NEURADEX_API_KEY,
projectId: 'your-project-id',
});
// Access Tasks API
const tasks = await client.tasks.list();
await client.tasks.run('task-id');
Method List
| Method | Description |
|---|
list(options?) | Get task list |
get(taskId) | Get specific task |
run(taskId) | Execute task |
cancel(taskId) | Cancel task |
registerReindex(input) | Register reindex task |
registerEdgeRegeneration(input) | Register edge regeneration task |
Task Types
| Type | Description |
|---|
reindex | Knowledge reindexing (vector regeneration) |
edge_regeneration | Edge regeneration between knowledge |
knowledge_extraction | Knowledge extraction from documents |
source_parse | Source document parsing |
chunking | Text chunking |
enrichment_processing | Knowledge enrichment |
Task Status
| Status | Description |
|---|
pending | Waiting to execute |
in_progress | Currently running |
done | Completed |
failed | Failed |
list()
Get task list.
Parameters
Filter by status: 'pending' | 'in_progress' | 'done' | 'failed'
Number of items to retrieve
Return Value
interface ListTasksResponse {
data: BackgroundTask[];
total: number;
page: number;
limit: number;
}
interface BackgroundTask {
id: string;
type: string;
status: 'pending' | 'in_progress' | 'done' | 'failed';
title: string;
progress: number;
result: object | null;
error: string | null;
createdAt: string;
updatedAt: string;
}
Usage
// Get all tasks
const result = await client.tasks.list();
console.log(`Task count: ${result.total}`);
// Pending tasks only
const pending = await client.tasks.list({ status: 'pending' });
// Reindex tasks only
const reindexTasks = await client.tasks.list({ type: 'reindex' });
run()
Execute a pending task.
Parameters
Usage
const result = await client.tasks.run('task-id');
if (result.success) {
console.log('Task completed successfully');
} else {
console.log('Task failed:', result.error);
}
registerReindex()
Register a knowledge reindex task. Use this to improve vector search accuracy after modifying knowledge content.
Parameters
Usage
// Register reindex task
const task = await client.tasks.registerReindex({
knowledgeId: 'knowledge-id',
title: 'Reindex: Product Manual',
});
console.log(`Task ID: ${task.id}`);
// Execute task
await client.tasks.run(task.id);
registerEdgeRegeneration()
Register a task to regenerate edges (relationships) between knowledge. Use this to update the relationship graph after modifying knowledge.
Parameters
Usage
// Register edge regeneration task
const task = await client.tasks.registerEdgeRegeneration({
knowledgeId: 'knowledge-id',
title: 'Edge Regeneration: Product Manual',
});
// Execute task
await client.tasks.run(task.id);
Use Cases
Reindex After Bulk Update
async function bulkUpdateAndReindex(updates: Array<{id: string, content: string}>) {
const tasks = [];
for (const update of updates) {
// Update knowledge
await client.knowledge.update(update.id, {
content: update.content,
});
// Register reindex task
const task = await client.tasks.registerReindex({
knowledgeId: update.id,
title: `Reindex: ${update.id}`,
});
tasks.push(task);
}
// Execute all tasks
for (const task of tasks) {
await client.tasks.run(task.id);
console.log(`Completed: ${task.title}`);
}
}
Task Progress Monitoring
async function monitorTask(taskId: string) {
while (true) {
const task = await client.tasks.get(taskId);
console.log(`${task.title}: ${task.status} (${task.progress}%)`);
if (task.status === 'done') {
console.log('Task completed:', task.result);
break;
}
if (task.status === 'failed') {
console.error('Task failed:', task.error);
break;
}
// Wait 5 seconds
await new Promise(resolve => setTimeout(resolve, 5000));
}
}
Next Steps
Knowledge API
Knowledge management
Memory API
Context assembly