respect workflow and block model overrides (#4013)
This commit is contained in:
@@ -1806,15 +1806,12 @@ async def wrapper():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_TEXT_PROMPT_LLM_KEY = settings.PROMPT_BLOCK_LLM_KEY or settings.LLM_KEY
|
|
||||||
|
|
||||||
|
|
||||||
class TextPromptBlock(Block):
|
class TextPromptBlock(Block):
|
||||||
# There is a mypy bug with Literal. Without the type: ignore, mypy will raise an error:
|
# There is a mypy bug with Literal. Without the type: ignore, mypy will raise an error:
|
||||||
# Parameter 1 of Literal[...] cannot be of type "Any"
|
# Parameter 1 of Literal[...] cannot be of type "Any"
|
||||||
block_type: Literal[BlockType.TEXT_PROMPT] = BlockType.TEXT_PROMPT # type: ignore
|
block_type: Literal[BlockType.TEXT_PROMPT] = BlockType.TEXT_PROMPT # type: ignore
|
||||||
|
|
||||||
llm_key: str = DEFAULT_TEXT_PROMPT_LLM_KEY
|
llm_key: str | None = None
|
||||||
prompt: str
|
prompt: str
|
||||||
parameters: list[PARAMETER_TYPE] = []
|
parameters: list[PARAMETER_TYPE] = []
|
||||||
json_schema: dict[str, Any] | None = None
|
json_schema: dict[str, Any] | None = None
|
||||||
@@ -1826,14 +1823,16 @@ class TextPromptBlock(Block):
|
|||||||
return self.parameters
|
return self.parameters
|
||||||
|
|
||||||
def format_potential_template_parameters(self, workflow_run_context: WorkflowRunContext) -> None:
|
def format_potential_template_parameters(self, workflow_run_context: WorkflowRunContext) -> None:
|
||||||
self.llm_key = self.format_block_parameter_template_from_workflow_run_context(
|
if self.llm_key:
|
||||||
self.llm_key, workflow_run_context
|
self.llm_key = self.format_block_parameter_template_from_workflow_run_context(
|
||||||
)
|
self.llm_key, workflow_run_context
|
||||||
|
)
|
||||||
self.prompt = self.format_block_parameter_template_from_workflow_run_context(self.prompt, workflow_run_context)
|
self.prompt = self.format_block_parameter_template_from_workflow_run_context(self.prompt, workflow_run_context)
|
||||||
|
|
||||||
async def send_prompt(self, prompt: str, parameter_values: dict[str, Any]) -> dict[str, Any]:
|
async def send_prompt(self, prompt: str, parameter_values: dict[str, Any]) -> dict[str, Any]:
|
||||||
llm_key = self.llm_key or DEFAULT_TEXT_PROMPT_LLM_KEY
|
llm_api_handler = LLMAPIHandlerFactory.get_override_llm_api_handler(
|
||||||
llm_api_handler = LLMAPIHandlerFactory.get_llm_api_handler(llm_key)
|
self.override_llm_key or self.llm_key, default=app.LLM_API_HANDLER
|
||||||
|
)
|
||||||
if not self.json_schema:
|
if not self.json_schema:
|
||||||
self.json_schema = {
|
self.json_schema = {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
|||||||
@@ -257,9 +257,6 @@ class CodeBlockYAML(BlockYAML):
|
|||||||
parameter_keys: list[str] | None = None
|
parameter_keys: list[str] | None = None
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_TEXT_PROMPT_LLM_KEY = settings.SECONDARY_LLM_KEY or settings.LLM_KEY
|
|
||||||
|
|
||||||
|
|
||||||
class TextPromptBlockYAML(BlockYAML):
|
class TextPromptBlockYAML(BlockYAML):
|
||||||
# There is a mypy bug with Literal. Without the type: ignore, mypy will raise an error:
|
# There is a mypy bug with Literal. Without the type: ignore, mypy will raise an error:
|
||||||
# Parameter 1 of Literal[...] cannot be of type "Any"
|
# Parameter 1 of Literal[...] cannot be of type "Any"
|
||||||
@@ -267,7 +264,7 @@ class TextPromptBlockYAML(BlockYAML):
|
|||||||
# to infer the type of the parameter_type attribute.
|
# to infer the type of the parameter_type attribute.
|
||||||
block_type: Literal[BlockType.TEXT_PROMPT] = BlockType.TEXT_PROMPT # type: ignore
|
block_type: Literal[BlockType.TEXT_PROMPT] = BlockType.TEXT_PROMPT # type: ignore
|
||||||
|
|
||||||
llm_key: str = DEFAULT_TEXT_PROMPT_LLM_KEY
|
llm_key: str | None = None
|
||||||
prompt: str
|
prompt: str
|
||||||
parameter_keys: list[str] | None = None
|
parameter_keys: list[str] | None = None
|
||||||
json_schema: dict[str, Any] | None = None
|
json_schema: dict[str, Any] | None = None
|
||||||
|
|||||||
Reference in New Issue
Block a user