@smythos/sdk
Version:
37 lines (28 loc) • 1.6 kB
text/typescript
import { AccessCandidate, DEFAULT_TEAM_ID } from '@smythos/sre';
import { HELP } from '../utils/help';
import { TVectorDBProvider, TVectorDBProviderInstances } from '../types/generated/VectorDB.types';
import { Scope } from '../types/SDKTypes';
import { VectorDBInstance } from './VectorDBInstance.class';
const VectorDB: TVectorDBProviderInstances = {} as TVectorDBProviderInstances;
//generate a VectorDB instance entry for every available VectorDB provider
for (const provider of Object.keys(TVectorDBProvider)) {
VectorDB[provider] = (namespace: string, VectorDBSettings?: any, scope?: Scope | AccessCandidate) => {
let candidate: AccessCandidate;
if (typeof scope === 'string') {
let message = `You are trying to use an agent scope in a standalone VectorDB instance.`;
if (scope === Scope.AGENT) {
message += `Use AccessCandidate.agent(agentId) if you want to set an agent scope explicitly.`;
}
if (scope === Scope.TEAM) {
message += `Use AccessCandidate.team(teamId) if you want to set a team scope explicitly.`;
}
message += `\nI will use default team scope in this session. ${HELP.SDK.AGENT_VECTORDB_ACCESS}`;
console.warn(message);
candidate = AccessCandidate.team(DEFAULT_TEAM_ID);
} else {
candidate = scope as AccessCandidate;
}
return new VectorDBInstance(TVectorDBProvider[provider], { ...VectorDBSettings, namespace }, candidate);
};
}
export { VectorDB };