Merge pull request #95 from griptape-ai:dev

Dev
This commit is contained in:
Jason Schleifer
2024-07-27 11:28:43 -07:00
committed by GitHub
50 changed files with 266 additions and 130 deletions
+3
View File
@@ -103,6 +103,9 @@ You can previous and download more examples [here](examples/README.md).
## Recent Changelog
### July 27, 2024
* Updated menu items to be in a better order. Please provide feedback!
### July 25, 2024
* Added separators to menu items in the RMB->Griptape menu to help group similar items.
+45 -44
View File
@@ -17,6 +17,7 @@ from .nodes.agent.ExpandAgent import ExpandAgent
from .nodes.agent.gtUICreateAgentFromConfig import gtUICreateAgentFromConfig
from .nodes.agent.gtUIReplaceRulesetsOnAgent import gtUIReplaceRulesetsOnAgent
from .nodes.agent.gtUIReplaceToolsOnAgent import gtUIReplaceToolsOnAgent
from .nodes.agent.gtUIRunAgent import gtUIRunAgent
from .nodes.agent.gtUISetDefaultAgent import gtUISetDefaultAgent
from .nodes.agent.RunAgent import RunAgent
@@ -252,12 +253,14 @@ NODE_CLASS_MAPPINGS = {
# AGENT
"Griptape Create: Agent": CreateAgent,
"Griptape Create: Agent from Config": gtUICreateAgentFromConfig,
"Griptape Set: Default Agent": gtUISetDefaultAgent,
"Griptape Convert: Agent to Tool": gtUIConvertAgentToTool,
"Griptape Expand: Agent Nodes": ExpandAgent,
"Griptape Replace: Rulesets on Agent": gtUIReplaceRulesetsOnAgent,
"Griptape Replace: Tools on Agent": gtUIReplaceToolsOnAgent,
"Griptape Run: Agent": RunAgent,
"Griptape Run: Prompt Task": gtUIPromptTask,
"Griptape Run: Text Summary": gtUITextSummaryTask,
"Griptape Run: Tool Task": gtUIToolTask,
"Griptape Run: Toolkit Task": gtUIToolkitTask,
# "Gt Run Agent": gtUIRunAgent,
"Griptape Expand: Agent Nodes": ExpandAgent,
"Griptape Set: Default Agent": gtUISetDefaultAgent,
# AGENT CONFIG
"Griptape Agent Config: Custom Structure": gtUIStructureConfig,
"Griptape Agent Config: Amazon Bedrock": gtUIAmazonBedrockStructureConfig,
@@ -270,30 +273,6 @@ NODE_CLASS_MAPPINGS = {
"Griptape Agent Config: Ollama": gtUIOllamaStructureConfig,
"Griptape Agent Config: OpenAI": gtUIOpenAiStructureConfig,
"Griptape Agent Config: OpenAI Compatible": gtUIOpenAiCompatibleConfig,
# AGENT RULES
"Griptape Create: Rules": gtUIRule,
"Griptape Combine: Rules List": RulesList,
# TASKS
"Griptape Run: Prompt Task": gtUIPromptTask,
"Griptape Run: Text Summary": gtUITextSummaryTask,
"Griptape Run: Tool Task": gtUIToolTask,
"Griptape Run: Toolkit Task": gtUIToolkitTask,
# # STRUCTURES
# "Griptape Create: Pipeline": gtUICreatePipeline,
# "Griptape Run: Structure": gtUIRunStructure,
# "Griptape Pipeline: Add Task": gtUIPipelineAddTask,
# "Griptape Pipeline: Insert Task": gtUIPipelineInsertTask,
# AGENT TOOLS
"Griptape Tool: Audio Transcription": gtUIAudioTranscriptionClient,
"Griptape Tool: Calculator": gtUICalculator,
"Griptape Tool: DateTime": gtUIDateTime,
"Griptape Tool: FileManager": gtUIFileManager,
"Griptape Tool: Griptape Cloud KnowledgeBase": gtUIKnowledgeBaseTool,
"Griptape Tool: Text to Speech": gtUITextToSpeechClient,
"Griptape Tool: VectorStore": gtUIVectorStoreClient,
"Griptape Tool: WebScraper": gtUIWebScraper,
"Griptape Tool: WebSearch": gtUIWebSearch,
"Griptape Combine: Tool List": ToolList,
# PROMPT DRIVER
"Griptape Prompt Driver: Amazon Bedrock": gtUIAmazonBedrockPromptDriver,
"Griptape Prompt Driver: Amazon SageMaker Jumpstart": gtUIAmazonSageMakerJumpstartPromptDriver,
@@ -347,6 +326,43 @@ NODE_CLASS_MAPPINGS = {
# WEBSEARCH DRIVERS
"Griptape WebSearch Driver: DuckDuckGo": gtUIDuckDuckGoWebSearchDriver,
"Griptape WebSearch Driver: Google": gtUIGoogleWebSearchDriver,
# AGENT RULES
"Griptape Create: Rules": gtUIRule,
"Griptape Combine: Rules List": RulesList,
"Griptape Replace: Rulesets on Agent": gtUIReplaceRulesetsOnAgent,
# TASKS
# # STRUCTURES
# "Griptape Create: Pipeline": gtUICreatePipeline,
# "Griptape Run: Structure": gtUIRunStructure,
# "Griptape Pipeline: Add Task": gtUIPipelineAddTask,
# "Griptape Pipeline: Insert Task": gtUIPipelineInsertTask,
# AGENT TOOLS
"Griptape Convert: Agent to Tool": gtUIConvertAgentToTool,
"Griptape Combine: Tool List": ToolList,
"Griptape Replace: Tools on Agent": gtUIReplaceToolsOnAgent,
"Griptape Tool: Audio Transcription": gtUIAudioTranscriptionClient,
"Griptape Tool: Calculator": gtUICalculator,
"Griptape Tool: DateTime": gtUIDateTime,
"Griptape Tool: FileManager": gtUIFileManager,
"Griptape Tool: Griptape Cloud KnowledgeBase": gtUIKnowledgeBaseTool,
"Griptape Tool: Text to Speech": gtUITextToSpeechClient,
"Griptape Tool: VectorStore": gtUIVectorStoreClient,
"Griptape Tool: WebScraper": gtUIWebScraper,
"Griptape Tool: WebSearch": gtUIWebSearch,
# DISPLAY
"Griptape Display: Image": gtUIOutputImageNode,
"Griptape Display: Text": gtUIOutputStringNode,
"Griptape Display: Data as Text": gtUIOutputDataNode,
# AUDIO
"Griptape Run: Audio Transcription": gtUIAudioTranscriptionTask,
"Griptape Run: Text to Speech": gtUITextToSpeechTask,
"Griptape Load: Audio": gtUILoadAudio,
# Image
"Griptape Create: Image from Text": gtUIPromptImageGenerationTask,
"Griptape Create: Image Variation": gtUIPromptImageVariationTask,
"Griptape Run: Image Description": gtUIImageQueryTask,
"Griptape Run: Parallel Image Description": gtUIParallelImageQueryTask,
"Griptape Load: Image From URL": gtUIFetchImage,
# TEXT
"Griptape Create: Text": gtUIInputStringNode,
"Griptape Create: CLIP Text Encode": gtUICLIPTextEncode,
@@ -355,21 +371,6 @@ NODE_CLASS_MAPPINGS = {
"Griptape Combine: Merge Texts": MergeTexts,
"Griptape Combine: Merge Inputs": gtUIMergeInputs,
"Griptape Save: Text": gtUISaveText,
# IMAGES
"Griptape Create: Image from Text": gtUIPromptImageGenerationTask,
"Griptape Create: Image Variation": gtUIPromptImageVariationTask,
"Griptape Load: Image From URL": gtUIFetchImage,
"Griptape Run: Image Description": gtUIImageQueryTask,
"Griptape Run: Parallel Image Description": gtUIParallelImageQueryTask,
# DISPLAY
"Griptape Display: Image": gtUIOutputImageNode,
"Griptape Display: Text": gtUIOutputStringNode,
"Griptape Display: Data as Text": gtUIOutputDataNode,
# AUDIO
"Griptape Load: Audio": gtUILoadAudio,
"Griptape Run: Audio Transcription": gtUIAudioTranscriptionTask,
"Griptape Run: Text to Speech": gtUITextToSpeechTask,
# VECTOR STORE
"Griptape Vector Store: Add Text": gtUIVectorStoreUpsertTextTask,
"Griptape Vector Store: Query": gtUIVectorStoreQueryTask,
# "Griptape Display: Artifact": gtUIOutputArtifactNode,
+36
View File
@@ -0,0 +1,36 @@
// Menu items that should have a separator above them
const sep_above_items = [
// Main Menu Items
"Agent Configs",
"Display",
"Audio",
// Sub Menu Items - Agent
"Griptape Run: Agent",
"Griptape Expand: Agent Nodes",
"Griptape Convert: Agent to Tool",
// Sub Menu Item - Agent Configs
"Griptape Agent Config: Amazon Bedrock",
// Sub Menu Item - Agent Tools
"Griptape Tool: Audio Transcription",
// Sub Menu Item - Audio
"Griptape Load: Audio",
// Sub Menu Items - Image
"Griptape Load: Image From URL",
"Griptape Run: Image Description",
// Sub Menu Items - Text
"Griptape Convert: Text to CLIP Encode",
"Griptape Combine: Merge Texts",
"Griptape Save: Text",
"Griptape Vector Store: Add Text"
]
export function setupMenuSeparator() {
const originalAddItem = LiteGraph.ContextMenu.prototype.addItem;
LiteGraph.ContextMenu.prototype.addItem = function (name, value, options) {
for (let item of sep_above_items) {
if (name === item) {
this.addItem("", null)
}
}
return originalAddItem.apply(this, arguments);
}
}
+13 -26
View File
@@ -6,6 +6,17 @@ import { setupNodeColors } from "./ColorNodes.js";
import { setupDisplayNodes } from "./DisplayNodes.js";
import { setupCombineNodes } from "./CombineNodes.js";
import { gtUIAddUploadWidget } from "./gtUIUtils.js";
import { setupMenuSeparator } from "./gtUIMenuSeparator.js";
// app.extensionManager.registerSidebarTab({
// id: "search",
// icon: "pi pi-search",
// title: "search",
// tooltip: "search",
// type: "custom",
// render: (el: HTMLElement) => {
// el.innerHTML = "<div>Custom search tab</div>";
// },
// });
app.registerExtension({
name: "comfy.gtUI",
@@ -17,32 +28,8 @@ app.registerExtension({
}
},
setup: (app) => {
// Add a separator above these items in the RMB Menu
const sep_above_items = [
"Text",
"Agent Configs",
"Griptape Convert: Agent to Tool",
"Griptape Replace: Rulesets on Agent",
"Griptape Run: Agent",
"Gripatpe Agent Config: Amazon Bedrock",
"Griptape Combine: Tool List",
"Griptape Load: Image From URL",
"Griptape Run: Image Description",
"Griptape Run: Audio Transcription",
"Griptape Convert: Text to CLIP Encode",
"Griptape Combine: Merge Texts",
"Griptape Save: Text"
]
const originalAddItem = LiteGraph.ContextMenu.prototype.addItem;
LiteGraph.ContextMenu.prototype.addItem = function (name, value, options) {
for (let item of sep_above_items) {
if (name === item) {
this.addItem("", null)
}
}
return originalAddItem.apply(this, arguments);
}
setupMenuSeparator();
function messageHandler(event) {
// console.log(event.detail.message)
}
@@ -17,6 +17,7 @@ class gtUIReplaceRulesetsOnAgent(BaseAgent):
"""
DESCRIPTION = "Replace or Remove Rulesets on an Agent"
CATEGORY = "Griptape/Agent Rules"
def __init__(self):
self.default_prompt = default_prompt
+1
View File
@@ -17,6 +17,7 @@ class gtUIReplaceToolsOnAgent(BaseAgent):
"""
DESCRIPTION = "Replace or Remove Tools on an Agent"
CATEGORY = "Griptape/Agent Tools"
def __init__(self):
self.default_prompt = default_prompt
+142
View File
@@ -0,0 +1,142 @@
from griptape.tasks import PromptTask, TextSummaryTask, ToolkitTask, ToolTask
from openai import OpenAIError
# from server import PromptServer
from ...py.griptape_config import get_config
from .gtComfyAgent import gtComfyAgent
default_prompt = "{{ input_string }}"
max_attempts_default = 10
class AnyType(str):
def __ne__(self, __value: object) -> bool:
return False
any = AnyType("*")
def get_default_config():
return get_config("agent_config")
run_types = ["Default", "Prompt", "Tool(s)", "Summarize"]
class gtUIRunAgent:
"""
Run a Griptape Agent
"""
def __init__(self):
self.default_prompt = default_prompt
self.agent = None
@classmethod
def INPUT_TYPES(s):
return {
"required": {},
"optional": {
"agent": (
"AGENT",
{
"forceInput": True,
},
),
"run_type": (run_types, {"default": run_types[0]}),
"tools": ("TOOL_LIST", {"forceInput": True, "INPUT_IS_LIST": True}),
"inputs": ("*",),
"text": (
"STRING",
{"multiline": True, "dynamicPrompts": True},
),
},
}
RETURN_TYPES = (
any,
"AGENT",
)
RETURN_NAMES = (
"OUTPUT",
"AGENT",
)
FUNCTION = "run"
OUTPUT_NODE = True
CATEGORY = "Griptape/Agent"
def run(self, **kwargs):
run_type = kwargs.get("run_type", run_types[0])
inputs = kwargs.get("inputs", [])
agent = kwargs.get("agent", None)
tools = kwargs.get("tools", [])
text = kwargs.get("text", None)
create_dict = {}
# Configuration
if agent:
config = agent.config
create_dict["config"] = agent.config
# Tools
create_dict["tools"] = self.tool_check(config, tools)
if agent:
create_dict["rulesets"] = agent.rulesets
# Memory
if agent:
create_dict["conversation_memory"] = agent.conversation_memory
create_dict["meta_memory"] = agent.meta_memory
create_dict["task_memory"] = agent.task_memory
prompt = []
try:
# Now create the agent
self.agent = gtComfyAgent(**create_dict)
# Check for inputs. If none, then just create the agent
if len(inputs) == 0 and text.strip() == "":
output = "Agent created."
else:
# Get the prompt text
if len(inputs) == 0:
prompt = [text]
else:
prompt = [text] + inputs
if run_type == "Default":
result = self.agent.run(prompt)
else:
if run_type == "Prompt" or (
run_type == "Tool(s)" and len(tools) == 0
):
self.agent.add_task(PromptTask(prompt))
elif run_type == "Tool(s)":
if len(tools) == 1:
self.agent.add_task(ToolTask(prompt, tool=tools[0]))
else:
self.agent.add_task(ToolkitTask(prompt, tools=tools))
elif run_type == "Summarize":
self.agent.add_task(TextSummaryTask(prompt))
result = self.agent.run()
output = result.output_task.output
return (
output,
self.agent,
)
except OpenAIError as e:
if "api_key" in str(e).lower():
return (
"Error: OpenAI API key is missing. Please provide a valid API key.",
None,
)
else:
return (f"OpenAI Error: {str(e)}", None)
except Exception as e:
return (f"Error creating agent: {str(e)}", None)
@@ -35,8 +35,6 @@ class gtUIAmazonBedrockPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
# api_key = os.getenv("GOOGLE_API_KEY")
model = kwargs.get("model", None)
@@ -43,8 +43,6 @@ class gtUIAmazonBedrockTitanEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
model = kwargs.get("model", models[0])
@@ -37,8 +37,6 @@ class gtUIAmazonSageMakerJumpstartEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
model = kwargs.get("model", default_model)
endpoint = kwargs.get("endpoint", default_endpoint)
@@ -41,8 +41,6 @@ class gtUIAmazonSageMakerJumpstartPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
# api_key = os.getenv("GOOGLE_API_KEY")
model = kwargs.get("model", None)
@@ -32,8 +32,6 @@ class gtUIAnthropicPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
model = kwargs.get("model", None)
stream = kwargs.get("stream", False)
@@ -33,8 +33,6 @@ class gtUIAzureOpenAiChatPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
model = kwargs.get("model", None)
deployment_name = kwargs.get("deployment_name", None)
@@ -33,8 +33,6 @@ class gtUIAzureOpenAiEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
model = kwargs.get("model", models[0])
azure_endpoint_env_var = kwargs.get("base_url", DEFAULT_AZURE_ENDPOINT_ENV_VAR)
@@ -19,7 +19,7 @@ class gtUIBaseAudioTranscriptionDriver(gtUIBaseDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Audio Transcription"
CATEGORY = "Griptape/Agent Drivers/Audio Transcription"
def create(
self,
+1 -1
View File
@@ -18,7 +18,7 @@ class gtUIBaseDriver:
FUNCTION = "create"
CATEGORY = "Griptape/Drivers"
CATEGORY = "Griptape/Agent Drivers"
def getenv(self, env):
return os.getenv(env, None)
+1 -1
View File
@@ -14,7 +14,7 @@ class gtUIBaseEmbeddingDriver(gtUIBaseDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
CATEGORY = "Griptape/Agent Drivers/Embedding"
RETURN_TYPES = ("EMBEDDING_DRIVER",)
+1 -1
View File
@@ -26,7 +26,7 @@ class gtUIBaseImageGenerationDriver(gtUIBaseDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Image Generation"
CATEGORY = "Griptape/Agent Drivers/Image Generation"
def create(self, prompt):
api_key = self.getenv(DEFAULT_API_KEY)
+1 -1
View File
@@ -29,7 +29,7 @@ class gtUIBasePromptDriver(gtUIBaseDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Audio Transcription"
CATEGORY = "Griptape/Agent Drivers/Prompt"
def create(self, **kwargs):
driver = BasePromptDriver()
+1 -1
View File
@@ -21,7 +21,7 @@ class gtUIBaseTextToSpeechDriver(gtUIBaseDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Text to Speech"
CATEGORY = "Griptape/Agent Drivers/Text to Speech"
def create(self, **kwargs):
model = kwargs.get("model", "eleven_multilingual_v2")
+1 -1
View File
@@ -24,7 +24,7 @@ class gtUIBaseVectorStoreDriver(gtUIBaseDriver):
return inputs
CATEGORY = "Griptape/Drivers/Vector Store"
CATEGORY = "Griptape/Agent Drivers/Vector Store"
RETURN_TYPES = ("VECTOR_STORE_DRIVER",)
def get_default_embedding_driver(self):
+1 -1
View File
@@ -16,7 +16,7 @@ class gtUIBaseWebSearchDriver(gtUIBaseDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Web Search"
CATEGORY = "Griptape/Agent Drivers/Web Search"
def create(
self,
@@ -35,8 +35,6 @@ class gtUICohereEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
api_key_env_var = kwargs.get("api_key_env_var", DEFAULT_API_KEY_ENV_VAR)
model = kwargs.get("models", models[0])
-2
View File
@@ -38,8 +38,6 @@ class gtUICoherePromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
api_key = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY_ENV_VAR))
model = kwargs.get("model", models[0])
@@ -41,8 +41,6 @@ class gtUIGoogleEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
model = kwargs.get("model", models[0])
api_key = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY_ENV_VAR))
-2
View File
@@ -34,8 +34,6 @@ class gtUIGooglePromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
api_key = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY_ENV_VAR))
model = kwargs.get("model", None)
@@ -32,8 +32,6 @@ class gtUIHuggingFaceHubEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
model = kwargs.get("model", default_model)
api_key = self.getenv(kwargs.get("api_token_env_var", DEFAULT_API_KEY_ENV_VAR))
@@ -33,8 +33,6 @@ class gtUIHuggingFaceHubPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
api_key = self.getenv(kwargs.get("api_token_env_var", DEFAULT_API_KEY_ENV_VAR))
model = kwargs.get("model", default_model)
@@ -28,8 +28,6 @@ class gtUILMStudioChatPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
model = kwargs.get("model", None)
base_url = kwargs.get("base_url", default_base_url)
-2
View File
@@ -27,8 +27,6 @@ class gtUIOllamaPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
model = kwargs.get("model", None)
base_url = kwargs.get("base_url", default_base_url)
@@ -27,8 +27,6 @@ class gtUIOpenAiChatPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
api_key = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY))
model = kwargs.get("model", None)
@@ -28,8 +28,6 @@ class gtUIOpenAiCompatibleChatPromptDriver(gtUIBasePromptDriver):
FUNCTION = "create"
CATEGORY = "Griptape/Drivers/Prompt"
def create(self, **kwargs):
model = kwargs.get("model", None)
base_url = kwargs.get("base_url", default_base_url)
@@ -33,8 +33,6 @@ class gtUIOpenAiCompatibleEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
model = kwargs.get("model", models[0])
base_url = kwargs.get("base_url", default_base_url)
@@ -26,8 +26,6 @@ class gtUIOpenAiEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
model = kwargs.get("model", models[0])
api_key = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY))
@@ -23,8 +23,6 @@ class gtUIVoyageAiEmbeddingDriver(gtUIBaseEmbeddingDriver):
return inputs
CATEGORY = "Griptape/Drivers/Embedding"
def create(self, **kwargs):
api_key_env_var = kwargs.get("api_key_env_var", DEFAULT_API_KEY_ENV_VAR)
+1 -1
View File
@@ -24,7 +24,7 @@ class gtUIFetchImage:
RETURN_TYPES = ("IMAGE", "INT", "INT") # Image, Width, Height
RETURN_NAMES = ("IMAGE", "WIDTH", "HEIGHT")
FUNCTION = "FetchImage"
CATEGORY = "Griptape/Images"
CATEGORY = "Griptape/Image"
@classmethod
def INPUT_TYPES(cls):
+2 -1
View File
@@ -1,9 +1,10 @@
import mimetypes
import os
import folder_paths
import torchaudio
import folder_paths
def is_audio_file(filepath):
mime_type, _ = mimetypes.guess_type(filepath)
+1 -1
View File
@@ -14,7 +14,7 @@ class gtUIBaseImageTask(gtUIBaseTask):
)
return inputs
CATEGORY = "Griptape/Images"
CATEGORY = "Griptape/Image"
def run(self, STRING, image, input_string=None, agent=None):
output = "Output"
+1 -1
View File
@@ -37,7 +37,7 @@ class gtUIBaseVectorStoreTask:
FUNCTION = "run"
CATEGORY = "Griptape/Vector Store"
CATEGORY = "Griptape/Text"
def get_vector_store_driver(self, agent, driver):
if driver:
-1
View File
@@ -16,7 +16,6 @@ OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
class gtUIImageQueryTask(gtUIBaseImageTask):
DESCRIPTION = "Query an image for a detailed description."
CATEGORY = "Griptape/Images"
def run(self, **kwargs):
STRING = kwargs.get("STRING")
@@ -28,7 +28,6 @@ class gtUIParallelImageQueryTask(gtUIBaseImageTask):
DESCRIPTION = (
"Query an image for multiple detailed descriptions. This runs in parallel."
)
CATEGORY = "Griptape/Images"
def run(self, **kwargs):
STRING = kwargs.get("STRING")
+3 -2
View File
@@ -1,6 +1,5 @@
import os
import folder_paths
from griptape.drivers import (
DummyImageGenerationDriver,
OpenAiImageGenerationDriver,
@@ -13,6 +12,8 @@ from griptape.tasks import (
PromptImageGenerationTask,
)
import folder_paths
from ..agent.gtComfyAgent import gtComfyAgent as Agent
from ..utilities import (
image_path_to_output,
@@ -42,7 +43,7 @@ class gtUIPromptImageGenerationTask(gtUIBaseTask):
"AGENT",
"file_path",
)
CATEGORY = "Griptape/Images"
CATEGORY = "Griptape/Image"
def run(self, **kwargs):
STRING = kwargs.get("STRING")
+2 -1
View File
@@ -1,4 +1,5 @@
from .gtUIBaseTask import gtUIBaseTask
class gtUIPromptTask(gtUIBaseTask): ...
class gtUIPromptTask(gtUIBaseTask):
CATEGORY = "Griptape/Agent"
+1
View File
@@ -8,6 +8,7 @@ from .gtUIBaseTask import gtUIBaseTask
class gtUITextSummaryTask(gtUIBaseTask):
DESCRIPTION = "Summarize a text prompt."
CATEGORY = "Griptape/Agent"
def run(self, **kwargs):
STRING = kwargs.get("STRING")
+1
View File
@@ -9,6 +9,7 @@ from .gtUIBaseTask import gtUIBaseTask
class gtUIToolTask(gtUIBaseTask):
DESCRIPTION = "Run a tool on a text prompt."
CATEGORY = "Griptape/Agent"
@classmethod
def INPUT_TYPES(s):
+1
View File
@@ -8,6 +8,7 @@ from .gtUIBaseTask import gtUIBaseTask
class gtUIToolkitTask(gtUIBaseTask):
DESCRIPTION = "Provide a list of tools, and have the agent decide which of them to use utilizing Chain of Thought."
CATEGORY = "Griptape/Agent"
@classmethod
def INPUT_TYPES(cls):
+1 -1
View File
@@ -45,7 +45,7 @@ class gtUIVectorStoreQueryTask(gtUIBaseVectorStoreTask):
FUNCTION = "run"
CATEGORY = "Griptape/Vector Store"
CATEGORY = "Griptape/Text"
def run(self, **kwargs):
STRING = kwargs.get("STRING", "")
+1 -1
View File
@@ -31,7 +31,7 @@ class gtUIBaseSaveNode:
# INPUT_IS_LIST = True
FUNCTION = "save"
OUTPUT_NODE = True
CATEGORY = "Griptape/Text"
CATEGORY = "Griptape/Savers"
RETURN_TYPES = ()
def create_output_path(self, path_filename):
+1
View File
@@ -3,6 +3,7 @@ from .gtUIBaseSaveNode import gtUIBaseSaveNode
class gtUISaveText(gtUIBaseSaveNode):
DESCRIPTION = "Save text to a file."
CATEGORY = "Griptape/Text"
@classmethod
def INPUT_TYPES(s):
+1 -1
View File
@@ -34,7 +34,7 @@ class gtUIConvertAgentToTool(gtUIBaseTool):
FUNCTION = "run"
OUTPUT_NODE = True
CATEGORY = "Griptape/Agent"
CATEGORY = "Griptape/Agent Tools"
def safe_name(self, name):
# Convert the name to a safe name. Name can't have any spaces or underscores