Skip to content

Instantly share code, notes, and snippets.

@rodrigosnader
Created September 12, 2023 00:21
Show Gist options
  • Save rodrigosnader/f5608a12723d2eb64c1ddbbc9f2b407a to your computer and use it in GitHub Desktop.
Save rodrigosnader/f5608a12723d2eb64c1ddbbc9f2b407a to your computer and use it in GitHub Desktop.
Langflow Micro  -  Document Truncator
{"description":"Custom Component created to truncate the text of a webpage before it's sent to the prompt.","name":"Truncate Document","data":{"nodes":[{"width":384,"height":293,"id":"WebBaseLoader-2MUwp","type":"genericNode","position":{"x":20.709404588012603,"y":20.709404588012745},"data":{"type":"WebBaseLoader","node":{"template":{"metadata":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"{}","password":false,"name":"metadata","display_name":"Metadata","advanced":true,"dynamic":false,"info":"","type":"code","list":false},"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://en.wikipedia.org/wiki/J._Robert_Oppenheimer","password":false,"name":"web_path","display_name":"Web Page","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["Document"],"display_name":"WebBaseLoader","custom_fields":{},"output_types":["Document"],"documentation":"https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/web_base"},"id":"WebBaseLoader-2MUwp","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":20.709404588012603,"y":20.709404588012745}},{"width":384,"height":445,"id":"PromptTemplate-GMbv1","type":"genericNode","position":{"x":1278.687240662266,"y":263.22597503852825},"data":{"type":"PromptTemplate","node":{"template":{"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":false,"info":"","type":"BaseOutputParser","list":false},"input_variables":{"required":true,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_variables","advanced":false,"dynamic":false,"info":"","type":"str","list":true,"value":["webpage","diajodja"]},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"dynamic":false,"info":"","type":"code","list":false},"template":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"template","advanced":false,"dynamic":false,"info":"","type":"prompt","list":false,"value":"Given the webpage below, extract the name and birth date of the person described.\n\n--------\n\n{webpage}\n\n--------\n\n{diajodja}"},"template_format":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"f-string","password":false,"name":"template_format","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"validate_template":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"validate_template","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"_type":"PromptTemplate","webpage":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"webpage","display_name":"webpage","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false},"diajodja":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"diajodja","display_name":"diajodja","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false}},"description":"A prompt template for a language model.","base_classes":["BasePromptTemplate","PromptTemplate","StringPromptTemplate"],"name":"","display_name":"PromptTemplate","documentation":"https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/","custom_fields":{"template":["webpage","diajodja"],"":["webpage","diajodja"]},"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-GMbv1","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":1278.687240662266,"y":263.22597503852825}},{"width":384,"height":469,"id":"ChatOpenAI-wl95E","type":"genericNode","position":{"x":1288.3533481194765,"y":828.0295361739076},"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":false,"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-0613","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.7,"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":"Wrapper around OpenAI Chat large language models.","base_classes":["ChatOpenAI","BaseLanguageModel","BaseChatModel","BaseLLM"],"display_name":"ChatOpenAI","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai"},"id":"ChatOpenAI-wl95E","value":null},"selected":false,"positionAbsolute":{"x":1288.3533481194765,"y":828.0295361739076},"dragging":false},{"width":384,"height":307,"id":"LLMChain-dQtB0","type":"genericNode","position":{"x":1890.4852606074824,"y":598.7006615254463},"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":["LLMChain","Chain","function"],"display_name":"LLMChain","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/chains/foundational/llm_chain"},"id":"LLMChain-dQtB0","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":1890.4852606074824,"y":598.7006615254463}},{"width":384,"height":419,"id":"CustomComponent-ocdaN","type":"genericNode","position":{"x":592.3849976886256,"y":76.58088089282026},"data":{"type":"CustomComponent","node":{"template":{"code":{"dynamic":true,"required":true,"placeholder":"","show":true,"multiline":true,"value":"from langflow import CustomComponent\nfrom langchain.schema import Document\n\nclass DocumentTruncator(CustomComponent):\n display_name = \"Document Truncator\"\n description = \"Truncates a document, keeping the first truncate_size characters.\"\n\n def build(self, document: Document, truncate_size:int) -> Document:\n \n # Long documents are sometimes split into a list\n if isinstance(document, list):\n document = document[0]\n \n page_content = document.page_content\n page_content = page_content[:int(truncate_size)]\n return Document(page_content=page_content)\n","password":false,"name":"code","advanced":false,"type":"code","list":false},"_type":"CustomComponent","document":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"document","display_name":"document","advanced":false,"dynamic":false,"info":"","type":"Document","list":false},"truncate_size":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"truncate_size","display_name":"truncate_size","advanced":false,"dynamic":false,"info":"","type":"int","list":false,"value":"10000"}},"description":"Truncates a document, keeping the first truncate_size characters.","base_classes":["Document"],"display_name":"Document Truncator","custom_fields":{"document":null,"truncate_size":null},"output_types":[],"documentation":"","beta":true,"error":null},"id":"CustomComponent-ocdaN","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":592.3849976886256,"y":76.58088089282026}}],"edges":[{"source":"PromptTemplate-GMbv1","target":"LLMChain-dQtB0","sourceHandle":"PromptTemplate|PromptTemplate-GMbv1|BasePromptTemplate|PromptTemplate|StringPromptTemplate","targetHandle":"BasePromptTemplate|prompt|LLMChain-dQtB0","id":"reactflow__edge-PromptTemplate-GMbv1PromptTemplate|PromptTemplate-GMbv1|BasePromptTemplate|PromptTemplate|StringPromptTemplate-LLMChain-dQtB0BasePromptTemplate|prompt|LLMChain-dQtB0","style":{"stroke":"#555"},"className":"stroke-gray-900 ","animated":false,"selected":false},{"source":"ChatOpenAI-wl95E","target":"LLMChain-dQtB0","sourceHandle":"ChatOpenAI|ChatOpenAI-wl95E|ChatOpenAI|BaseLanguageModel|BaseChatModel|BaseLLM","targetHandle":"BaseLanguageModel|llm|LLMChain-dQtB0","id":"reactflow__edge-ChatOpenAI-wl95EChatOpenAI|ChatOpenAI-wl95E|ChatOpenAI|BaseLanguageModel|BaseChatModel|BaseLLM-LLMChain-dQtB0BaseLanguageModel|llm|LLMChain-dQtB0","style":{"stroke":"#555"},"className":"stroke-gray-900 ","animated":false,"selected":false},{"source":"WebBaseLoader-2MUwp","target":"CustomComponent-ocdaN","sourceHandle":"WebBaseLoader|WebBaseLoader-2MUwp|Document","targetHandle":"Document|document|CustomComponent-ocdaN","id":"reactflow__edge-WebBaseLoader-2MUwpWebBaseLoader|WebBaseLoader-2MUwp|Document-CustomComponent-ocdaNDocument|document|CustomComponent-ocdaN","style":{"stroke":"#555"},"className":"stroke-gray-900 ","animated":false,"selected":false},{"source":"CustomComponent-ocdaN","target":"PromptTemplate-GMbv1","sourceHandle":"CustomComponent|CustomComponent-ocdaN|Document","targetHandle":"Document;BaseOutputParser|webpage|PromptTemplate-GMbv1","id":"reactflow__edge-CustomComponent-ocdaNCustomComponent|CustomComponent-ocdaN|Document-PromptTemplate-GMbv1Document;BaseOutputParser|webpage|PromptTemplate-GMbv1","style":{"stroke":"#555"},"className":"stroke-gray-900 ","animated":false,"selected":false}],"viewport":{"x":127.05274092266097,"y":96.97074890213605,"zoom":0.4266587940597662}},"id":"d0b6a70f-eba5-4ade-9739-c4cc52073778"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment