| from textwrap import dedent | |
| from langflow.components.data import URLComponent | |
| from langflow.components.inputs import TextInputComponent | |
| from langflow.components.models import OpenAIModelComponent | |
| from langflow.components.outputs import ChatOutput | |
| from langflow.components.processing import ParseDataComponent | |
| from langflow.components.prompts import PromptComponent | |
| from langflow.graph import Graph | |
| def blog_writer_graph(template: str | None = None): | |
| if template is None: | |
| template = dedent("""Reference 1: | |
| {references} | |
| --- | |
| {instructions} | |
| Blog: | |
| """) | |
| url_component = URLComponent() | |
| url_component.set(urls=["https://langflow.org/", "https://docs.langflow.org/"]) | |
| parse_data_component = ParseDataComponent() | |
| parse_data_component.set(data=url_component.fetch_content) | |
| text_input = TextInputComponent(_display_name="Instructions") | |
| text_input.set( | |
| input_value="Use the references above for style to write a new blog/tutorial about Langflow and AI. " | |
| "Suggest non-covered topics." | |
| ) | |
| prompt_component = PromptComponent() | |
| prompt_component.set( | |
| template=template, | |
| instructions=text_input.text_response, | |
| references=parse_data_component.parse_data, | |
| ) | |
| openai_component = OpenAIModelComponent() | |
| openai_component.set(input_value=prompt_component.build_prompt) | |
| chat_output = ChatOutput() | |
| chat_output.set(input_value=openai_component.text_response) | |
| return Graph(start=text_input, end=chat_output) | |