wired in project isolation
This commit is contained in:
@@ -115,6 +115,24 @@ async function deleteProject(id) {
|
||||
if (!res.ok) throw new Error(`Failed to delete project: ${res.status}`);
|
||||
}
|
||||
|
||||
async function getProjectSessions(projectId) {
|
||||
const url = new URL(`${BASE_URL}/sessions`);
|
||||
url.searchParams.set('limit', 200); // generous upper bound
|
||||
url.searchParams.set('offset', 0);
|
||||
url.searchParams.set('projectId', projectId);
|
||||
|
||||
const res = await fetch(url.toString());
|
||||
if (!res.ok) throw new Error(`Failed to fetch project sessions: ${res.status}`);
|
||||
return res.json(); // returns array of session objects
|
||||
}
|
||||
|
||||
async function getProject(id) {
|
||||
const res = await fetch(`${BASE_URL}/projects/${id}`);
|
||||
if (res.status === 404) return null;
|
||||
if (!res.ok) throw new Error(`Failed to fetch project: ${res.status}`);
|
||||
return res.json();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getSessionByExternalId,
|
||||
createSession,
|
||||
@@ -129,4 +147,6 @@ module.exports = {
|
||||
getProjects,
|
||||
updateProject,
|
||||
deleteProject,
|
||||
getProjectSessions,
|
||||
getProject,
|
||||
}
|
||||
@@ -2,10 +2,16 @@ const {getEnv, QDRANT, COLLECTIONS, ORCHESTRATION } = require('@nexusai/shared')
|
||||
|
||||
const BASE_URL = getEnv('QDRANT_URL', QDRANT.DEFAULT_URL);
|
||||
|
||||
async function searchEpisodes( vector, {limit = ORCHESTRATION.RECENT_EPISODE_LIMIT, scoreThreshold = ORCHESTRATION.SCORE_THRESHOLD, sessionId } = {}) {
|
||||
async function searchEpisodes( vector, {limit = ORCHESTRATION.RECENT_EPISODE_LIMIT, scoreThreshold = ORCHESTRATION.SCORE_THRESHOLD, sessionId, projectSessionIds } = {}) {
|
||||
const body = {vector, limit, score_threshold: scoreThreshold, with_payload: true};
|
||||
|
||||
if (sessionId) {
|
||||
if(projectSessionIds) {
|
||||
body.filter = {
|
||||
should: projectSessionIds.map(id => ({
|
||||
key: 'sessionId', match: { value: id }
|
||||
}))
|
||||
};
|
||||
} else if (sessionId) {
|
||||
body.filter = { must: [{key: 'sessionId', match: {value: sessionId} }] };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user