Skip to content
Merged

4000 #4776

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,19 @@ const KnowledgeBaseDocumentChunkEditDialog = ({knowledgeBaseId}: KnowledgeBaseDo
<DialogCloseButton />
</DialogHeader>

<div className="space-y-4 py-4">
<div className="space-y-2">
<Label htmlFor="content">Content</Label>
<div className="space-y-2">
<Label htmlFor="content">Content</Label>

<Textarea
id="content"
onChange={(event) => handleContentChange(event.target.value)}
rows={10}
value={content}
/>
</div>
<Textarea
className="resize-none"
id="content"
onChange={(event) => handleContentChange(event.target.value)}
rows={10}
value={content}
/>
</div>

<DialogFooter>
<DialogFooter className="pt-2">
<Button onClick={handleClose} variant="outline">
Cancel
</Button>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ export function getFilteredClusterElementTypes({

const nestedClusterRootElementTypes = elementTypes[currentClusterElementsType || ''];

if (!nestedClusterRootElementTypes || nestedClusterRootElementTypes.length === 0) {
if (!nestedClusterRootElementTypes) {
return true;
}

Expand All @@ -316,7 +316,7 @@ export function getFilteredClusterElementTypes({

const operationElementTypes = actionTypes[operationName];

if (!operationElementTypes || operationElementTypes.length === 0) {
if (!operationElementTypes) {
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ export default function createClusterElementNodes({
clusterElements: element.clusterElements,
clusterRootId: element.name,
currentRootComponentDefinition: nestedClusterRootDefinition,
nestedClusterRootElementType: clusterElementTypeName,
nestedClusterRootElementType: element.type?.split('/')[2] || clusterElementTypeName,
nestedClusterRootsDefinitions,
});

Expand Down Expand Up @@ -147,7 +147,8 @@ export default function createClusterElementNodes({
clusterElements: clusterElementValue.clusterElements,
clusterRootId: clusterElementValue.name,
currentRootComponentDefinition: nestedClusterRootDefinition,
nestedClusterRootElementType: clusterElementTypeName,
nestedClusterRootElementType:
clusterElementValue.type?.split('/')[2] || clusterElementTypeName,
nestedClusterRootsDefinitions,
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ const WorkflowNode = ({data, id}: {data: NodeDataType; id: string}) => {

return getFilteredClusterElementTypes({
clusterRootComponentDefinition: nestedClusterRootDefinition || mainClusterRootComponentDefinition,
currentClusterElementsType: data.clusterElementType,
currentClusterElementsType: (data.clusterElementName as string) || data.clusterElementType,
isNestedClusterRoot,
operationName: data.operationName,
});
Expand All @@ -598,6 +598,7 @@ const WorkflowNode = ({data, id}: {data: NodeDataType; id: string}) => {
mainClusterRootComponentDefinition,
nestedClusterRootsComponentDefinitions,
data.componentName,
data.clusterElementName,
data.clusterElementType,
data.operationName,
]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ protected QuestionAnswerAdvisor apply(
.builder(
vectorStoreFunction.apply(
ParametersFactory.create(clusterElement.getParameters()),
ParametersFactory.create(componentConnection.getParameters()),
ParametersFactory.create(componentConnection),
ParametersFactory.create(clusterElement.getExtensions()), componentConnections))
.searchRequest(
SearchRequest.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,7 @@ private static Parameters getConnectionParameters(

ComponentConnection componentConnection = componentConnections.get(clusterElement.getWorkflowNodeName());

return ParametersFactory.create(
componentConnection == null ? Map.of() : componentConnection.getParameters());
return ParametersFactory.create(componentConnection);
}

private Advisor getGuardrailsAdvisor(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"actionClusterElementTypes": {
"search": [ "EMBEDDING" ],
"load": [ "DOCUMENT_READER", "DOCUMENT_TRANSFORMER", "EMBEDDING" ]
"load": [ "DOCUMENT_READER", "DOCUMENT_TRANSFORMER", "EMBEDDING" ],
"search": [ "EMBEDDING" ]
},
"actions": [ {
"batch": null,
Expand Down Expand Up @@ -106,7 +106,8 @@
"workflowNodeDescription": null
} ],
"clusterElementClusterElementTypes": {
"vectorStore": [ "EMBEDDING" ]
"vectorStore": [ "EMBEDDING" ],
"search": [ "EMBEDDING" ]
},
"clusterElementTypes": [ {
"name": "DOCUMENT_READER",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,28 @@

import static com.bytechef.component.ai.vectorstore.knowledgebase.constant.KnowledgeBaseVectorStoreConstants.KNOWLEDGE_BASE;
import static com.bytechef.component.definition.ComponentDsl.component;
import static com.bytechef.platform.component.definition.ai.vectorstore.DocumentReaderFunction.DOCUMENT_READER;
import static com.bytechef.platform.component.definition.ai.vectorstore.DocumentTransformerFunction.DOCUMENT_TRANSFORMER;

import com.bytechef.automation.knowledgebase.file.storage.KnowledgeBaseFileStorage;
import com.bytechef.automation.knowledgebase.service.KnowledgeBaseDocumentChunkService;
import com.bytechef.automation.knowledgebase.service.KnowledgeBaseDocumentService;
import com.bytechef.automation.knowledgebase.service.KnowledgeBaseService;
import com.bytechef.automation.knowledgebase.service.KnowledgeBaseTagService;
import com.bytechef.component.ComponentHandler;
import com.bytechef.component.ai.vectorstore.knowledgebase.action.KnowledgeBaseLoadAction;
import com.bytechef.component.ai.vectorstore.knowledgebase.action.KnowledgeBaseSearchAction;
import com.bytechef.component.ai.vectorstore.knowledgebase.cluster.KnowledgeBaseSearchTool;
import com.bytechef.component.ai.vectorstore.knowledgebase.cluster.KnowledgeBaseVectorStore;
import com.bytechef.component.definition.ClusterElementDefinition.ClusterElementType;
import com.bytechef.component.definition.ComponentCategory;
import com.bytechef.component.definition.ComponentDefinition;
import com.bytechef.platform.component.definition.AbstractComponentDefinitionWrapper;
import com.bytechef.platform.component.definition.VectorStoreComponentDefinition;
import com.bytechef.platform.component.service.ClusterElementDefinitionService;
import com.bytechef.platform.tag.service.TagService;
import java.util.List;
import java.util.Map;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
Expand All @@ -54,13 +60,13 @@ public KnowledgeBaseComponentHandler(
ClusterElementDefinitionService clusterElementDefinitionService,
KnowledgeBaseDocumentChunkService knowledgeBaseDocumentChunkService,
KnowledgeBaseDocumentService knowledgeBaseDocumentService, KnowledgeBaseFileStorage knowledgeBaseFileStorage,
KnowledgeBaseService knowledgeBaseService, TagService tagService,
@Qualifier("knowledgeBasePgVectorStore") VectorStore vectorStore) {
KnowledgeBaseService knowledgeBaseService, KnowledgeBaseTagService knowledgeBaseTagService,
TagService tagService, @Qualifier("knowledgeBasePgVectorStore") VectorStore vectorStore) {

this.componentDefinition =
new KnowledgeBaseVectorStoreComponentDefinitionImpl(
clusterElementDefinitionService, knowledgeBaseDocumentChunkService, knowledgeBaseDocumentService,
knowledgeBaseFileStorage, knowledgeBaseService, tagService, vectorStore);
knowledgeBaseFileStorage, knowledgeBaseService, knowledgeBaseTagService, tagService, vectorStore);
}

@Override
Expand All @@ -76,7 +82,7 @@ public KnowledgeBaseVectorStoreComponentDefinitionImpl(
KnowledgeBaseDocumentChunkService knowledgeBaseDocumentChunkService,
KnowledgeBaseDocumentService knowledgeBaseDocumentService,
KnowledgeBaseFileStorage knowledgeBaseFileStorage, KnowledgeBaseService knowledgeBaseService,
TagService tagService, VectorStore vectorStore) {
KnowledgeBaseTagService knowledgeBaseTagService, TagService tagService, VectorStore vectorStore) {

super(
component(KNOWLEDGE_BASE)
Expand All @@ -92,10 +98,29 @@ public KnowledgeBaseVectorStoreComponentDefinitionImpl(
knowledgeBaseDocumentService, knowledgeBaseFileStorage, knowledgeBaseService),
KnowledgeBaseSearchAction.of(vectorStore, knowledgeBaseService, tagService))
.clusterElements(
KnowledgeBaseSearchTool.of(vectorStore, clusterElementDefinitionService),
KnowledgeBaseSearchTool.of(vectorStore, knowledgeBaseService, knowledgeBaseTagService),
KnowledgeBaseVectorStore.of(
vectorStore, clusterElementDefinitionService, knowledgeBaseDocumentChunkService,
knowledgeBaseDocumentService, knowledgeBaseFileStorage, knowledgeBaseService)));
vectorStore, knowledgeBaseDocumentChunkService, knowledgeBaseDocumentService,
knowledgeBaseFileStorage, knowledgeBaseService, knowledgeBaseTagService)));
}

@Override
public List<ClusterElementType> getClusterElementTypes() {
return List.of(DOCUMENT_READER, DOCUMENT_TRANSFORMER);
}

@Override
public Map<String, List<String>> getActionClusterElementTypes() {
return Map.of(
LOAD, List.of(DOCUMENT_READER.name(), DOCUMENT_TRANSFORMER.name()),
SEARCH, List.of());
}

@Override
public Map<String, List<String>> getClusterElementClusterElementTypes() {
return Map.of(
VECTOR_STORE, List.of(),
SEARCH, List.of());
}
}
}
Loading
Loading