From e0c96b2cbbe905f001f68bcfbb34b01a0da01290 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Mon, 3 Apr 2023 20:49:19 -0300 Subject: [PATCH] feat: messages nodes implemented but deactivated for now --- src/backend/langflow/config.yaml | 9 +++++---- src/backend/langflow/template/constants.py | 21 +++++++++++++++++++++ src/backend/langflow/template/nodes.py | 12 +++++++++++- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index af369f193..da314b751 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -13,10 +13,11 @@ agents: prompts: - PromptTemplate - FewShotPromptTemplate - - ChatPromptTemplate - - SystemMessagePromptTemplate - - AIMessagePromptTemplate - - HumanMessagePromptTemplate + - ZeroShotPrompt + # Wait more tests + # - ChatPromptTemplate + # - SystemMessagePromptTemplate + # - HumanMessagePromptTemplate llms: - OpenAI diff --git a/src/backend/langflow/template/constants.py b/src/backend/langflow/template/constants.py index bb8920a8d..ae08d3691 100644 --- a/src/backend/langflow/template/constants.py +++ b/src/backend/langflow/template/constants.py @@ -9,3 +9,24 @@ FORCE_SHOW_FIELDS = [ "max_value_length", "max_tokens", ] + +DEFAULT_PROMPT = """ +I want you to act as a naming consultant for new companies. + +Here are some examples of good company names: + +- search engine, Google +- social media, Facebook +- video sharing, YouTube + +The name should be short, catchy and easy to remember. + +What is a good name for a company that makes {product}? +""" + +SYSTEM_PROMPT = """ +You are a helpful assistant that talks casually about life in general. +You are a good listener and you can talk about anything. +""" + +HUMAN_PROMPT = "{input}" diff --git a/src/backend/langflow/template/nodes.py b/src/backend/langflow/template/nodes.py index ad408a6c8..b58775a5c 100644 --- a/src/backend/langflow/template/nodes.py +++ b/src/backend/langflow/template/nodes.py @@ -2,6 +2,7 @@ from typing import Optional from langchain.agents.mrkl import prompt from langflow.template.base import FrontendNode, Template, TemplateField +from langflow.template.constants import DEFAULT_PROMPT, HUMAN_PROMPT, SYSTEM_PROMPT from langflow.utils.constants import DEFAULT_PYTHON_FUNCTION from langchain.agents import loading @@ -244,6 +245,15 @@ class PromptFrontendNode(FrontendNode): def format_field(field: TemplateField, name: Optional[str] = None) -> None: # if field.field_type == "StringPromptTemplate" # change it to str - if field.field_type == "StringPromptTemplate": + if field.field_type == "StringPromptTemplate" and "Message" in name: field.field_type = "str" field.multiline = True + field.value = HUMAN_PROMPT if "Human" in field.name else SYSTEM_PROMPT + if field.name == "template": + field.value = DEFAULT_PROMPT + + if ( + "Union" in field.field_type + and "BaseMessagePromptTemplate" in field.field_type + ): + field.field_type = "BaseMessagePromptTemplate"