Created
September 24, 2023 20:41
-
-
Save rodrigosnader/18c915b696b64adaad4a4b70a73f0bd7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"name":"Micro Tutorials","description":"A flow design to help Rodrigo write his Micro Tutorials.","data":{"nodes":[{"width":384,"height":617,"id":"PromptTemplate-YOQkk","type":"genericNode","position":{"x":871.7719613232982,"y":230.99434139772154},"data":{"type":"PromptTemplate","node":{"template":{"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":true,"info":"","type":"BaseOutputParser","list":false},"input_variables":{"required":true,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_variables","advanced":false,"dynamic":true,"info":"","type":"str","list":true,"value":["topic","feature","desc","objective"]},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"dynamic":true,"info":"","type":"code","list":false},"template":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"template","advanced":false,"dynamic":true,"info":"","type":"prompt","list":false,"value":"Rewrite the text below to improve potential grammar mistakes and make it more concise and not repetitive. Keep it identical where possible and make sure to keep the topics (such as Main Features) intact. \n\nTry to use neutral language and avoid overestimating functionalities.\n\n-------\n\nWelcome back to our Langflow micro tutorials series! We'll continue our journey into very simple Langflow examples, highlighting ideas and the design of custom components.\n\nThis article provides a link to download the described flow. Use it to modify and understand the components in use.\n\nToday, we focus on {topic}. Have fun!\n\n- Main Features\n{feature}: {desc}\n\n- Objective\n{objective}"},"template_format":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"f-string","password":false,"name":"template_format","advanced":false,"dynamic":true,"info":"","type":"str","list":false},"validate_template":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"validate_template","advanced":false,"dynamic":true,"info":"","type":"bool","list":false},"_type":"PromptTemplate","topic":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"topic","display_name":"topic","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false},"feature":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"feature","display_name":"feature","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false},"desc":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"desc","display_name":"desc","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false},"objective":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"objective","display_name":"objective","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false}},"description":"A prompt template for a language model.","base_classes":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"],"name":"","display_name":"PromptTemplate","documentation":"https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/","custom_fields":{"":["topic","feature","desc","objective"],"template":["topic","feature","desc","objective"]},"output_types":[],"field_formatters":{"formatters":{"openai_api_key":{}},"base_formatters":{"kwargs":{},"optional":{},"list":{},"dict":{},"union":{},"multiline":{},"show":{},"password":{},"default":{},"headers":{},"dict_code_file":{},"model_fields":{"MODEL_DICT":{"OpenAI":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"ChatOpenAI":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"Anthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"],"ChatAnthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"]}}}},"beta":false,"error":null},"id":"PromptTemplate-YOQkk","value":null},"selected":false,"positionAbsolute":{"x":871.7719613232982,"y":230.99434139772154},"dragging":false},{"width":384,"height":273,"id":"CustomComponent-OTnTa","type":"genericNode","position":{"x":-250.3939936564467,"y":22.095559450759993},"data":{"type":"CustomComponent","node":{"template":{"code":{"dynamic":true,"required":true,"placeholder":"","show":true,"multiline":true,"value":"from langflow import CustomComponent\n\nfrom langchain.llms.base import BaseLLM\nfrom langchain.chains import LLMChain\nfrom langchain import PromptTemplate\nfrom langchain.schema import Document\n\nimport requests\n\nclass YourComponent(CustomComponent):\n display_name: str = \"Topic\"\n description: str = \"Text input component that returns a Document.\"\n\n def build_config(self):\n return { \"text\": { \"multiline\": True, \"required\": True } }\n\n def build(self, text: str) -> Document:\n return text\n","password":false,"name":"code","advanced":true,"type":"code","list":false},"_type":"CustomComponent","text":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"text","display_name":"text","advanced":false,"dynamic":false,"info":"","type":"str","list":false,"value":"A web loader that Loads multiple websites and runs the same prompted LLM in each one of them."}},"description":"Text input component that returns a Document.","base_classes":["Document"],"display_name":"Topic","custom_fields":{"text":null},"output_types":[],"documentation":"","beta":true,"error":null},"id":"CustomComponent-OTnTa","value":null},"selected":false,"positionAbsolute":{"x":-250.3939936564467,"y":22.095559450759993},"dragging":false},{"width":384,"height":273,"id":"CustomComponent-Pbpq5","type":"genericNode","position":{"x":-248.93814000840024,"y":397.94520187654257},"data":{"type":"CustomComponent","node":{"template":{"code":{"dynamic":true,"required":true,"placeholder":"","show":true,"multiline":true,"value":"from langflow import CustomComponent\n\nfrom langchain.llms.base import BaseLLM\nfrom langchain.chains import LLMChain\nfrom langchain import PromptTemplate\nfrom langchain.schema import Document\n\nimport requests\n\nclass YourComponent(CustomComponent):\n display_name: str = \"Feature\"\n description: str = \"Text input component that returns a Document.\"\n\n def build_config(self):\n return { \"text\": { \"multiline\": True, \"required\": True } }\n\n def build(self, text: str) -> Document:\n return text\n","password":false,"name":"code","advanced":true,"type":"code","list":false},"_type":"CustomComponent","text":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"text","display_name":"text","advanced":false,"dynamic":false,"info":"","type":"str","list":false,"value":"Batch Web Loader"}},"description":"Text input component that returns a Document.","base_classes":["Document"],"display_name":"Feature","custom_fields":{"text":null},"output_types":[],"documentation":"","beta":true,"error":null},"id":"CustomComponent-Pbpq5","value":null},"selected":false,"positionAbsolute":{"x":-248.93814000840024,"y":397.94520187654257},"dragging":false},{"width":384,"height":273,"id":"CustomComponent-9vg32","type":"genericNode","position":{"x":-817.4001304633931,"y":867.3086788099931},"data":{"type":"CustomComponent","node":{"template":{"code":{"dynamic":true,"required":true,"placeholder":"","show":true,"multiline":true,"value":"from langflow import CustomComponent\n\nfrom langchain.llms.base import BaseLLM\nfrom langchain.chains import LLMChain\nfrom langchain import PromptTemplate\nfrom langchain.schema import Document\n\nimport requests\n\nclass YourComponent(CustomComponent):\n display_name: str = \"Feature Description\"\n description: str = \"Text input component that returns a Document.\"\n\n def build_config(self):\n return { \"text\": { \"multiline\": True, \"required\": True } }\n\n def build(self, text: str) -> Document:\n return text\n","password":false,"name":"code","advanced":true,"type":"code","list":false},"_type":"CustomComponent","text":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"text","display_name":"text","advanced":false,"dynamic":false,"info":"","type":"str","list":false,"value":"Custom Component that runs langchain's WebBaseLoader within a for loop."}},"description":"Text input component that returns a Document.","base_classes":["Document"],"display_name":"Feature Description","custom_fields":{"text":null},"output_types":[],"documentation":"","beta":true,"error":null},"id":"CustomComponent-9vg32","value":null},"selected":false,"positionAbsolute":{"x":-817.4001304633931,"y":867.3086788099931},"dragging":false},{"width":384,"height":363,"id":"ChatOpenAI-YMCfJ","type":"genericNode","position":{"x":-816.0853051614088,"y":1543.7877207274382},"data":{"type":"ChatOpenAI","node":{"template":{"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"dynamic":false,"info":"","type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"dynamic":false,"info":"","type":"Any","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"dynamic":false,"info":"","type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":true,"dynamic":false,"info":"","type":"int","list":false,"value":""},"metadata":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadata","advanced":false,"dynamic":false,"info":"","type":"code","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"dynamic":false,"info":"","type":"code","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-3.5-turbo","password":false,"options":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"dynamic":false,"info":"","type":"str","list":true},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"dynamic":false,"info":"","type":"int","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":true,"dynamic":false,"info":"\nThe base URL of the OpenAI API. Defaults to https://api.openai.com/v1.\n\nYou can change this to use other APIs like JinaChat, LocalAI and Prem.\n","type":"str","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"dynamic":false,"info":"","type":"float","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"dynamic":false,"info":"","type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"0.1","password":false,"name":"temperature","advanced":true,"dynamic":false,"info":"","type":"float","list":false},"tiktoken_model_name":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tiktoken_model_name","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"_type":"ChatOpenAI"},"description":"`OpenAI` Chat large language models API.","base_classes":["BaseLanguageModel","ChatOpenAI","BaseChatModel","BaseLLM"],"display_name":"ChatOpenAI","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai","beta":false,"error":null},"id":"ChatOpenAI-YMCfJ","value":null},"selected":false,"positionAbsolute":{"x":-816.0853051614088,"y":1543.7877207274382},"dragging":false},{"width":384,"height":359,"id":"PromptTemplate-DoByj","type":"genericNode","position":{"x":-240.07180030241,"y":838.8036546787966},"data":{"type":"PromptTemplate","node":{"template":{"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":true,"info":"","type":"BaseOutputParser","list":false},"input_variables":{"required":true,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_variables","advanced":false,"dynamic":true,"info":"","type":"str","list":true,"value":["text"]},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"dynamic":true,"info":"","type":"code","list":false},"template":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"template","advanced":false,"dynamic":true,"info":"","type":"prompt","list":false,"value":"Improve the text below to become the description section of a key feature.\n\n{text}\n\n"},"template_format":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"f-string","password":false,"name":"template_format","advanced":false,"dynamic":true,"info":"","type":"str","list":false},"validate_template":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"validate_template","advanced":false,"dynamic":true,"info":"","type":"bool","list":false},"_type":"PromptTemplate","text":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"text","display_name":"text","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false}},"description":"A prompt template for a language model.","base_classes":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"],"name":"","display_name":"PromptTemplate","documentation":"https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/","custom_fields":{"":["text"],"template":["text"]},"output_types":[],"field_formatters":{"formatters":{"openai_api_key":{}},"base_formatters":{"kwargs":{},"optional":{},"list":{},"dict":{},"union":{},"multiline":{},"show":{},"password":{},"default":{},"headers":{},"dict_code_file":{},"model_fields":{"MODEL_DICT":{"OpenAI":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"ChatOpenAI":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"Anthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"],"ChatAnthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"]}}}},"beta":false,"error":null},"id":"PromptTemplate-DoByj","value":null},"selected":false,"positionAbsolute":{"x":-240.07180030241,"y":838.8036546787966},"dragging":false},{"width":384,"height":353,"id":"CustomComponent-42KTM","type":"genericNode","position":{"x":258.14419929671,"y":857.7346940744139},"data":{"type":"CustomComponent","node":{"template":{"code":{"dynamic":true,"required":true,"placeholder":"","show":true,"multiline":true,"value":"from langflow import CustomComponent\n\nfrom langchain.llms.base import BaseLLM\nfrom langchain.chains import LLMChain\nfrom langchain import PromptTemplate\nfrom langchain.schema import Document\n\n\nclass YourComponent(CustomComponent):\n display_name: str = \"LLM Runner\"\n description: str = \"Build and run a chain with no free parameters\"\n\n def build(self, llm: BaseLLM, prompt: PromptTemplate) -> Document:\n chain = LLMChain(llm=llm, prompt=prompt)\n result = chain.run({\"\":\"\"})\n return Document(page_content=str(result))\n","password":false,"name":"code","advanced":false,"type":"code","list":false},"_type":"CustomComponent","llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"llm","advanced":false,"dynamic":false,"info":"","type":"BaseLLM","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","display_name":"prompt","advanced":false,"dynamic":false,"info":"","type":"PromptTemplate","list":false}},"description":"Build and run a chain with no free parameters","base_classes":["Document"],"display_name":"LLM Runner","custom_fields":{"llm":null,"prompt":null},"output_types":[],"documentation":"","beta":true,"error":null},"id":"CustomComponent-42KTM","value":null},"positionAbsolute":{"x":258.14419929671,"y":857.7346940744139},"selected":true,"dragging":false},{"width":384,"height":307,"id":"LLMChain-ZY0kx","type":"genericNode","position":{"x":1562.3323546159727,"y":871.1027368281791},"data":{"type":"LLMChain","node":{"template":{"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"dynamic":false,"info":"","type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"dynamic":false,"info":"","type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"dynamic":false,"info":"","type":"BaseMemory","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":false,"info":"","type":"BaseLLMOutputParser","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"dynamic":false,"info":"","type":"BasePromptTemplate","list":false},"llm_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm_kwargs","advanced":false,"dynamic":false,"info":"","type":"code","list":false},"metadata":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadata","advanced":false,"dynamic":false,"info":"","type":"code","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"dynamic":false,"info":"","type":"str","list":false},"return_final_only":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"return_final_only","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"dynamic":false,"info":"","type":"str","list":true},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"dynamic":false,"info":"","type":"bool","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["Chain","LLMChain","function"],"display_name":"LLMChain","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/chains/foundational/llm_chain","beta":false,"error":null},"id":"LLMChain-ZY0kx","value":null},"selected":false,"positionAbsolute":{"x":1562.3323546159727,"y":871.1027368281791},"dragging":false},{"width":384,"height":273,"id":"CustomComponent-181iO","type":"genericNode","position":{"x":-813.6135899726362,"y":1220.5349271579757},"data":{"type":"CustomComponent","node":{"template":{"code":{"dynamic":true,"required":true,"placeholder":"","show":true,"multiline":true,"value":"from langflow import CustomComponent\n\nfrom langchain.llms.base import BaseLLM\nfrom langchain.chains import LLMChain\nfrom langchain import PromptTemplate\nfrom langchain.schema import Document\n\nimport requests\n\nclass YourComponent(CustomComponent):\n display_name: str = \"Objective\"\n description: str = \"Text input component that returns a Document.\"\n\n def build_config(self):\n return { \"text\": { \"multiline\": True, \"required\": True } }\n\n def build(self, text: str) -> Document:\n return text\n","password":false,"name":"code","advanced":true,"type":"code","list":false},"_type":"CustomComponent","text":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"text","display_name":"text","advanced":false,"dynamic":false,"info":"","type":"str","list":false,"value":"As demonstrated in previous tutorials, here I'm using again the structure output parser to have the extracted information in JSON format. Prompt receives the webpage loaded and the parser instructions. The idea is to web scrape features like Name, Birthday and Born Location from a wikipedia page but you can imagine how to extrapolate this for multiple scraping purposes. To export the files, I created another custom component to store them as JSON files. Notice that the webpage field keeps empty in the prompt template so that it can be recursively filled by the for-loop inside custom component created. The field is filled with a list of webpages. Here I used: [\"https://en.wikipedia.org/wiki/Meryl_Streep\", \"https://en.wikipedia.org/wiki/Tom_Cruise\"] created 2 files (in Langflow installation folder, since no path was passed): Mary Louise Streep.json Tom Cruise.json"}},"description":"Text input component that returns a Document.","base_classes":["Document"],"display_name":"Objective","custom_fields":{"text":null},"output_types":[],"documentation":"","beta":true,"error":null},"id":"CustomComponent-181iO","value":null},"selected":false,"positionAbsolute":{"x":-813.6135899726362,"y":1220.5349271579757},"dragging":false},{"width":384,"height":359,"id":"PromptTemplate-Nsu3o","type":"genericNode","position":{"x":-245.04504090554622,"y":1223.0861011122865},"data":{"type":"PromptTemplate","node":{"template":{"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":true,"info":"","type":"BaseOutputParser","list":false},"input_variables":{"required":true,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_variables","advanced":false,"dynamic":true,"info":"","type":"str","list":true,"value":["text"]},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"dynamic":true,"info":"","type":"code","list":false},"template":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"template","advanced":false,"dynamic":true,"info":"","type":"prompt","list":false,"value":"Improve the text below to become the objective section of the flow (or custom components) described in an article. The goal is to talk about the objective of the flow, not the objective of the article itself. \n\nObjective:\nTo {text}\n\n"},"template_format":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"f-string","password":false,"name":"template_format","advanced":false,"dynamic":true,"info":"","type":"str","list":false},"validate_template":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"validate_template","advanced":false,"dynamic":true,"info":"","type":"bool","list":false},"_type":"PromptTemplate","text":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"text","display_name":"text","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false}},"description":"A prompt template for a language model.","base_classes":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"],"name":"","display_name":"PromptTemplate","documentation":"https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/","custom_fields":{"":["text"],"template":["text"]},"output_types":[],"field_formatters":{"formatters":{"openai_api_key":{}},"base_formatters":{"kwargs":{},"optional":{},"list":{},"dict":{},"union":{},"multiline":{},"show":{},"password":{},"default":{},"headers":{},"dict_code_file":{},"model_fields":{"MODEL_DICT":{"OpenAI":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"ChatOpenAI":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"Anthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"],"ChatAnthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"]}}}},"beta":false,"error":null},"id":"PromptTemplate-Nsu3o","value":null},"selected":false,"positionAbsolute":{"x":-245.04504090554622,"y":1223.0861011122865},"dragging":false},{"width":384,"height":353,"id":"CustomComponent-fBtt9","type":"genericNode","position":{"x":258.39302974355894,"y":1229.5757998660615},"data":{"type":"CustomComponent","node":{"template":{"code":{"dynamic":true,"required":true,"placeholder":"","show":true,"multiline":true,"value":"from langflow import CustomComponent\n\nfrom langchain.llms.base import BaseLLM\nfrom langchain.chains import LLMChain\nfrom langchain import PromptTemplate\nfrom langchain.schema import Document\n\nimport requests\n\nclass YourComponent(CustomComponent):\n display_name: str = \"LLM Runner\"\n description: str = \"Build and run a chain with no remaining parameters\"\n\n def build_config(self):\n return {}\n\n def build(self, llm: BaseLLM, prompt: PromptTemplate) -> Document:\n chain = LLMChain(llm=llm, prompt=prompt)\n result = chain.run({\"\":\"\"})\n return Document(page_content=str(result))\n","password":false,"name":"code","advanced":false,"type":"code","list":false},"_type":"CustomComponent","llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"llm","advanced":false,"dynamic":false,"info":"","type":"BaseLLM","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","display_name":"prompt","advanced":false,"dynamic":false,"info":"","type":"PromptTemplate","list":false}},"description":"Build and run a chain with no remaining parameters","base_classes":["Document"],"display_name":"LLM Runner","custom_fields":{"llm":null,"prompt":null},"output_types":[],"documentation":"","beta":true,"error":null},"id":"CustomComponent-fBtt9","value":null},"selected":false,"positionAbsolute":{"x":258.39302974355894,"y":1229.5757998660615},"dragging":false}],"edges":[{"source":"CustomComponent-OTnTa","sourceHandle":"{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-OTnTaœ}","target":"PromptTemplate-YOQkk","targetHandle":"{œfieldNameœ:œtopicœ,œidœ:œPromptTemplate-YOQkkœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-CustomComponent-OTnTaCustomComponent|CustomComponent-OTnTa|Document-PromptTemplate-YOQkkDocument;BaseOutputParser|topic|PromptTemplate-YOQkk","selected":false,"data":{"sourceHandle":{"baseClasses":["Document"],"dataType":"CustomComponent","id":"CustomComponent-OTnTa"},"targetHandle":{"fieldName":"topic","id":"PromptTemplate-YOQkk","inputTypes":["Document","BaseOutputParser"],"type":"str"}}},{"source":"CustomComponent-9vg32","sourceHandle":"{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-9vg32œ}","target":"PromptTemplate-DoByj","targetHandle":"{œfieldNameœ:œtextœ,œidœ:œPromptTemplate-DoByjœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-CustomComponent-9vg32CustomComponent|CustomComponent-9vg32|Document-PromptTemplate-DoByjDocument;BaseOutputParser|text|PromptTemplate-DoByj","selected":false,"data":{"sourceHandle":{"baseClasses":["Document"],"dataType":"CustomComponent","id":"CustomComponent-9vg32"},"targetHandle":{"fieldName":"text","id":"PromptTemplate-DoByj","inputTypes":["Document","BaseOutputParser"],"type":"str"}}},{"source":"ChatOpenAI-YMCfJ","sourceHandle":"{œbaseClassesœ:[œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-YMCfJœ}","target":"CustomComponent-42KTM","targetHandle":"{œfieldNameœ:œllmœ,œidœ:œCustomComponent-42KTMœ,œinputTypesœ:null,œtypeœ:œBaseLLMœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-ChatOpenAI-YMCfJChatOpenAI|ChatOpenAI-YMCfJ|ChatOpenAI|BaseLanguageModel|BaseChatModel|BaseLLM-CustomComponent-42KTMBaseLLM|llm|CustomComponent-42KTM","selected":false,"data":{"sourceHandle":{"baseClasses":["BaseLanguageModel","ChatOpenAI","BaseChatModel","BaseLLM"],"dataType":"ChatOpenAI","id":"ChatOpenAI-YMCfJ"},"targetHandle":{"fieldName":"llm","id":"CustomComponent-42KTM","inputTypes":null,"type":"BaseLLM"}}},{"source":"PromptTemplate-DoByj","sourceHandle":"{œbaseClassesœ:[œPromptTemplateœ,œBasePromptTemplateœ,œStringPromptTemplateœ],œdataTypeœ:œPromptTemplateœ,œidœ:œPromptTemplate-DoByjœ}","target":"CustomComponent-42KTM","targetHandle":"{œfieldNameœ:œpromptœ,œidœ:œCustomComponent-42KTMœ,œinputTypesœ:null,œtypeœ:œPromptTemplateœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-PromptTemplate-DoByjPromptTemplate|PromptTemplate-DoByj|BasePromptTemplate|PromptTemplate|StringPromptTemplate-CustomComponent-42KTMPromptTemplate|prompt|CustomComponent-42KTM","selected":false,"data":{"sourceHandle":{"baseClasses":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"],"dataType":"PromptTemplate","id":"PromptTemplate-DoByj"},"targetHandle":{"fieldName":"prompt","id":"CustomComponent-42KTM","inputTypes":null,"type":"PromptTemplate"}}},{"source":"PromptTemplate-YOQkk","sourceHandle":"{œbaseClassesœ:[œPromptTemplateœ,œBasePromptTemplateœ,œStringPromptTemplateœ],œdataTypeœ:œPromptTemplateœ,œidœ:œPromptTemplate-YOQkkœ}","target":"LLMChain-ZY0kx","targetHandle":"{œfieldNameœ:œpromptœ,œidœ:œLLMChain-ZY0kxœ,œinputTypesœ:null,œtypeœ:œBasePromptTemplateœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-PromptTemplate-YOQkkPromptTemplate|PromptTemplate-YOQkk|StringPromptTemplate|PromptTemplate|BasePromptTemplate-LLMChain-ZY0kxBasePromptTemplate|prompt|LLMChain-ZY0kx","selected":false,"data":{"sourceHandle":{"baseClasses":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"],"dataType":"PromptTemplate","id":"PromptTemplate-YOQkk"},"targetHandle":{"fieldName":"prompt","id":"LLMChain-ZY0kx","inputTypes":null,"type":"BasePromptTemplate"}}},{"source":"ChatOpenAI-YMCfJ","sourceHandle":"{œbaseClassesœ:[œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-YMCfJœ}","target":"LLMChain-ZY0kx","targetHandle":"{œfieldNameœ:œllmœ,œidœ:œLLMChain-ZY0kxœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-ChatOpenAI-YMCfJChatOpenAI|ChatOpenAI-YMCfJ|BaseChatModel|BaseLanguageModel|ChatOpenAI|BaseLLM-LLMChain-ZY0kxBaseLanguageModel|llm|LLMChain-ZY0kx","selected":false,"data":{"sourceHandle":{"baseClasses":["BaseLanguageModel","ChatOpenAI","BaseChatModel","BaseLLM"],"dataType":"ChatOpenAI","id":"ChatOpenAI-YMCfJ"},"targetHandle":{"fieldName":"llm","id":"LLMChain-ZY0kx","inputTypes":null,"type":"BaseLanguageModel"}}},{"source":"CustomComponent-181iO","target":"PromptTemplate-Nsu3o","sourceHandle":"{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-181iOœ}","targetHandle":"{œfieldNameœ:œtextœ,œidœ:œPromptTemplate-Nsu3oœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}","id":"reactflow__edge-CustomComponent-181iOCustomComponent|CustomComponent-181iO|Document-PromptTemplate-Nsu3oDocument;BaseOutputParser|text|PromptTemplate-Nsu3o","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"selected":false,"data":{"sourceHandle":{"baseClasses":["Document"],"dataType":"CustomComponent","id":"CustomComponent-181iO"},"targetHandle":{"fieldName":"text","id":"PromptTemplate-Nsu3o","inputTypes":["Document","BaseOutputParser"],"type":"str"}}},{"source":"PromptTemplate-Nsu3o","target":"CustomComponent-fBtt9","sourceHandle":"{œbaseClassesœ:[œPromptTemplateœ,œBasePromptTemplateœ,œStringPromptTemplateœ],œdataTypeœ:œPromptTemplateœ,œidœ:œPromptTemplate-Nsu3oœ}","targetHandle":"{œfieldNameœ:œpromptœ,œidœ:œCustomComponent-fBtt9œ,œinputTypesœ:null,œtypeœ:œPromptTemplateœ}","id":"reactflow__edge-PromptTemplate-Nsu3oPromptTemplate|PromptTemplate-Nsu3o|StringPromptTemplate|PromptTemplate|BasePromptTemplate-CustomComponent-fBtt9PromptTemplate|prompt|CustomComponent-fBtt9","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"selected":false,"data":{"sourceHandle":{"baseClasses":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"],"dataType":"PromptTemplate","id":"PromptTemplate-Nsu3o"},"targetHandle":{"fieldName":"prompt","id":"CustomComponent-fBtt9","inputTypes":null,"type":"PromptTemplate"}}},{"source":"ChatOpenAI-YMCfJ","sourceHandle":"{œbaseClassesœ:[œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-YMCfJœ}","target":"CustomComponent-fBtt9","targetHandle":"{œfieldNameœ:œllmœ,œidœ:œCustomComponent-fBtt9œ,œinputTypesœ:null,œtypeœ:œBaseLLMœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-ChatOpenAI-YMCfJChatOpenAI|ChatOpenAI-YMCfJ|BaseChatModel|BaseLanguageModel|ChatOpenAI|BaseLLM-CustomComponent-fBtt9BaseLLM|llm|CustomComponent-fBtt9","selected":false,"data":{"sourceHandle":{"baseClasses":["BaseLanguageModel","ChatOpenAI","BaseChatModel","BaseLLM"],"dataType":"ChatOpenAI","id":"ChatOpenAI-YMCfJ"},"targetHandle":{"fieldName":"llm","id":"CustomComponent-fBtt9","inputTypes":null,"type":"BaseLLM"}}},{"source":"CustomComponent-Pbpq5","sourceHandle":"{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-Pbpq5œ}","target":"PromptTemplate-YOQkk","targetHandle":"{œfieldNameœ:œfeatureœ,œidœ:œPromptTemplate-YOQkkœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-CustomComponent-Pbpq5CustomComponent|CustomComponent-Pbpq5|Document-PromptTemplate-YOQkkDocument;BaseOutputParser|feature|PromptTemplate-YOQkk","selected":false,"data":{"sourceHandle":{"baseClasses":["Document"],"dataType":"CustomComponent","id":"CustomComponent-Pbpq5"},"targetHandle":{"fieldName":"feature","id":"PromptTemplate-YOQkk","inputTypes":["Document","BaseOutputParser"],"type":"str"}}},{"source":"CustomComponent-42KTM","sourceHandle":"{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-42KTMœ}","target":"PromptTemplate-YOQkk","targetHandle":"{œfieldNameœ:œdescœ,œidœ:œPromptTemplate-YOQkkœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-CustomComponent-42KTMCustomComponent|CustomComponent-42KTM|Document-PromptTemplate-YOQkkDocument;BaseOutputParser|desc|PromptTemplate-YOQkk","selected":false,"data":{"sourceHandle":{"baseClasses":["Document"],"dataType":"CustomComponent","id":"CustomComponent-42KTM"},"targetHandle":{"fieldName":"desc","id":"PromptTemplate-YOQkk","inputTypes":["Document","BaseOutputParser"],"type":"str"}}},{"source":"CustomComponent-fBtt9","sourceHandle":"{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-fBtt9œ}","target":"PromptTemplate-YOQkk","targetHandle":"{œfieldNameœ:œobjectiveœ,œidœ:œPromptTemplate-YOQkkœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}","style":{"stroke":"#555"},"className":"stroke-gray-900 stroke-connection","animated":false,"id":"reactflow__edge-CustomComponent-fBtt9CustomComponent|CustomComponent-fBtt9|Document-PromptTemplate-YOQkkDocument;BaseOutputParser|objective|PromptTemplate-YOQkk","selected":false,"data":{"sourceHandle":{"baseClasses":["Document"],"dataType":"CustomComponent","id":"CustomComponent-fBtt9"},"targetHandle":{"fieldName":"objective","id":"PromptTemplate-YOQkk","inputTypes":["Document","BaseOutputParser"],"type":"str"}}}],"viewport":{"x":460.15652718586375,"y":36.92349626155419,"zoom":0.3593545626114066}},"id":"22d02a2d-0776-4e02-95bc-c15dabaf37ff","user_id":"148e70ab-14bf-49ab-8be1-fc58636602a2"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment