mirror of
https://github.com/langchain-ai/langgraphjs.git
synced 2026-07-22 09:05:28 -04:00
feat(api): match /assistants search parameters, pagination (#1679)
Co-authored-by: David Duong <david@duong.cz>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@langchain/langgraph-api": patch
|
||||
---
|
||||
|
||||
Add support for `sort_by`, `sort_order` and `select` when searching for assistants and add support for pagination headers.
|
||||
@@ -80,16 +80,38 @@ api.post(
|
||||
metadata: payload.metadata,
|
||||
limit: payload.limit ?? 10,
|
||||
offset: payload.offset ?? 0,
|
||||
sort_by: payload.sort_by,
|
||||
sort_order: payload.sort_order,
|
||||
select: payload.select,
|
||||
},
|
||||
c.var.auth
|
||||
)) {
|
||||
result.push(item.assistant);
|
||||
result.push(
|
||||
Object.fromEntries(
|
||||
Object.entries(item.assistant).filter(
|
||||
([k]) => !payload.select || payload.select.includes(k)
|
||||
)
|
||||
)
|
||||
);
|
||||
if (total === 0) {
|
||||
total = item.total;
|
||||
}
|
||||
}
|
||||
|
||||
c.res.headers.set("X-Pagination-Total", total.toString());
|
||||
if (total === payload.limit) {
|
||||
c.res.headers.set(
|
||||
"X-Pagination-Next",
|
||||
((payload.offset ?? 0) + total).toString()
|
||||
);
|
||||
c.res.headers.set(
|
||||
"X-Pagination-Total",
|
||||
((payload.offset ?? 0) + total + 1).toString()
|
||||
);
|
||||
} else {
|
||||
c.res.headers.set(
|
||||
"X-Pagination-Total",
|
||||
((payload.offset ?? 0) + total).toString()
|
||||
);
|
||||
}
|
||||
return c.json(result);
|
||||
}
|
||||
);
|
||||
|
||||
@@ -296,6 +296,11 @@ export const AssistantSearchRequest = z
|
||||
.gte(0)
|
||||
.describe("Offset to start from.")
|
||||
.optional(),
|
||||
sort_by: z
|
||||
.enum(["assistant_id", "graph_id", "created_at", "updated_at", "name"])
|
||||
.optional(),
|
||||
sort_order: z.enum(["asc", "desc"]).optional(),
|
||||
select: z.array(z.string()).optional(),
|
||||
})
|
||||
.describe("Payload for listing assistants.");
|
||||
|
||||
|
||||
@@ -390,6 +390,14 @@ export interface AssistantsRepo {
|
||||
metadata?: Metadata;
|
||||
limit: number;
|
||||
offset: number;
|
||||
sort_by?:
|
||||
| "assistant_id"
|
||||
| "created_at"
|
||||
| "updated_at"
|
||||
| "name"
|
||||
| "graph_id";
|
||||
sort_order?: "asc" | "desc";
|
||||
select?: string[];
|
||||
},
|
||||
auth: AuthContext | undefined
|
||||
): AsyncGenerator<{ assistant: Assistant; total: number }>;
|
||||
|
||||
Reference in New Issue
Block a user