connection bug solved
This commit is contained in:
parent
7e300d62e2
commit
fb9d8d4fd5
5 changed files with 244 additions and 11 deletions
|
|
@ -51,7 +51,7 @@ export default function ParameterComponent({
|
|||
position={left ? Position.Left : Position.Right}
|
||||
id={id}
|
||||
isValidConnection={(connection) =>
|
||||
isValidConnection(data, connection)
|
||||
isValidConnection(connection,reactFlowInstance)
|
||||
}
|
||||
className={
|
||||
(left ? "-ml-0.5 " : "-mr-0.5 ") +
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ type TabsContextType={
|
|||
setTabIndex:(index:number)=>void;
|
||||
flows:Array<flow>
|
||||
removeFlow:(id:string)=>void;
|
||||
addFlow:()=>void;
|
||||
addFlow:(flowData?:any)=>void;
|
||||
updateFlow:(newFlow:flow)=>void;
|
||||
nodeId:number;
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@ const TabsContextInitialValue = {
|
|||
setTabIndex:(index:number)=>{},
|
||||
flows:[],
|
||||
removeFlow:(id:string)=>{},
|
||||
addFlow:()=>{},
|
||||
addFlow:(flowData?:any)=>{},
|
||||
updateFlow:(newFlow:flow)=>{},
|
||||
nodeId:0,
|
||||
|
||||
|
|
@ -65,8 +65,9 @@ export function TabsProvider({children}){
|
|||
return newFlows;
|
||||
});
|
||||
}
|
||||
function addFlow() {
|
||||
let newFlow: flow = {name: "flow"+id, id: id.toString(), data:null}
|
||||
function addFlow(flowData?:flow) {
|
||||
const data = flowData?flowData:null
|
||||
let newFlow: flow = {name: "flow"+id, id: id.toString(), data}
|
||||
setId((old) => old+1);
|
||||
setFlows(prevState => {
|
||||
const newFlows = [...prevState, newFlow];
|
||||
|
|
|
|||
231
space_flow/src/data_assets/example.ts
Normal file
231
space_flow/src/data_assets/example.ts
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
export const example = {
|
||||
"nodes": [
|
||||
{
|
||||
"width": 384,
|
||||
"height": 413,
|
||||
"id": "dndnode_1",
|
||||
"type": "genericNode",
|
||||
"position": {
|
||||
"x": 124.66903342355295,
|
||||
"y": -20.27227649302739
|
||||
},
|
||||
"data": {
|
||||
"type": "OpenAI",
|
||||
"node": {
|
||||
"template": {
|
||||
"_type": "openai",
|
||||
"cache": {
|
||||
"type": "bool",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": null
|
||||
},
|
||||
"verbose": {
|
||||
"type": "bool",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multline": false,
|
||||
"value": null
|
||||
},
|
||||
"client": {
|
||||
"type": "Any",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": null
|
||||
},
|
||||
"model_name": {
|
||||
"type": "str",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": "text-davinci-003"
|
||||
},
|
||||
"temperature": {
|
||||
"type": "float",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 0.7
|
||||
},
|
||||
"max_tokens": {
|
||||
"type": "int",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 256
|
||||
},
|
||||
"top_p": {
|
||||
"type": "float",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 1
|
||||
},
|
||||
"frequency_penalty": {
|
||||
"type": "float",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 0
|
||||
},
|
||||
"presence_penalty": {
|
||||
"type": "float",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 0
|
||||
},
|
||||
"n": {
|
||||
"type": "int",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 1
|
||||
},
|
||||
"best_of": {
|
||||
"type": "int",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 1
|
||||
},
|
||||
"model_kwargs": {
|
||||
"type": "dict[str, Any]",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": null
|
||||
},
|
||||
"openai_api_key": {
|
||||
"type": "str",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multline": false,
|
||||
"value": "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"
|
||||
},
|
||||
"batch_size": {
|
||||
"type": "int",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 20
|
||||
},
|
||||
"request_timeout": {
|
||||
"type": "Union[float, Tuple[float, float], NoneType]",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": null
|
||||
},
|
||||
"logit_bias": {
|
||||
"type": "dict[str, float]",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": null
|
||||
},
|
||||
"max_retries": {
|
||||
"type": "int",
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": false,
|
||||
"multline": false,
|
||||
"value": 6
|
||||
}
|
||||
},
|
||||
"description": "Generic OpenAI class that uses model name.",
|
||||
"base_classes": [
|
||||
"BaseOpenAI",
|
||||
"BaseLLM"
|
||||
]
|
||||
},
|
||||
"id": "dndnode_1",
|
||||
"value": null,
|
||||
"reactFlowInstance": {
|
||||
"viewportInitialized": true
|
||||
}
|
||||
},
|
||||
"selected": false,
|
||||
"positionAbsolute": {
|
||||
"x": 124.66903342355295,
|
||||
"y": -20.27227649302739
|
||||
},
|
||||
"dragging": false
|
||||
},
|
||||
{
|
||||
"width": 152,
|
||||
"height": 62,
|
||||
"id": "dndnode_2",
|
||||
"type": "chatOutputNode",
|
||||
"position": {
|
||||
"x": 688.2448440290276,
|
||||
"y": 315.1849334347801
|
||||
},
|
||||
"data": {
|
||||
"type": "chatOutput",
|
||||
"id": "dndnode_2",
|
||||
"value": null,
|
||||
"reactFlowInstance": {
|
||||
"viewportInitialized": true
|
||||
}
|
||||
},
|
||||
"selected": false,
|
||||
"positionAbsolute": {
|
||||
"x": 688.2448440290276,
|
||||
"y": 315.1849334347801
|
||||
},
|
||||
"dragging": false
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"source": "dndnode_1",
|
||||
"sourceHandle": "OpenAI|dndnode_1|BaseOpenAI,|BaseLLM",
|
||||
"target": "dndnode_2",
|
||||
"targetHandle": "str|output|dndnode_2",
|
||||
"className": "animate-pulse",
|
||||
"id": "reactflow__edge-dndnode_1OpenAI|dndnode_1|BaseOpenAI,|BaseLLM-dndnode_2str|output|dndnode_2"
|
||||
}
|
||||
],
|
||||
"viewport": {
|
||||
"x": 283.7086041469587,
|
||||
"y": 207.97093260601437,
|
||||
"zoom": 0.5937798330367052
|
||||
},
|
||||
"message": "Tell me a joke."
|
||||
}
|
||||
|
|
@ -3,13 +3,14 @@ import { ReactFlowProvider } from "reactflow";
|
|||
import FlowPage from "..";
|
||||
import { TabsContext } from "../../../contexts/tabsContext";
|
||||
import TabComponent from "./tabComponent";
|
||||
import { example } from "../../../data_assets/example";
|
||||
var _ = require("lodash");
|
||||
|
||||
export function TabsManager() {
|
||||
const { flows, addFlow, tabIndex, setTabIndex } = useContext(TabsContext);
|
||||
useEffect(() => {
|
||||
if (flows.length === 0) {
|
||||
addFlow();
|
||||
addFlow(example);
|
||||
}
|
||||
}, [addFlow, flows.length]);
|
||||
|
||||
|
|
|
|||
|
|
@ -335,18 +335,18 @@ export function getConnectedNodes(edge: Edge, nodes: Array<Node>): Array<Node> {
|
|||
}
|
||||
|
||||
export function isValidConnection(
|
||||
data,
|
||||
{ source, target, sourceHandle, targetHandle }
|
||||
{ source, target, sourceHandle, targetHandle },
|
||||
reactFlowInstance
|
||||
) {
|
||||
if (
|
||||
targetHandle.split('|')[0] === sourceHandle.split("|")[0] ||
|
||||
targetHandle.split('|').slice(2).some((t) => t === sourceHandle.split("|")[0]) ||
|
||||
sourceHandle.split("|")[0] === "str"
|
||||
) {
|
||||
let sourceNode = data.reactFlowInstance.getNode(source).data.node;
|
||||
let sourceNode = reactFlowInstance.getNode(source).data.node;
|
||||
if (!sourceNode) {
|
||||
if (
|
||||
!data.reactFlowInstance
|
||||
!reactFlowInstance
|
||||
.getEdges()
|
||||
.find((e) => e.sourceHandle === sourceHandle)
|
||||
) {
|
||||
|
|
@ -354,7 +354,7 @@ export function isValidConnection(
|
|||
}
|
||||
} else if (
|
||||
(!sourceNode.template[sourceHandle.split("|")[1]].list &&
|
||||
!data.reactFlowInstance
|
||||
!reactFlowInstance
|
||||
.getEdges()
|
||||
.find((e) => e.sourceHandle === sourceHandle)) ||
|
||||
sourceNode.template[sourceHandle.split("|")[1]].list
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue