mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-12-16 16:48:14 +00:00
feat(actions-registry): add sources, update web search to become active on web
This commit is contained in:
@@ -5,6 +5,7 @@ import {
|
|||||||
ClassifierOutput,
|
ClassifierOutput,
|
||||||
ResearchAction,
|
ResearchAction,
|
||||||
SearchAgentConfig,
|
SearchAgentConfig,
|
||||||
|
SearchSources,
|
||||||
} from '../../types';
|
} from '../../types';
|
||||||
|
|
||||||
class ActionRegistry {
|
class ActionRegistry {
|
||||||
@@ -22,6 +23,7 @@ class ActionRegistry {
|
|||||||
classification: ClassifierOutput;
|
classification: ClassifierOutput;
|
||||||
fileIds: string[];
|
fileIds: string[];
|
||||||
mode: SearchAgentConfig['mode'];
|
mode: SearchAgentConfig['mode'];
|
||||||
|
sources: SearchSources[];
|
||||||
}): ResearchAction[] {
|
}): ResearchAction[] {
|
||||||
return Array.from(
|
return Array.from(
|
||||||
this.actions.values().filter((action) => action.enabled(config)),
|
this.actions.values().filter((action) => action.enabled(config)),
|
||||||
@@ -32,6 +34,7 @@ class ActionRegistry {
|
|||||||
classification: ClassifierOutput;
|
classification: ClassifierOutput;
|
||||||
fileIds: string[];
|
fileIds: string[];
|
||||||
mode: SearchAgentConfig['mode'];
|
mode: SearchAgentConfig['mode'];
|
||||||
|
sources: SearchSources[];
|
||||||
}): Tool[] {
|
}): Tool[] {
|
||||||
const availableActions = this.getAvailableActions(config);
|
const availableActions = this.getAvailableActions(config);
|
||||||
|
|
||||||
@@ -46,6 +49,7 @@ class ActionRegistry {
|
|||||||
classification: ClassifierOutput;
|
classification: ClassifierOutput;
|
||||||
fileIds: string[];
|
fileIds: string[];
|
||||||
mode: SearchAgentConfig['mode'];
|
mode: SearchAgentConfig['mode'];
|
||||||
|
sources: SearchSources[];
|
||||||
}): string {
|
}): string {
|
||||||
const availableActions = this.getAvailableActions(config);
|
const availableActions = this.getAvailableActions(config);
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ const webSearchAction: ResearchAction<typeof actionSchema> = {
|
|||||||
return prompt;
|
return prompt;
|
||||||
},
|
},
|
||||||
enabled: (config) =>
|
enabled: (config) =>
|
||||||
|
config.sources.includes('web') &&
|
||||||
config.classification.classification.skipSearch === false,
|
config.classification.classification.skipSearch === false,
|
||||||
execute: async (input, additionalConfig) => {
|
execute: async (input, additionalConfig) => {
|
||||||
input.queries = input.queries.slice(0, 3);
|
input.queries = input.queries.slice(0, 3);
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ class Researcher {
|
|||||||
classification: input.classification,
|
classification: input.classification,
|
||||||
fileIds: input.config.fileIds,
|
fileIds: input.config.fileIds,
|
||||||
mode: input.config.mode,
|
mode: input.config.mode,
|
||||||
|
sources: input.config.sources,
|
||||||
});
|
});
|
||||||
|
|
||||||
const availableActionsDescription =
|
const availableActionsDescription =
|
||||||
@@ -30,6 +31,7 @@ class Researcher {
|
|||||||
classification: input.classification,
|
classification: input.classification,
|
||||||
fileIds: input.config.fileIds,
|
fileIds: input.config.fileIds,
|
||||||
mode: input.config.mode,
|
mode: input.config.mode,
|
||||||
|
sources: input.config.sources,
|
||||||
});
|
});
|
||||||
|
|
||||||
const researchBlockId = crypto.randomUUID();
|
const researchBlockId = crypto.randomUUID();
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ export interface ResearchAction<
|
|||||||
classification: ClassifierOutput;
|
classification: ClassifierOutput;
|
||||||
fileIds: string[];
|
fileIds: string[];
|
||||||
mode: SearchAgentConfig['mode'];
|
mode: SearchAgentConfig['mode'];
|
||||||
|
sources: SearchSources[];
|
||||||
}) => boolean;
|
}) => boolean;
|
||||||
execute: (
|
execute: (
|
||||||
params: z.infer<TSchema>,
|
params: z.infer<TSchema>,
|
||||||
|
|||||||
Reference in New Issue
Block a user