[ { "id": "2e6fd52cd06882a1", "type": "tab", "label": "Assistants V2 Examples", "disabled": false, "info": "", "env": [] }, { "id": "b2325ede9b42d787", "type": "group", "z": "2e6fd52cd06882a1", "style": { "stroke": "#999999", "stroke-opacity": "1", "fill": "none", "fill-opacity": "1", "label": true, "label-position": "nw", "color": "#a4a4a4" }, "nodes": [ "4a8b69a0d666e4b1", "c93a90f1145d7097", "80f2fcaea376e6fa", "7d03d073350147e7", "6e0b6eedb964bb59", "f478ebac3078686d", "979ed3ff6205acfb", "5b0b2790637ab2b5", "b0c1fc6cafdb4e10" ], "x": 94, "y": 113, "w": 1732, "h": 308 }, { "id": "f478ebac3078686d", "type": "group", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "style": { "stroke": "#999999", "stroke-opacity": "1", "fill": "none", "fill-opacity": "1", "label": true, "label-position": "nw", "color": "#a4a4a4" }, "nodes": [ "fa3a845583809a96", "b7515492cea3f1fb", "dc3d68ba96e95f34", "47e765406b4b7af7", "4bfcbf55e88e61dd", "ab3a2c80ba3eacbd" ], "x": 334, "y": 139, "w": 1112, "h": 122 }, { "id": "4a8b69a0d666e4b1", "type": "debug", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "response", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 600, "y": 340, "wires": [] }, { "id": "c93a90f1145d7097", "type": "inject", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "assistant payload", "props": [ { "p": "payload" }, { "p": "assistant.name", "v": "_node-red-openai-api-file-search-example_", "vt": "str" }, { "p": "assistant.model", "v": "gpt-4-turbo", "vt": "str" }, { "p": "assistant.tools", "v": "[{\"type\":\"file_search\"}]", "vt": "json" }, { "p": "assistant.description", "v": "My helpful assistant.", "vt": "str" }, { "p": "assistant.instructions", "v": "You are a helpful assistant with access to files that I share with you.", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "[\"/path/to/my/assistant/file.1\",\"/path/to/my/assistant/file.2\"]", "payloadType": "json", "x": 220, "y": 220, "wires": [ [ "fa3a845583809a96" ] ] }, { "id": "80f2fcaea376e6fa", "type": "comment", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "File Search Assistant", "info": "", "x": 220, "y": 180, "wires": [] }, { "id": "7d03d073350147e7", "type": "inject", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "assistant payload", "props": [ { "p": "payload.name", "v": "_node-red-openai-api-example_", "vt": "str" }, { "p": "payload.model", "v": "gpt-4-turbo", "vt": "str" }, { "p": "payload.tools", "v": "[{\"type\":\"code_interpreter\"}]", "vt": "json" }, { "p": "payload.description", "v": "My helpful standard assistant.", "vt": "str" }, { "p": "payload.instructions", "v": "You are a helpful assistant.", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 220, "y": 340, "wires": [ [ "5b0b2790637ab2b5" ] ] }, { "id": "6e0b6eedb964bb59", "type": "comment", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "Standard Assistant", "info": "", "x": 210, "y": 380, "wires": [] }, { "id": "fa3a845583809a96", "type": "split", "z": "2e6fd52cd06882a1", "g": "f478ebac3078686d", "name": "gather file details", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 450, "y": 220, "wires": [ [ "47e765406b4b7af7" ] ] }, { "id": "b7515492cea3f1fb", "type": "join", "z": "2e6fd52cd06882a1", "g": "f478ebac3078686d", "name": "gather file ids", "mode": "custom", "build": "array", "property": "payload.id", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "accumulate": false, "timeout": "", "count": "", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "num", "reduceFixup": "", "x": 1070, "y": 220, "wires": [ [ "ab3a2c80ba3eacbd" ] ] }, { "id": "dc3d68ba96e95f34", "type": "comment", "z": "2e6fd52cd06882a1", "g": "f478ebac3078686d", "name": "Vector Store Tasks", "info": "", "x": 450, "y": 180, "wires": [] }, { "id": "47e765406b4b7af7", "type": "function", "z": "2e6fd52cd06882a1", "g": "f478ebac3078686d", "name": "structure file payload", "func": "msg.payload = {\n \"file\": msg.payload,\n \"purpose\": \"assistants\",\n \"filename\": msg.filename\n};\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 680, "y": 220, "wires": [ [ "4bfcbf55e88e61dd" ] ] }, { "id": "a28af876056ff894", "type": "comment", "z": "2e6fd52cd06882a1", "name": "Create Assistants", "info": "", "x": 180, "y": 80, "wires": [] }, { "id": "4bfcbf55e88e61dd", "type": "OpenAI API", "z": "2e6fd52cd06882a1", "g": "f478ebac3078686d", "name": "upload file", "property": "payload", "propertyType": "msg", "service": "", "method": "createFile", "x": 890, "y": 220, "wires": [ [ "b7515492cea3f1fb" ] ] }, { "id": "ab3a2c80ba3eacbd", "type": "function", "z": "2e6fd52cd06882a1", "g": "f478ebac3078686d", "name": "construct Assistant payload", "func": "const {payload, assistant, ...newMsg} = msg;\nconst file_ids = payload.id;\n\nnewMsg.payload = assistant;\nnewMsg.payload.tool_resources = {\n \"file_search\": {\n \"vector_stores\": [{\"file_ids\": file_ids}]\n }\n};\n\nreturn newMsg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1300, "y": 220, "wires": [ [ "979ed3ff6205acfb" ] ] }, { "id": "979ed3ff6205acfb", "type": "OpenAI API", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "Create Assistant", "property": "payload", "propertyType": "msg", "service": "", "method": "createAssistant", "x": 1540, "y": 220, "wires": [ [ "b0c1fc6cafdb4e10" ] ] }, { "id": "5b0b2790637ab2b5", "type": "OpenAI API", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "Create Assistant", "property": "payload", "propertyType": "msg", "service": "", "method": "createAssistant", "x": 420, "y": 340, "wires": [ [ "4a8b69a0d666e4b1" ] ] }, { "id": "b0c1fc6cafdb4e10", "type": "debug", "z": "2e6fd52cd06882a1", "g": "b2325ede9b42d787", "name": "response", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1720, "y": 220, "wires": [] } ]