@@ -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
@@ -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,
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -18,7 +18,7 @@ class gtUIBaseDriver:
|
||||
|
||||
FUNCTION = "create"
|
||||
|
||||
CATEGORY = "Griptape/Drivers"
|
||||
CATEGORY = "Griptape/Agent Drivers"
|
||||
|
||||
def getenv(self, env):
|
||||
return os.getenv(env, None)
|
||||
|
||||
@@ -14,7 +14,7 @@ class gtUIBaseEmbeddingDriver(gtUIBaseDriver):
|
||||
|
||||
return inputs
|
||||
|
||||
CATEGORY = "Griptape/Drivers/Embedding"
|
||||
CATEGORY = "Griptape/Agent Drivers/Embedding"
|
||||
|
||||
RETURN_TYPES = ("EMBEDDING_DRIVER",)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from .gtUIBaseTask import gtUIBaseTask
|
||||
|
||||
|
||||
class gtUIPromptTask(gtUIBaseTask): ...
|
||||
class gtUIPromptTask(gtUIBaseTask):
|
||||
CATEGORY = "Griptape/Agent"
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -45,7 +45,7 @@ class gtUIVectorStoreQueryTask(gtUIBaseVectorStoreTask):
|
||||
|
||||
FUNCTION = "run"
|
||||
|
||||
CATEGORY = "Griptape/Vector Store"
|
||||
CATEGORY = "Griptape/Text"
|
||||
|
||||
def run(self, **kwargs):
|
||||
STRING = kwargs.get("STRING", "")
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user