added Depricated configs

This commit is contained in:
Jason Schleifer
2024-09-05 09:09:32 +12:00
parent 2728cd657f
commit bfdd3826df
32 changed files with 973 additions and 67 deletions
+58 -23
View File
@@ -24,22 +24,45 @@ from .nodes.combine.gtUIMergeInputs import gtUIMergeInputs
from .nodes.combine.MergeTexts import MergeTexts
from .nodes.combine.RulesList import RulesList
from .nodes.combine.ToolList import ToolList
from .nodes.config.gtUIAmazonBedrockSession import gtUIAmazonBedrockSession
# CONFIG
from .nodes.config.gtUIAmazonBedrockStructureConfig import (
from .nodes.config.depricated.gtUIAmazonBedrockStructureConfig import (
gtUIAmazonBedrockStructureConfig,
)
from .nodes.config.gtUIAnthropicStructureConfig import gtUIAnthropicStructureConfig
from .nodes.config.gtUIAzureOpenAiStructureConfig import gtUIAzureOpenAiStructureConfig
from .nodes.config.gtUICohereStructureConfig import gtUICohereStructureConfig
# CONFIG - DEPRECIATED
from .nodes.config.depricated.gtUIAnthropicStructureConfig import (
gtUIAnthropicStructureConfig,
)
from .nodes.config.depricated.gtUIAzureOpenAiStructureConfig import (
gtUIAzureOpenAiStructureConfig,
)
from .nodes.config.depricated.gtUIGoogleStructureConfig import gtUIGoogleStructureConfig
from .nodes.config.depricated.gtUIHuggingFaceStructureConfig import (
gtUIHuggingFaceStructureConfig,
)
from .nodes.config.depricated.gtUILMStudioStructureConfig import (
gtUILMStudioStructureConfig,
)
from .nodes.config.depricated.gtUIOllamaStructureConfig import gtUIOllamaStructureConfig
from .nodes.config.depricated.gtUIOpenAiCompatibleConfig import (
gtUIOpenAiCompatibleConfig,
)
from .nodes.config.depricated.gtUIOpenAiStructureConfig import gtUIOpenAiStructureConfig
from .nodes.config.gtUIAmazonBedrockDriversConfig import gtUIAmazonBedrockDriversConfig
from .nodes.config.gtUIAmazonBedrockSession import gtUIAmazonBedrockSession
from .nodes.config.gtUIAnthropicDriversConfig import gtUIAnthropicDriversConfig
from .nodes.config.gtUIAzureOpenAiDriversConfig import gtUIAzureOpenAiDriversConfig
from .nodes.config.gtUICohereDriversConfig import gtUICohereDriversConfig
from .nodes.config.gtUIEnvConfig import gtUIEnvConfig
from .nodes.config.gtUIGoogleStructureConfig import gtUIGoogleStructureConfig
from .nodes.config.gtUIHuggingFaceStructureConfig import gtUIHuggingFaceStructureConfig
from .nodes.config.gtUILMStudioStructureConfig import gtUILMStudioStructureConfig
from .nodes.config.gtUIOllamaStructureConfig import gtUIOllamaStructureConfig
from .nodes.config.gtUIOpenAiCompatibleConfig import gtUIOpenAiCompatibleConfig
from .nodes.config.gtUIOpenAiStructureConfig import gtUIOpenAiStructureConfig
from .nodes.config.gtUIGoogleDriversConfig import gtUIGoogleDriversConfig
from .nodes.config.gtUIHuggingFaceDriversConfig import gtUIHuggingFaceDriversConfig
from .nodes.config.gtUILMStudioDriversConfig import gtUILMStudioDriversConfig
from .nodes.config.gtUIOllamaDriversConfig import gtUIOllamaDriversConfig
from .nodes.config.gtUIOpenAiCompatibleDriversConfig import (
gtUIOpenAiCompatibleDriversConfig,
)
from .nodes.config.gtUIOpenAiDriversConfig import gtUIOpenAiDriversConfig
from .nodes.config.gtUIStructureConfig import gtUIStructureConfig
# CONVERT
@@ -160,6 +183,9 @@ from .nodes.drivers.gtUIOpenAiCompatibleChatPromptDriver import (
from .nodes.drivers.gtUIOpenAiCompatibleEmbeddingDriver import (
gtUIOpenAiCompatibleEmbeddingDriver,
)
from .nodes.drivers.gtUIOpenAiCompatibleImageGenerationDriver import (
gtUIOpenAiCompatibleImageGenerationDriver,
)
from .nodes.drivers.gtUIOpenAiEmbeddingDriver import gtUIOpenAiEmbeddingDriver
from .nodes.drivers.gtUIOpenAiImageGenerationDriver import (
gtUIOpenAiImageGenerationDriver,
@@ -276,18 +302,26 @@ NODE_CLASS_MAPPINGS = {
"Griptape Agent Config: Custom Structure": gtUIStructureConfig,
"Griptape Agent Config: Environment Variables": gtUIEnvConfig,
"Griptape Agent Config: Expand": gtUIExpandConfig,
# "Griptape Agent Config: Amazon Bedrock Session": gtUIAmazonBedrockSession,
"Griptape Agent Config: Amazon Bedrock": gtUIAmazonBedrockStructureConfig,
"Griptape Agent Config: Anthropic": gtUIAnthropicStructureConfig,
# Unable to test AzureOpenAI config at the moment - so disabling for now
"Griptape Agent Config: Azure OpenAI": gtUIAzureOpenAiStructureConfig,
"Griptape Agent Config: Cohere": gtUICohereStructureConfig,
"Griptape Agent Config: Google": gtUIGoogleStructureConfig,
"Griptape Agent Config: HuggingFace": gtUIHuggingFaceStructureConfig,
"Griptape Agent Config: LM Studio": gtUILMStudioStructureConfig,
"Griptape Agent Config: Ollama": gtUIOllamaStructureConfig,
"Griptape Agent Config: OpenAI": gtUIOpenAiStructureConfig,
"Griptape Agent Config: OpenAI Compatible": gtUIOpenAiCompatibleConfig,
"Griptape Agent Config: Amazon Bedrock Drivers": gtUIAmazonBedrockDriversConfig,
"Griptape Agent Config: Anthropic Drivers": gtUIAnthropicDriversConfig,
"Griptape Agent Config: Azure OpenAI Drivers": gtUIAzureOpenAiDriversConfig,
"Griptape Agent Config: Cohere Drivers": gtUICohereDriversConfig,
"Griptape Agent Config: Google Drivers": gtUIGoogleDriversConfig,
"Griptape Agent Config: HuggingFace Drivers": gtUIHuggingFaceDriversConfig,
"Griptape Agent Config: LM Studio Drivers": gtUILMStudioDriversConfig,
"Griptape Agent Config: Ollama Drivers": gtUIOllamaDriversConfig,
"Griptape Agent Config: OpenAI Drivers": gtUIOpenAiDriversConfig,
"Griptape Agent Config: OpenAI Compatible Drivers": gtUIOpenAiCompatibleDriversConfig,
# DEPRECIATED
"Griptape Agent Config: Amazon Bedrock [DEPRECIATED]": gtUIAmazonBedrockStructureConfig,
"Griptape Agent Config: Anthropic [DEPRECIATED]": gtUIAnthropicStructureConfig,
"Griptape Agent Config: Azure OpenAI [DEPRECIATED]": gtUIAzureOpenAiStructureConfig,
"Griptape Agent Config: Google [DEPRECIATED]": gtUIGoogleStructureConfig,
"Griptape Agent Config: HuggingFace [DEPRECIATED]": gtUIHuggingFaceStructureConfig,
"Griptape Agent Config: LM Studio [DEPRECIATED]": gtUILMStudioStructureConfig,
"Griptape Agent Config: Ollama [DEPRECIATED]": gtUIOllamaStructureConfig,
"Griptape Agent Config: OpenAI [DEPRECIATED]": gtUIOpenAiStructureConfig,
"Griptape Agent Config: OpenAI Compatible [DEPRECIATED]": gtUIOpenAiCompatibleConfig,
# PROMPT DRIVER
"Griptape Prompt Driver: Amazon Bedrock": gtUIAmazonBedrockPromptDriver,
"Griptape Prompt Driver: Amazon SageMaker Jumpstart": gtUIAmazonSageMakerJumpstartPromptDriver,
@@ -306,6 +340,7 @@ NODE_CLASS_MAPPINGS = {
"Griptape Driver: Azure OpenAI Image Generation": gtUIAzureOpenAiImageGenerationDriver,
"Griptape Driver: Leonardo.AI": gtUILeonardoImageGenerationDriver,
"Griptape Driver: OpenAI Image Generation": gtUIOpenAiImageGenerationDriver,
"Griptape Driver: OpenAI Compatible Image Generation": gtUIOpenAiCompatibleImageGenerationDriver,
# EMBEDDING DRIVER
"Griptape Embedding Driver: Amazon Bedrock Titan": gtUIAmazonBedrockTitanEmbeddingDriver,
"Griptape Embedding Driver: Amazon SageMaker Jumpstart": gtUIAmazonSageMakerJumpstartEmbeddingDriver,
+6 -2
View File
@@ -8,7 +8,6 @@ function applyColor(node, color) {
}
export function setupNodeColors(nodeType, nodeData) {
const setColor = getStorageValue("Comfy.Griptape.ColorNodes", true);
// console.log(setColor);
if (setColor) {
if (nodeData.name.includes("Griptape")) {
const onNodeCreated = nodeType.prototype.onNodeCreated;
@@ -63,7 +62,12 @@ export function setupNodeColors(nodeType, nodeData) {
nodeData.name.includes("Griptape Vector Store: Query")){
applyColor(this, nodeColors.red);
}
if (nodeData.name.includes("[DEPRECIATED]")){
applyColor(this, nodeColors.yellow)
}
const size = this.size;
this.onResize?.(this.size);
this?.graph?.setDirtyCanvas(true, true);
+4 -2
View File
@@ -101,13 +101,15 @@ export function setupConfigurationNodes(nodeType, nodeData, app) {
}
}
setFixedRandomization(this);
this.onResize?.(this.size);
this?.graph?.setDirtyCanvas(true, true);
};
}
}
function setFixedRandomization(node) {
if(node.widgets) {
const controlWidget = node.widgets.find((w) => w.name === "control_after_generate");
+2 -2
View File
@@ -36,8 +36,8 @@ export function setupDisplayNodes(nodeType, nodeData, app) {
this.size[1] = Math.max(this.size[1], new_val.split("\n").length * 20 + 40);
}
}
this.setDirtyCanvas(true, true);
this.onResize?.(this.size);
this.setDirtyCanvas(true, true);
};
}
@@ -46,7 +46,7 @@ export function setupDisplayNodes(nodeType, nodeData, app) {
this.message = ComfyWidgets.STRING(this, 'Output Text', ['STRING', { multiline: true }], app).widget;
this.message.value = "";
setupMessageStyle(this.message);
fitHeight(this, true);
fitHeight(this);
};
nodeType.prototype.onExecuted = function(message) {
+3 -3
View File
@@ -25,14 +25,14 @@ export function setupExtractionNodes(nodeType, nodeData, app) {
switch (widget_extraction_type.value) {
case "csv":
showWidget(widget_column_names);
// fitHeight(this, true);
fitHeight(this, true);
break;
case "json":
showWidget(widget_template_schema);
// fitHeight(this, true);
fitHeight(this, true);
break;
default:
// fitHeight(this, true);
fitHeight(this, true);
break;
}
}
+1 -1
View File
@@ -9,7 +9,7 @@ const sep_above_items = [
"Griptape Expand: Agent Nodes",
"Griptape Convert: Agent to Tool",
// Sub Menu Item - Agent Configs
"Griptape Agent Config: Amazon Bedrock",
"Griptape Agent Config: Amazon Bedrock Drivers",
// Sub Menu Item - Agent Tools
"Griptape Tool: Audio Transcription",
"Griptape Tool: Extraction",
+10 -1
View File
@@ -59,5 +59,14 @@ export const nodeFixes = {
"Griptape Driver: Qdrant Vector Store": "Griptape Vector Store Driver: Qdrant",
"Griptape Driver: DuckDuckGo WebSearch": "Griptape WebSearch Driver: DuckDuckGo",
"Griptape Driver: Google WebSearch": "Griptape WebSearch Driver: Google",
}
"Griptape Agent Config: Amazon Bedrock": "Griptape Agent Config: Amazon Bedrock [DEPRECIATED]",
"Griptape Agent Config: Anthropic": "Griptape Agent Config: Anthropic [DEPRECIATED]",
"Griptape Agent Config: Azure OpenAI": "Griptape Agent Config: Azure OpenAI [DEPRECIATED]",
"Griptape Agent Config: Google": "Griptape Agent Config: Google [DEPRECIATED]",
"Griptape Agent Config: HuggingFace": "Griptape Agent Config: HuggingFace [DEPRECIATED]",
"Griptape Agent Config: LM Studio": "Griptape Agent Config: LM Studio [DEPRECIATED]",
"Griptape Agent Config: Ollama": "Griptape Agent Config: Ollama [DEPRECIATED]",
"Griptape Agent Config: OpenAI Compatible": "Griptape Agent Config: OpenAI Compatible [DEPRECIATED]",
"Griptape Agent Config: OpenAI": "Griptape Agent Config: OpenAI [DEPRECIATED]",
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
export function fitHeight(node) {
node.onResize?.(node.size);
node.setSize([node.size[0], node.computeSize([node.size[0], node.size[1]])[1]])
node.setSize([node.size[0], node.computeSize([node.size[0], node.size[1]])[1]+10])
node?.graph?.setDirtyCanvas(true, true);
}
View File
@@ -0,0 +1,84 @@
from griptape.configs.drivers import (
AmazonBedrockDriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
AmazonBedrockPromptDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
amazonBedrockPromptModels = [
"anthropic.claude-3-5-sonnet-20240620-v1:0",
"anthropic.claude-3-opus-20240229-v1:0",
"anthropic.claude-3-sonnet-20240229-v1:0",
"anthropic.claude-3-haiku-20240307-v1:0",
"amazon.titan-text-premier-v1:0",
"amazon.titan-text-express-v1",
"amazon.titan-text-lite-v1",
]
amazonBedrockImageGenerationModels = []
DEFAULT_AWS_ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID"
DEFAULT_AWS_SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY"
DEFAULT_AWS_DEFAULT_REGION = "AWS_DEFAULT_REGION"
class gtUIAmazonBedrockStructureConfig(gtUIBaseConfig):
"""
The Griptape Amazon Bedrock Structure Config
"""
DESCRIPTION = "Amazon Bedrock Prompt Driver."
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["required"].update(
{
"prompt_model": (
amazonBedrockPromptModels,
{"default": amazonBedrockPromptModels[0]},
),
},
)
inputs["optional"].update(
{
"aws_access_key_id_env_var": (
"STRING",
{"default": DEFAULT_AWS_ACCESS_KEY_ID},
),
"aws_secret_access_key_env_var": (
"STRING",
{"default": DEFAULT_AWS_SECRET_ACCESS_KEY},
),
"aws_default_region_env_var": (
"STRING",
{"default": DEFAULT_AWS_DEFAULT_REGION},
),
}
)
return inputs
def create(
self,
**kwargs,
):
params = {}
prompt_model = kwargs.get("prompt_model", amazonBedrockPromptModels[0])
temperature = kwargs.get("temperature", 0.7)
max_attempts = kwargs.get("max_attempts_on_fail", 10)
use_native_tools = kwargs.get("use_native_tools", False)
max_tokens = kwargs.get("max_tokens", None)
params["model"] = prompt_model
params["temperature"] = temperature
params["max_attempts"] = max_attempts
params["use_native_tools"] = use_native_tools
if max_tokens > 0:
params["max_tokens"] = max_tokens
custom_config = AmazonBedrockDriversConfig(
prompt_driver=AmazonBedrockPromptDriver(**params)
)
return (custom_config,)
@@ -0,0 +1,69 @@
from griptape.configs.drivers import (
AnthropicDriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
AnthropicPromptDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
anthropicPromptModels = [
"claude-3-5-sonnet-20240620",
"claude-3-opus-20240229",
"claude-3-sonnet-20240229",
"claude-3-haiku-20240307",
]
DEFAULT_API_KEY = "ANTHROPIC_API_KEY"
class gtUIAnthropicStructureConfig(gtUIBaseConfig):
"""
The Griptape Anthropic Structure Config
"""
DESCRIPTION = (
"Anthropic Structure Config. Use Anthropic's models for prompt and image query."
)
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["required"].update(
{
"prompt_model": (
anthropicPromptModels,
{"default": anthropicPromptModels[0]},
),
},
)
inputs["optional"].update(
{
"api_key_env_var": ("STRING", {"default": DEFAULT_API_KEY}),
},
)
return inputs
def create(
self,
**kwargs,
):
params = {}
params["model"] = kwargs.get("prompt_model", anthropicPromptModels[0])
params["temperature"] = kwargs.get("temperature", 0.7)
params["max_attempts"] = kwargs.get("max_attempts_on_fail", 10)
params["use_native_tools"] = kwargs.get("use_native_tools", True)
params["api_key"] = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY))
max_tokens = kwargs.get("max_tokens", None)
if max_tokens > 0:
params["max_tokens"] = max_tokens
custom_config = AnthropicDriversConfig(
prompt_driver=AnthropicPromptDriver(**params)
)
return (custom_config,)
@@ -0,0 +1,103 @@
from griptape.configs.drivers import AzureOpenAiDriversConfig
# StructureGlobalDriversConfig,
from griptape.drivers import (
AzureOpenAiChatPromptDriver,
AzureOpenAiEmbeddingDriver,
AzureOpenAiImageGenerationDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
DEFAULT_AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"
DEFAULT_AZURE_OPENAI_API_KEY = "AZURE_OPENAI_API_KEY"
class gtUIAzureOpenAiStructureConfig(gtUIBaseConfig):
"""
The Griptape OpenAI Structure Config
"""
DESCRIPTION = "Azure OpenAI Structure Config. Requires AZURE_OPENAI_ENDPOINT_3 and AZURE_OPENAI_API_KEY_3"
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["required"].update(
{
"prompt_model": (
["gpt-4o", "gpt-4", "gpt-3.5-turbo-16k", "gpt-3.5-turbo"],
{"default": "gpt-4o"},
),
"prompt_model_deployment_name": (
"STRING",
{"default": "gpt4o"},
),
}
)
inputs["optional"].update(
{
"api_key_env_var": (
"STRING",
{"default": DEFAULT_AZURE_OPENAI_API_KEY},
),
"azure_endpoint_env_var": (
"STRING",
{"default": DEFAULT_AZURE_OPENAI_ENDPOINT},
),
}
)
return inputs
def create(
self,
**kwargs,
):
params = {}
params["model"] = kwargs.get("prompt_model", "gpt-4o")
params["temperature"] = kwargs.get("temperature", 0.7)
params["seed"] = kwargs.get("seed", 12341)
params["max_attempts"] = kwargs.get("max_attempts_on_fail", 10)
params["azure_deployment"] = kwargs.get("prompt_model_deployment_name", "gpt4o")
params["use_native_tools"] = kwargs.get("use_native_tools", False)
params["stream"] = kwargs.get("stream", False)
image_generation_driver = kwargs.get("image_generation_driver", None)
max_tokens = kwargs.get("max_tokens", -1)
if max_tokens > 0:
params["max_tokens"] = max_tokens
AZURE_OPENAI_API_KEY = self.getenv(
kwargs.get("api_key_env_var", DEFAULT_AZURE_OPENAI_API_KEY)
)
AZURE_OPENAI_ENDPOINT = self.getenv(
kwargs.get("azure_endpoint_env_var", DEFAULT_AZURE_OPENAI_ENDPOINT)
)
params["api_key"] = self.getenv("AZURE_OPENAI_API_KEY")
params["azure_endpoint"] = self.getenv("AZURE_OPENAI_ENDPOINT")
prompt_driver = AzureOpenAiChatPromptDriver(**params)
embedding_driver = AzureOpenAiEmbeddingDriver(
api_key=self.getenv(AZURE_OPENAI_API_KEY),
azure_endpoint=self.getenv(AZURE_OPENAI_ENDPOINT),
)
if not image_generation_driver:
image_generation_driver = AzureOpenAiImageGenerationDriver(
azure_deployment="dall-e-3",
model="dall-e-3",
azure_endpoint=params["azure_endpoint"],
api_key=params["api_key"],
)
custom_config = AzureOpenAiDriversConfig(
prompt_driver=prompt_driver,
embedding_driver=embedding_driver,
image_generation_driver=image_generation_driver,
azure_endpoint=params["azure_endpoint"],
api_key=params["api_key"],
)
return (custom_config,)
@@ -0,0 +1,75 @@
from griptape.configs.drivers import (
GoogleDriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
GooglePromptDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
google_models = [
"gemini-1.5-pro",
"gemini-1.5-flash",
"gemini-1.0-pro",
]
DEFAULT_API_KEY = "GOOGLE_API_KEY"
class gtUIGoogleStructureConfig(gtUIBaseConfig):
"""
The Griptape Google Structure Config
"""
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["required"].update(
{
"prompt_model": (
google_models,
{"default": google_models[0]},
),
},
)
inputs["optional"].update(
{
"api_key_env_var": ("STRING", {"default": DEFAULT_API_KEY}),
}
)
return inputs
DESCRIPTION = (
"Google Structure Config. Use Google's models for prompt and image query."
)
def create(
self,
**kwargs,
):
params = {}
temperature = kwargs.get("temperature", 0.7)
prompt_model = kwargs.get("prompt_model", google_models[0])
max_attempts = kwargs.get("max_attempts_on_fail", 10)
api_key = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY))
use_native_tools = kwargs.get("use_native_tools", False)
max_tokens = kwargs.get("max_tokens", -1)
if max_tokens > 0:
params["max_tokens"] = max_tokens
custom_config = GoogleDriversConfig(
prompt_driver=GooglePromptDriver(
model=prompt_model,
temperature=temperature,
max_attempts=max_attempts,
api_key=api_key,
use_native_tools=use_native_tools,
**params,
),
)
return (custom_config,)
@@ -0,0 +1,60 @@
from dotenv import load_dotenv
from griptape.configs.drivers import (
DriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
HuggingFaceHubPromptDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
load_dotenv()
DEFAULT_API_KEY = "HUGGINGFACE_HUB_ACCESS_TOKEN"
class gtUIHuggingFaceStructureConfig(gtUIBaseConfig):
"""
Create a HuggingFace Structure Config
"""
DESCRIPTION = "HuggingFace Structure Config."
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["optional"].update(
{
"prompt_model": ("STRING", {"default": "HuggingFaceH4/zephyr-7b-beta"}),
"api_token_env_var": (
"STRING",
{"default": DEFAULT_API_KEY},
),
}
)
del inputs["optional"]["max_tokens"]
return inputs
def create(self, **kwargs):
prompt_model = kwargs.get("prompt_model", None)
temperature = kwargs.get("temperature", 0.7)
stream = kwargs.get("stream", False)
max_attempts = kwargs.get("max_attempts_on_fail", 10)
use_native_tools = kwargs.get("use_native_tools", False)
api_token = self.getenv(kwargs.get("api_token_env_var", DEFAULT_API_KEY))
configs = {}
if prompt_model and api_token:
configs["prompt_driver"] = HuggingFaceHubPromptDriver(
model=prompt_model,
api_token=api_token,
max_attempts=max_attempts,
temperature=temperature,
stream=stream,
use_native_tools=use_native_tools,
)
custom_config = DriversConfig(**configs)
return (custom_config,)
@@ -0,0 +1,65 @@
from griptape.configs.drivers import (
DriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
OpenAiChatPromptDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
lmstudio_port = "1234"
lmstudio_base_url = "http://127.0.0.1"
class gtUILMStudioStructureConfig(gtUIBaseConfig):
"""
The Griptape LM Studio Structure Config
"""
DESCRIPTION = (
"LM Studio Prompt Driver. LMStudio is available at https://lmstudio.ai "
)
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["required"].update(
{
"model": ((), {}),
"base_url": ("STRING", {"default": lmstudio_base_url}),
"port": (
"STRING",
{"default": lmstudio_port},
),
},
)
inputs["optional"].update(
{
"use_native_tools": ("BOOLEAN", {"default": False}),
}
)
return inputs
def create(self, **kwargs):
params = {}
params["model"] = kwargs.get("model", "")
port = kwargs.get("port", lmstudio_port)
base_url = kwargs.get("base_url", lmstudio_base_url)
params["base_url"] = f"{base_url}:{port}/v1"
params["temperature"] = kwargs.get("temperature", 0.7)
params["max_attempts"] = kwargs.get("max_attempts_on_fail", 10)
params["stream"] = kwargs.get("stream", False)
params["seed"] = kwargs.get("seed", 12341)
params["use_native_tools"] = kwargs.get("use_native_tools", False)
max_tokens = kwargs.get("max_tokens", -1)
if max_tokens > 0:
params["max_tokens"] = max_tokens
custom_config = DriversConfig(
prompt_driver=OpenAiChatPromptDriver(**params),
)
return (custom_config,)
@@ -0,0 +1,54 @@
from griptape.configs.drivers import (
DriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
OllamaPromptDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
ollama_port = "11434"
ollama_base_url = "http://127.0.0.1"
class gtUIOllamaStructureConfig(gtUIBaseConfig):
"""
The Griptape Ollama Structure Config
"""
DESCRIPTION = "Ollama Prompt Driver. Use local models with Ollama. Available at https://ollama.com"
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["required"].update(
{
"prompt_model": ((), {}),
"base_url": ("STRING", {"default": ollama_base_url}),
"port": ("STRING", {"default": ollama_port}),
},
)
return inputs
def create(self, **kwargs):
params = {}
params["model"] = kwargs.get("prompt_model", "")
params["temperature"] = kwargs.get("temperature", 0.7)
port = kwargs.get("port", ollama_port)
base_url = kwargs.get("base_url", ollama_base_url)
params["host"] = f"{base_url}:{port}"
params["stream"] = kwargs.get("stream", False)
params["use_native_tools"] = kwargs.get("use_native_tools", False)
params["max_attempts"] = kwargs.get("max_attempts_on_fail", 10)
max_tokens = kwargs.get("max_tokens", -1)
if max_tokens > 0:
params["max_tokens"] = max_tokens
custom_config = DriversConfig(
prompt_driver=OllamaPromptDriver(**params),
)
return (custom_config,)
@@ -10,7 +10,7 @@ from griptape.drivers import (
OpenAiTextToSpeechDriver,
)
from .gtUIBaseConfig import gtUIBaseConfig
from ..gtUIBaseConfig import gtUIBaseConfig
load_dotenv()
@@ -42,7 +42,6 @@ class gtUIOpenAiCompatibleConfig(gtUIBaseConfig):
return inputs
def create(self, **kwargs):
self.run_envs(kwargs)
params = {}
params["model"] = kwargs.get("prompt_model", None)
@@ -0,0 +1,68 @@
from griptape.configs import Defaults
from griptape.configs.drivers import (
OpenAiDriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
OpenAiChatPromptDriver,
)
from ..gtUIBaseConfig import gtUIBaseConfig
default_prompt_model = "gpt-4o"
default_image_query_model = "gpt-4o"
DEFAULT_API_KEY = "OPENAI_API_KEY"
class gtUIOpenAiStructureConfig(gtUIBaseConfig):
"""
The Griptape OpenAI Structure Config
"""
DESCRIPTION = "OpenAI Structure Config. Use OpenAI's models for prompt, embedding, image generation, and image query."
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["required"].update(
{
"prompt_model": (
["gpt-4o", "gpt-4", "gpt-4o-mini", "gpt-3.5-turbo"],
{"default": default_prompt_model},
),
}
)
inputs["optional"].update(
{
"api_key_env_var": ("STRING", {"default": DEFAULT_API_KEY}),
}
)
return inputs
def create(
self,
**kwargs,
):
params = {}
params["model"] = kwargs.get("prompt_model", default_prompt_model)
params["temperature"] = kwargs.get("temperature", 0.7)
params["seed"] = kwargs.get("seed", 12341)
params["max_attempts"] = kwargs.get("max_attempts_on_fail", 10)
params["api_key"] = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY))
params["use_native_tools"] = kwargs.get("use_native_tools", False)
max_tokens = kwargs.get("max_tokens", -1)
if max_tokens > 0:
params["max_tokens"] = max_tokens
try:
Defaults.drivers_config = OpenAiDriversConfig(
prompt_driver=OpenAiChatPromptDriver(**params)
)
# OpenAiStructureConfig()
custom_config = Defaults.drivers_config
except Exception as e:
raise Exception(f"Error creating OpenAiStructureConfig: {e}")
return (custom_config,)
@@ -18,7 +18,11 @@ from ..drivers.gtUIAmazonBedrockTitanEmbeddingDriver import (
from ..drivers.gtUIAmazonBedrockTitanImageGenerationDriver import (
gtUIAmazonBedrockTitanImageGenerationDriver,
)
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
amazonBedrockPromptModels = [
"anthropic.claude-3-5-sonnet-20240620-v1:0",
@@ -44,7 +48,7 @@ drivers = [
]
class gtUIAmazonBedrockStructureConfig(gtUIBaseConfig):
class gtUIAmazonBedrockDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape Amazon Bedrock Structure Config
"""
@@ -10,7 +10,11 @@ from griptape.drivers import (
from ..drivers.gtUIAnthropicPromptDriver import gtUIAnthropicPromptDriver
from ..drivers.gtUIVoyageAiEmbeddingDriver import gtUIVoyageAiEmbeddingDriver
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
anthropicPromptModels = [
"claude-3-5-sonnet-20240620",
@@ -28,7 +32,7 @@ drivers = [
]
class gtUIAnthropicStructureConfig(gtUIBaseConfig):
class gtUIAnthropicDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape Anthropic Structure Config
"""
@@ -14,7 +14,11 @@ from ..drivers.gtUIAzureOpenAiEmbeddingDriver import gtUIAzureOpenAiEmbeddingDri
from ..drivers.gtUIAzureOpenAiImageGenerationDriver import (
gtUIAzureOpenAiImageGenerationDriver,
)
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
DEFAULT_AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT"
DEFAULT_AZURE_OPENAI_API_KEY = "AZURE_OPENAI_API_KEY"
@@ -26,7 +30,7 @@ drivers = [
]
class gtUIAzureOpenAiStructureConfig(gtUIBaseConfig):
class gtUIAzureOpenAiDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape OpenAI Structure Config
"""
+26 -7
View File
@@ -3,8 +3,6 @@ import os
from griptape.configs import Defaults
from griptape.configs.drivers import OpenAiDriversConfig
from ..gtUIBase import gtUIBase
def add_required_inputs(inputs, drivers):
for _, driver in drivers:
@@ -27,7 +25,7 @@ def add_optional_inputs(inputs, drivers):
return inputs
class gtUIBaseConfig(gtUIBase):
class gtUIBaseConfig:
"""
Griptape Base Config
"""
@@ -37,9 +35,30 @@ class gtUIBaseConfig(gtUIBase):
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
return inputs
return {
"required": {},
"optional": {
"temperature": (
"FLOAT",
{"default": 0.1, "min": 0.0, "max": 1.0, "step": 0.01},
),
"seed": ("INT", {"default": 10342349342}),
"max_attempts_on_fail": (
"INT",
{"default": 10, "min": 1, "max": 100},
),
# "stream": ([True, False], {"default": False}),
"env": ("ENV", {"default": None}),
"use_native_tools": ("BOOLEAN", {"default": True}),
"max_tokens": (
"INT",
{
"default": -1,
"tooltip": "Maximum tokens to generate. If <=0, it will use the default based on the tokenizer.",
},
),
},
}
RETURN_TYPES = ("CONFIG",)
RETURN_NAMES = ("CONFIG",)
@@ -47,7 +66,7 @@ class gtUIBaseConfig(gtUIBase):
# OUTPUT_NODE = False
CATEGORY = "Griptape/Agent Configs"
CATEGORY = "Griptape/Agent Configs [DEPRECIATED]"
def getenv(self, env):
return os.getenv(env, None)
+57
View File
@@ -0,0 +1,57 @@
import os
from griptape.configs import Defaults
from griptape.configs.drivers import OpenAiDriversConfig
from ..gtUIBase import gtUIBase
def add_required_inputs(inputs, drivers):
for _, driver in drivers:
inputs["required"].update(driver.INPUT_TYPES()["required"])
return inputs
def add_optional_inputs(inputs, drivers):
# Add optional inputs and comments for each driver
for name, driver in drivers:
inputs["optional"].update(
{
f"{name}_model_comment": (
"STRING",
{"default": f"{name.replace('_', ' ').title()} Driver"},
),
}
)
inputs["optional"].update(driver.INPUT_TYPES()["optional"])
return inputs
class gtUIBaseDriversConfig(gtUIBase):
"""
Griptape Base Drivers Config
"""
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
return inputs
RETURN_TYPES = ("CONFIG",)
RETURN_NAMES = ("CONFIG",)
FUNCTION = "create"
# OUTPUT_NODE = False
CATEGORY = "Griptape/Agent Configs"
def getenv(self, env):
return os.getenv(env, None)
def create(self, **kwargs):
Defaults.drivers_config = OpenAiDriversConfig()
return (OpenAiDriversConfig(),)
@@ -12,7 +12,11 @@ from griptape.drivers import (
from ..drivers.gtUICohereEmbeddingDriver import gtUICohereEmbeddingDriver
from ..drivers.gtUICoherePromptDriver import gtUICoherePromptDriver
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
# Define the list of drivers
drivers = [
@@ -21,7 +25,7 @@ drivers = [
]
class gtUICohereStructureConfig(gtUIBaseConfig):
class gtUICohereDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape OpenAI Structure Config
"""
@@ -12,7 +12,11 @@ from griptape.drivers import (
from ..drivers.gtUIGoogleEmbeddingDriver import gtUIGoogleEmbeddingDriver
from ..drivers.gtUIGooglePromptDriver import gtUIGooglePromptDriver
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
google_models = [
"gemini-1.5-pro",
@@ -28,7 +32,7 @@ drivers = [
]
class gtUIGoogleStructureConfig(gtUIBaseConfig):
class gtUIGoogleDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape Google Structure Config
"""
@@ -15,7 +15,11 @@ from ..drivers.gtUIHuggingFaceHubEmbeddingDriver import (
gtUIHuggingFaceHubEmbeddingDriver,
)
from ..drivers.gtUIHuggingFaceHubPromptDriver import gtUIHuggingFaceHubPromptDriver
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
load_dotenv()
@@ -28,7 +32,7 @@ drivers = [
]
class gtUIHuggingFaceStructureConfig(gtUIBaseConfig):
class gtUIHuggingFaceDriversConfig(gtUIBaseDriversConfig):
"""
Create a HuggingFace Structure Config
"""
@@ -12,7 +12,11 @@ from griptape.drivers import (
from ..drivers.gtUILMStudioChatPromptDriver import gtUILMStudioChatPromptDriver
from ..drivers.gtUILMStudioEmbeddingDriver import gtUILMStudioEmbeddingDriver
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
drivers = [
("prompt", gtUILMStudioChatPromptDriver),
@@ -20,7 +24,7 @@ drivers = [
]
class gtUILMStudioStructureConfig(gtUIBaseConfig):
class gtUILMStudioDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape LM Studio Structure Config
"""
@@ -12,7 +12,11 @@ from griptape.drivers import (
from ..drivers.gtUIOllamaEmbeddingDriver import gtUIOllamaEmbeddingDriver
from ..drivers.gtUIOllamaPromptDriver import gtUIOllamaPromptDriver
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
drivers = [
("prompt", gtUIOllamaPromptDriver),
@@ -20,7 +24,7 @@ drivers = [
]
class gtUIOllamaStructureConfig(gtUIBaseConfig):
class gtUIOllamaDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape Ollama Structure Config
"""
@@ -0,0 +1,117 @@
from dotenv import load_dotenv
from griptape.configs import Defaults
from griptape.configs.drivers import (
OpenAiDriversConfig,
)
# StructureGlobalDriversConfig,
from griptape.drivers import (
LocalVectorStoreDriver,
OpenAiAudioTranscriptionDriver,
OpenAiChatPromptDriver,
OpenAiEmbeddingDriver,
OpenAiImageGenerationDriver,
OpenAiTextToSpeechDriver,
)
# Get all the drivers
from ..drivers.gtUIOpenAiAudioTranscriptionDriver import (
gtUIOpenAiAudioTranscriptionDriver,
)
from ..drivers.gtUIOpenAiCompatibleChatPromptDriver import (
gtUIOpenAiCompatibleChatPromptDriver,
)
from ..drivers.gtUIOpenAiCompatibleEmbeddingDriver import (
gtUIOpenAiCompatibleEmbeddingDriver,
)
from ..drivers.gtUIOpenAiCompatibleImageGenerationDriver import (
gtUIOpenAiCompatibleImageGenerationDriver,
)
from ..drivers.gtUIOpenAiTextToSpeechDriver import gtUIOpenAiTextToSpeechDriver
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
load_dotenv()
DEFAULT_API_KEY = "OPENAI_API_KEY"
# Define the list of drivers
drivers = [
("prompt", gtUIOpenAiCompatibleChatPromptDriver),
("image_generation", gtUIOpenAiCompatibleImageGenerationDriver),
("embedding", gtUIOpenAiCompatibleEmbeddingDriver),
("text_to_speech", gtUIOpenAiTextToSpeechDriver),
("audio_transcription", gtUIOpenAiAudioTranscriptionDriver),
]
class gtUIOpenAiCompatibleDriversConfig(gtUIBaseDriversConfig):
"""
Create an OpenAI Compatible Structure Config
"""
DESCRIPTION = "OpenAI Compatible Structure Config."
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["optional"] = {}
inputs = add_required_inputs(inputs, drivers)
inputs = add_optional_inputs(inputs, drivers)
return inputs
def create(self, **kwargs):
self.run_envs(kwargs)
drivers_config_params = {}
# Create instances of the driver classes
prompt_driver_builder = gtUIOpenAiCompatibleChatPromptDriver()
embedding_driver_builder = gtUIOpenAiCompatibleEmbeddingDriver()
audio_transcription_driver_builder = gtUIOpenAiAudioTranscriptionDriver()
image_generation_driver_builder = gtUIOpenAiCompatibleEmbeddingDriver()
text_to_speech_driver_builder = gtUIOpenAiTextToSpeechDriver()
# Build parameters for drivers
prompt_driver_params = prompt_driver_builder.build_params(**kwargs)
embedding_driver_params = embedding_driver_builder.build_params(**kwargs)
image_generation_driver_params = image_generation_driver_builder.build_params(
**kwargs
)
text_to_speech_driver_params = text_to_speech_driver_builder.build_params(
**kwargs
)
audio_transcription_driver_params = (
audio_transcription_driver_builder.build_params(**kwargs)
)
# Create Driver Configs
drivers_config_params["prompt_driver"] = OpenAiChatPromptDriver(
**prompt_driver_params
)
drivers_config_params["embedding_driver"] = OpenAiEmbeddingDriver(
**embedding_driver_params
)
drivers_config_params["audio_transcription_driver"] = (
OpenAiAudioTranscriptionDriver(**audio_transcription_driver_params)
)
drivers_config_params["image_generation_driver"] = OpenAiImageGenerationDriver(
**image_generation_driver_params
)
drivers_config_params["text_to_speech_driver"] = OpenAiTextToSpeechDriver(
**text_to_speech_driver_params
)
drivers_config_params["vector_store_driver"] = LocalVectorStoreDriver(
embedding_driver=OpenAiEmbeddingDriver(**embedding_driver_params)
)
try:
Defaults.drivers_config = OpenAiDriversConfig(**drivers_config_params)
custom_config = Defaults.drivers_config
except Exception as e:
raise Exception(f"Error creating OpenAiCompatibleDriversConfig: {e}")
return (custom_config,)
@@ -21,7 +21,11 @@ from ..drivers.gtUIOpenAiChatPromptDriver import gtUIOpenAiChatPromptDriver
from ..drivers.gtUIOpenAiEmbeddingDriver import gtUIOpenAiEmbeddingDriver
from ..drivers.gtUIOpenAiImageGenerationDriver import gtUIOpenAiImageGenerationDriver
from ..drivers.gtUIOpenAiTextToSpeechDriver import gtUIOpenAiTextToSpeechDriver
from .gtUIBaseConfig import add_optional_inputs, add_required_inputs, gtUIBaseConfig
from .gtUIBaseDriversConfig import (
add_optional_inputs,
add_required_inputs,
gtUIBaseDriversConfig,
)
default_prompt_model = "gpt-4o"
default_image_query_model = "gpt-4o"
@@ -37,12 +41,12 @@ drivers = [
]
class gtUIOpenAiStructureConfig(gtUIBaseConfig):
class gtUIOpenAiDriversConfig(gtUIBaseDriversConfig):
"""
The Griptape OpenAI Structure Config
"""
DESCRIPTION = "OpenAI Structure Config. Use OpenAI's models for prompt, embedding, image generation, and image query."
DESCRIPTION = "OpenAI Drivers Config. Use OpenAI's models for prompt, embedding, image generation, and image query."
@classmethod
def INPUT_TYPES(s):
@@ -1,23 +1,25 @@
from griptape.drivers import OpenAiChatPromptDriver
from .gtUIBasePromptDriver import gtUIBasePromptDriver
from .gtUIOpenAiChatPromptDriver import gtUIOpenAiChatPromptDriver
default_model = "gpt-4o"
default_base_url = "https://api.openai.com/v1"
DEFAULT_API_KEY_ENV = "OPENAI_API_KEY"
class gtUIOpenAiCompatibleChatPromptDriver(gtUIBasePromptDriver):
class gtUIOpenAiCompatibleChatPromptDriver(gtUIOpenAiChatPromptDriver):
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
# Get the base required and optional inputs
base_required_inputs = inputs["required"]
base_optional_inputs = inputs["optional"]
inputs["optional"].update(
{
"model": ("STRING", {"default": default_model}),
"base_url": ("STRING", {"default": default_base_url}),
"api_key_env_var": ("STRING", {"default": DEFAULT_API_KEY_ENV}),
"use_native_tools": ("BOOLEAN", {"default": False}),
}
)
@@ -28,6 +30,7 @@ class gtUIOpenAiCompatibleChatPromptDriver(gtUIBasePromptDriver):
def build_params(self, **kwargs):
model = kwargs.get("model", None)
base_url = kwargs.get("base_url", default_base_url)
response_format = kwargs.get("response_format", None)
if kwargs.get("api_key"):
api_key = kwargs.get("api_key")
else:
@@ -45,6 +48,8 @@ class gtUIOpenAiCompatibleChatPromptDriver(gtUIBasePromptDriver):
"use_native_tools": use_native_tools,
"max_attempts": max_attempts,
}
if response_format:
params["response_format"] = response_format
if max_tokens > 0:
params["max_tokens"] = max_tokens
@@ -0,0 +1,45 @@
from griptape.drivers import (
OpenAiImageGenerationDriver,
)
from .gtUIOpenAiImageGenerationDriver import gtUIOpenAiImageGenerationDriver
DEFAULT_API_KEY = "OPENAI_API_KEY"
models = ["dall-e-3", "dall-e-2"]
sizes = ["256x256", "512x512", "1024x1024", "1024x1792", "1792x1024"]
default_base_url = "https://api.openai.com/v1"
class gtUIOpenAiCompatibleImageGenerationDriver(gtUIOpenAiImageGenerationDriver):
DESCRIPTION = "OpenAI Image Generation Driver"
@classmethod
def INPUT_TYPES(s):
inputs = super().INPUT_TYPES()
inputs["optional"].update(
{
"base_url": ("STRING", {"default": default_base_url}),
}
)
return inputs
def build_params(self, **kwargs):
size_from_args = kwargs.get("size", sizes[2])
model = kwargs.get("image_generation_model", models[0])
size = self.adjust_size_based_on_model(model, size_from_args)
api_key = self.getenv(kwargs.get("api_key_env_var", DEFAULT_API_KEY))
base_url = kwargs.get("base_url", default_base_url)
params = {
"model": model,
"image_size": size,
"api_key": api_key,
"base_url": base_url,
}
return params
def create(self, **kwargs):
params = self.build_params(**kwargs)
driver = OpenAiImageGenerationDriver(**params)
return (driver,)