My Collection
My Collection
This page may contain outdated information. It will be updated as soon as possible.
My Collection is a space in Langflow where users can manage, organize, and access their flows and components. Flows and components are displayed as individual cards that provide relevant information.

Memories
+Memories
Chat memory components store and retrieve chat messages by session_id.
AstraDBChatMemory Component
This component creates an AstraDBChatMessageHistory instance, which allows for storing and retrieving chat messages using Astra DB, a cloud-native database service.
Tools
+Tools
Tool components are used to interact with external services, APIs, and tools. They can be used to search the web, query databases, and perform other tasks.
Bing Search API
This component allows you to call the Bing Search API.
diff --git a/Starter-Projects/starter-projects-complex-agent.html b/Starter-Projects/starter-projects-complex-agent.html index 6407db8b9b..017e788628 100644 --- a/Starter-Projects/starter-projects-complex-agent.html +++ b/Starter-Projects/starter-projects-complex-agent.html @@ -10,13 +10,13 @@ - - + + -Complex Agent
+Complex Agent
Build a Complex Agent flow for a chatbot application using CrewAI. This flow uses CrewAI to manage a Hierarchical Crew of Agents as they perform a sequence of Tasks.
This flow features a unique method of creating a CrewAI agent out of OpenAI prompt responses. The tool-calling agent's Role, Goal, and Backstory are defined by prompting OpenAI LLM with the user's query. The agent then builds a response by querying the Yahoo Finance News and Search API tools.
The Manager Agent oversees the tool-calling agent, using the OpenAI LLM as a brain to make decisions about how to manage its agents. It can answer general questions from the user, but can also call for help from the tool-calling agent if needed.
diff --git a/Starter-Projects/starter-projects-hierarchical-crew.html b/Starter-Projects/starter-projects-hierarchical-crew.html index f6056c6f4a..4f43875d44 100644 --- a/Starter-Projects/starter-projects-hierarchical-crew.html +++ b/Starter-Projects/starter-projects-hierarchical-crew.html @@ -10,13 +10,13 @@ - - + + -Hierarchical Tasks Agent
+Hierarchical Tasks Agent
Build a Hierarchical Tasks Agent flow for a multi-shot application using CrewAI. This flow uses CrewAI to manage a Hierarchical Crew of Agents as they perform disparate tasks under the control of a Manager Agent.
Unlike the agents in the Sequential Crew starter flow, the CrewAI agents in this flow don't just perform a task one after the other. One Agent is a Researcher that queries the Search API tool, another is an Editor that evaluates the retrieved information, and the Manager Agent oversees the Researcher and Editor Agents, using the OpenAI LLM as a brain to make decisions about how to manage the Researcher and Editor agents.
Prerequisites
diff --git a/Starter-Projects/starter-projects-sequential-crew.html b/Starter-Projects/starter-projects-sequential-crew.html index 5b2155b92d..56dd34d428 100644 --- a/Starter-Projects/starter-projects-sequential-crew.html +++ b/Starter-Projects/starter-projects-sequential-crew.html @@ -10,13 +10,13 @@ - - + + -Sequential Tasks Agent
+Sequential Tasks Agent
Build a Sequential Tasks Agent flow for a multi-shot application using CrewAI. This flow uses CrewAI to manage a Crew of Agents as they perform a sequence of Tasks.
Prerequisites
-
diff --git a/assets/files/AssemblyAI_Flow-79fdd9e10f4e8e0f1c087fc6124d0eb5.json b/assets/files/AssemblyAI_Flow-79fdd9e10f4e8e0f1c087fc6124d0eb5.json
new file mode 100644
index 0000000000..30f4010ff3
--- /dev/null
+++ b/assets/files/AssemblyAI_Flow-79fdd9e10f4e8e0f1c087fc6124d0eb5.json
@@ -0,0 +1 @@
+{"icon_bg_color":null,"updated_at":"2024-09-23T13:23:49+00:00","webhook":false,"id":"bb28b0b4-f5b7-4bf2-8661-fead4a32ed86","name":"AssemblyAI Transcription and Speech AI Flow","description":"Transcribe and analyze audio with AssemblyAI","icon":null,"is_component":false,"endpoint_name":null,"data":{"nodes":[{"id":"Prompt-GI1uB","type":"genericNode","position":{"x":-1437.0332295387766,"y":1086.3264409390222},"data":{"type":"Prompt","node":{"template":{"_type":"Component","code":{"type":"code","required":true,"placeholder":"","list":false,"show":true,"multiline":true,"value":"from langflow.base.prompts.api_utils import process_prompt_template\nfrom langflow.custom import Component\nfrom langflow.inputs.inputs import DefaultPromptField\nfrom langflow.io import Output, PromptInput\nfrom langflow.schema.message import Message\nfrom langflow.template.utils import update_template_values\n\n\nclass PromptComponent(Component):\n display_name: str = \"Prompt\"\n description: str = \"Create a prompt template with dynamic variables.\"\n icon = \"prompts\"\n trace_type = \"prompt\"\n name = \"Prompt\"\n\n inputs = [\n PromptInput(name=\"template\", display_name=\"Template\"),\n ]\n\n outputs = [\n Output(display_name=\"Prompt Message\", name=\"prompt\", method=\"build_prompt\"),\n ]\n\n async def build_prompt(\n self,\n ) -> Message:\n prompt = await Message.from_template_and_variables(**self._attributes)\n self.status = prompt.text\n return prompt\n\n def _update_template(self, frontend_node: dict):\n prompt_template = frontend_node[\"template\"][\"template\"][\"value\"]\n custom_fields = frontend_node[\"custom_fields\"]\n frontend_node_template = frontend_node[\"template\"]\n _ = process_prompt_template(\n template=prompt_template,\n name=\"template\",\n custom_fields=custom_fields,\n frontend_node_template=frontend_node_template,\n )\n return frontend_node\n\n def post_code_processing(self, new_frontend_node: dict, current_frontend_node: dict):\n \"\"\"\n This function is called after the code validation is done.\n \"\"\"\n frontend_node = super().post_code_processing(new_frontend_node, current_frontend_node)\n template = frontend_node[\"template\"][\"template\"][\"value\"]\n # Kept it duplicated for backwards compatibility\n _ = process_prompt_template(\n template=template,\n name=\"template\",\n custom_fields=frontend_node[\"custom_fields\"],\n frontend_node_template=frontend_node[\"template\"],\n )\n # Now that template is updated, we need to grab any values that were set in the current_frontend_node\n # and update the frontend_node with those values\n update_template_values(new_template=frontend_node, previous_template=current_frontend_node[\"template\"])\n return frontend_node\n\n def _get_fallback_input(self, **kwargs):\n return DefaultPromptField(**kwargs)\n","fileTypes":[],"file_path":"","password":false,"name":"code","advanced":true,"dynamic":true,"info":"","load_from_db":false,"title_case":false},"template":{"trace_as_input":true,"list":false,"required":false,"placeholder":"","show":true,"name":"template","value":"Provide a brief summary of the transcript.","display_name":"Template","advanced":false,"dynamic":false,"info":"","title_case":false,"type":"prompt","_input_type":"PromptInput"}},"description":"Create a prompt template with dynamic variables.","icon":"prompts","is_input":null,"is_output":null,"is_composition":null,"base_classes":["Message"],"name":"","display_name":"Prompt","documentation":"","custom_fields":{"template":[]},"output_types":[],"full_path":null,"pinned":false,"conditional_paths":[],"frozen":false,"outputs":[{"types":["Message"],"selected":"Message","name":"prompt","hidden":null,"display_name":"Prompt Message","method":"build_prompt","value":"__UNDEFINED__","cache":true}],"field_order":["template"],"beta":false,"error":null,"edited":false},"id":"Prompt-GI1uB"},"selected":false,"width":384,"height":325,"positionAbsolute":{"x":-1437.0332295387766,"y":1086.3264409390222},"dragging":false},{"id":"AssemblyAITranscriptionJobCreator-os7m9","type":"genericNode","position":{"x":-1957.7132501771657,"y":470.79685053457587},"data":{"type":"AssemblyAITranscriptionJobCreator","node":{"template":{"_type":"Component","audio_file":{"trace_as_metadata":true,"file_path":"bb28b0b4-f5b7-4bf2-8661-fead4a32ed86/2024-09-23_12-10-03_5_common_sports_injuries.mp3","fileTypes":["3ga","8svx","aac","ac3","aif","aiff","alac","amr","ape","au","dss","flac","flv","m4a","m4b","m4p","m4r","mp3","mpga","ogg","oga","mogg","opus","qcp","tta","voc","wav","wma","wv","webm","mts","m2ts","ts","mov","mp2","mp4","m4p","m4v","mxf"],"list":false,"required":false,"placeholder":"","show":true,"name":"audio_file","value":"5_common_sports_injuries.mp3","display_name":"Audio File","advanced":false,"dynamic":false,"info":"The audio file to transcribe","title_case":false,"type":"file","_input_type":"FileInput"},"api_key":{"load_from_db":false,"required":false,"placeholder":"","show":true,"name":"api_key","value":null,"display_name":"Assembly API Key","advanced":false,"input_types":["Message"],"dynamic":false,"info":"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/","title_case":false,"password":true,"type":"str","_input_type":"SecretStrInput"},"audio_file_url":{"trace_as_input":true,"trace_as_metadata":true,"load_from_db":false,"list":false,"required":false,"placeholder":"","show":true,"name":"audio_file_url","value":"","display_name":"Audio File URL","advanced":true,"input_types":["Message"],"dynamic":false,"info":"The URL of the audio file to transcribe (Can be used instead of a File)","title_case":false,"type":"str","_input_type":"MessageTextInput"},"code":{"type":"code","required":true,"placeholder":"","list":false,"show":true,"multiline":true,"value":"import os\nimport assemblyai as aai\nfrom langflow.custom import Component\nfrom langflow.io import FileInput, SecretStrInput, DropdownInput, Output, BoolInput, MessageTextInput\nfrom langflow.schema import Data\nfrom loguru import logger\n\n\nclass AssemblyAITranscriptionJobCreator(Component):\n display_name = \"AssemblyAI Start Transcript\"\n description = \"Create a transcription job for an audio file using AssemblyAI with advanced options\"\n documentation = \"https://www.assemblyai.com/docs\"\n icon = \"AssemblyAI\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Assembly API Key\",\n info=\"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/\",\n ),\n FileInput(\n name=\"audio_file\",\n display_name=\"Audio File\",\n file_types=[\n \"3ga\",\n \"8svx\",\n \"aac\",\n \"ac3\",\n \"aif\",\n \"aiff\",\n \"alac\",\n \"amr\",\n \"ape\",\n \"au\",\n \"dss\",\n \"flac\",\n \"flv\",\n \"m4a\",\n \"m4b\",\n \"m4p\",\n \"m4r\",\n \"mp3\",\n \"mpga\",\n \"ogg\",\n \"oga\",\n \"mogg\",\n \"opus\",\n \"qcp\",\n \"tta\",\n \"voc\",\n \"wav\",\n \"wma\",\n \"wv\",\n \"webm\",\n \"mts\",\n \"m2ts\",\n \"ts\",\n \"mov\",\n \"mp2\",\n \"mp4\",\n \"m4p\",\n \"m4v\",\n \"mxf\",\n ],\n info=\"The audio file to transcribe\",\n ),\n MessageTextInput(\n name=\"audio_file_url\",\n display_name=\"Audio File URL\",\n info=\"The URL of the audio file to transcribe (Can be used instead of a File)\",\n advanced=True,\n ),\n DropdownInput(\n name=\"speech_model\",\n display_name=\"Speech Model\",\n options=[\n \"best\",\n \"nano\",\n ],\n value=\"best\",\n info=\"The speech model to use for the transcription\",\n ),\n BoolInput(\n name=\"language_detection\",\n display_name=\"Automatic Language Detection\",\n info=\"Enable automatic language detection\",\n ),\n MessageTextInput(\n name=\"language_code\",\n display_name=\"Language\",\n info=\"\"\"\n The language of the audio file. Can be set manually if automatic language detection is disabled. \n See https://www.assemblyai.com/docs/getting-started/supported-languages for a list of supported language codes.\n \"\"\",\n ),\n BoolInput(\n name=\"speaker_labels\",\n display_name=\"Enable Speaker Labels\",\n info=\"Enable speaker diarization\",\n ),\n MessageTextInput(\n name=\"speakers_expected\",\n display_name=\"Expected Number of Speakers\",\n info=\"Set the expected number of speakers (optional, enter a number)\",\n advanced=True,\n ),\n BoolInput(\n name=\"punctuate\",\n display_name=\"Punctuate\",\n info=\"Enable automatic punctuation\",\n advanced=True,\n value=True,\n ),\n BoolInput(\n name=\"format_text\",\n display_name=\"Format Text\",\n info=\"Enable text formatting\",\n advanced=True,\n value=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Transcript ID\", name=\"transcript_id\", method=\"create_transcription_job\"),\n ]\n\n def create_transcription_job(self) -> Data:\n aai.settings.api_key = self.api_key\n\n # Convert speakers_expected to int if it's not empty\n speakers_expected = None\n if self.speakers_expected and self.speakers_expected.strip():\n try:\n speakers_expected = int(self.speakers_expected)\n except ValueError:\n self.status = \"Error: Expected Number of Speakers must be a valid integer\"\n return Data(data={\"error\": \"Error: Expected Number of Speakers must be a valid integer\"})\n\n language_code = self.language_code if self.language_code else None\n\n config = aai.TranscriptionConfig(\n speech_model=self.speech_model,\n language_detection=self.language_detection,\n language_code=language_code,\n speaker_labels=self.speaker_labels,\n speakers_expected=speakers_expected,\n punctuate=self.punctuate,\n format_text=self.format_text,\n )\n\n audio = None\n if self.audio_file:\n if self.audio_file_url:\n logger.warning(\"Both an audio file an audio URL were specified. The audio URL was ignored.\")\n\n # Check if the file exists\n if not os.path.exists(self.audio_file):\n self.status = \"Error: Audio file not found\"\n return Data(data={\"error\": \"Error: Audio file not found\"})\n audio = self.audio_file\n elif self.audio_file_url:\n audio = self.audio_file_url\n else:\n self.status = \"Error: Either an audio file or an audio URL must be specified\"\n return Data(data={\"error\": \"Error: Either an audio file or an audio URL must be specified\"})\n\n try:\n transcript = aai.Transcriber().submit(audio, config=config)\n\n if transcript.error:\n self.status = transcript.error\n return Data(data={\"error\": transcript.error})\n else:\n result = Data(data={\"transcript_id\": transcript.id})\n self.status = result\n return result\n except Exception as e:\n self.status = f\"An error occurred: {str(e)}\"\n return Data(data={\"error\": f\"An error occurred: {str(e)}\"})\n","fileTypes":[],"file_path":"","password":false,"name":"code","advanced":true,"dynamic":true,"info":"","load_from_db":false,"title_case":false},"format_text":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"format_text","value":true,"display_name":"Format Text","advanced":true,"dynamic":false,"info":"Enable text formatting","title_case":false,"type":"bool","_input_type":"BoolInput"},"language_code":{"trace_as_input":true,"trace_as_metadata":true,"load_from_db":false,"list":false,"required":false,"placeholder":"","show":true,"name":"language_code","value":"","display_name":"Language","advanced":false,"input_types":["Message"],"dynamic":false,"info":"\n The language of the audio file. Can be set manually if automatic language detection is disabled. \n See https://www.assemblyai.com/docs/getting-started/supported-languages for a list of supported language codes.\n ","title_case":false,"type":"str","_input_type":"MessageTextInput"},"language_detection":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"language_detection","value":false,"display_name":"Automatic Language Detection","advanced":false,"dynamic":false,"info":"Enable automatic language detection","title_case":false,"type":"bool","_input_type":"BoolInput"},"punctuate":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"punctuate","value":true,"display_name":"Punctuate","advanced":true,"dynamic":false,"info":"Enable automatic punctuation","title_case":false,"type":"bool","_input_type":"BoolInput"},"speaker_labels":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"speaker_labels","value":true,"display_name":"Enable Speaker Labels","advanced":false,"dynamic":false,"info":"Enable speaker diarization","title_case":false,"type":"bool","_input_type":"BoolInput","load_from_db":false},"speakers_expected":{"trace_as_input":true,"trace_as_metadata":true,"load_from_db":false,"list":false,"required":false,"placeholder":"","show":true,"name":"speakers_expected","value":"","display_name":"Expected Number of Speakers","advanced":true,"input_types":["Message"],"dynamic":false,"info":"Set the expected number of speakers (optional, enter a number)","title_case":false,"type":"str","_input_type":"MessageTextInput"},"speech_model":{"trace_as_metadata":true,"options":["best","nano"],"combobox":false,"required":false,"placeholder":"","show":true,"name":"speech_model","value":"best","display_name":"Speech Model","advanced":false,"dynamic":false,"info":"The speech model to use for the transcription","title_case":false,"type":"str","_input_type":"DropdownInput"}},"description":"Create a transcription job for an audio file using AssemblyAI with advanced options","icon":"AssemblyAI","base_classes":["Data"],"display_name":"AssemblyAI Start Transcript","documentation":"https://www.assemblyai.com/docs","custom_fields":{},"output_types":[],"pinned":false,"conditional_paths":[],"frozen":false,"outputs":[{"types":["Data"],"selected":"Data","name":"transcript_id","display_name":"Transcript ID","method":"create_transcription_job","value":"__UNDEFINED__","cache":true}],"field_order":["api_key","audio_file","audio_file_url","speech_model","language_detection","language_code","speaker_labels","speakers_expected","punctuate","format_text"],"beta":false,"edited":false,"lf_version":"1.0.18"},"id":"AssemblyAITranscriptionJobCreator-os7m9","description":"Create a transcription job for an audio file using AssemblyAI with advanced options","display_name":"AssemblyAI Start Transcript"},"selected":true,"width":384,"height":727,"positionAbsolute":{"x":-1957.7132501771657,"y":470.79685053457587},"dragging":false},{"id":"AssemblyAITranscriptionJobPoller-h1oNr","type":"genericNode","position":{"x":-1418.1773423834097,"y":468.77643572273803},"data":{"type":"AssemblyAITranscriptionJobPoller","node":{"template":{"_type":"Component","transcript_id":{"trace_as_metadata":true,"list":false,"trace_as_input":true,"required":false,"placeholder":"","show":true,"name":"transcript_id","value":"","display_name":"Transcript ID","advanced":false,"input_types":["Data"],"dynamic":false,"info":"The ID of the transcription job to poll","title_case":false,"type":"other","_input_type":"DataInput"},"api_key":{"load_from_db":false,"required":false,"placeholder":"","show":true,"name":"api_key","value":null,"display_name":"Assembly API Key","advanced":false,"input_types":["Message"],"dynamic":false,"info":"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/","title_case":false,"password":true,"type":"str","_input_type":"SecretStrInput"},"code":{"type":"code","required":true,"placeholder":"","list":false,"show":true,"multiline":true,"value":"import assemblyai as aai\nfrom langflow.custom import Component\nfrom langflow.io import FloatInput, SecretStrInput, DataInput, Output\nfrom langflow.schema import Data\n\n\nclass AssemblyAITranscriptionJobPoller(Component):\n display_name = \"AssemblyAI Poll Transcript\"\n description = \"Poll for the status of a transcription job using AssemblyAI\"\n documentation = \"https://www.assemblyai.com/docs\"\n icon = \"AssemblyAI\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Assembly API Key\",\n info=\"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/\",\n ),\n DataInput(\n name=\"transcript_id\",\n display_name=\"Transcript ID\",\n info=\"The ID of the transcription job to poll\",\n ),\n FloatInput(\n name=\"polling_interval\",\n display_name=\"Polling Interval\",\n value=3.0,\n info=\"The polling interval in seconds\",\n ),\n ]\n\n outputs = [\n Output(display_name=\"Transcription Result\", name=\"transcription_result\", method=\"poll_transcription_job\"),\n ]\n\n def poll_transcription_job(self) -> Data:\n \"\"\"Polls the transcription status until completion and returns the Data.\"\"\"\n aai.settings.api_key = self.api_key\n aai.settings.polling_interval = self.polling_interval\n\n # check if it's an error message from the previous step\n if self.transcript_id.data.get(\"error\"):\n self.status = self.transcript_id.data[\"error\"]\n return self.transcript_id\n\n try:\n transcript = aai.Transcript.get_by_id(self.transcript_id.data[\"transcript_id\"])\n except Exception as e:\n error = f\"Getting transcription failed: {str(e)}\"\n self.status = error\n return Data(data={\"error\": error})\n\n if transcript.status == aai.TranscriptStatus.completed:\n data = Data(data=transcript.json_response)\n self.status = data\n return data\n else:\n self.status = transcript.error\n return Data(data={\"error\": transcript.error})\n","fileTypes":[],"file_path":"","password":false,"name":"code","advanced":true,"dynamic":true,"info":"","load_from_db":false,"title_case":false},"polling_interval":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"polling_interval","value":3,"display_name":"Polling Interval","advanced":false,"dynamic":false,"info":"The polling interval in seconds","title_case":false,"type":"float","_input_type":"FloatInput"}},"description":"Poll for the status of a transcription job using AssemblyAI","icon":"AssemblyAI","base_classes":["Data"],"display_name":"AssemblyAI Poll Transcript","documentation":"https://www.assemblyai.com/docs","custom_fields":{},"output_types":[],"pinned":false,"conditional_paths":[],"frozen":false,"outputs":[{"types":["Data"],"selected":"Data","name":"transcription_result","display_name":"Transcription Result","method":"poll_transcription_job","value":"__UNDEFINED__","cache":true}],"field_order":["api_key","transcript_id","polling_interval"],"beta":false,"edited":false,"lf_version":"1.0.18"},"id":"AssemblyAITranscriptionJobPoller-h1oNr","description":"Poll for the status of a transcription job using AssemblyAI","display_name":"AssemblyAI Poll Transcript"},"selected":false,"width":384,"height":455,"positionAbsolute":{"x":-1418.1773423834097,"y":468.77643572273803},"dragging":false},{"id":"AssemblyAITranscriptionParser-fObVy","type":"genericNode","position":{"x":-828.5466542294,"y":80.36599595290471},"data":{"type":"AssemblyAITranscriptionParser","node":{"template":{"_type":"Component","transcription_result":{"trace_as_metadata":true,"list":false,"trace_as_input":true,"required":false,"placeholder":"","show":true,"name":"transcription_result","value":"","display_name":"Transcription Result","advanced":false,"input_types":["Data"],"dynamic":false,"info":"The transcription result from AssemblyAI","title_case":false,"type":"other","_input_type":"DataInput"},"code":{"type":"code","required":true,"placeholder":"","list":false,"show":true,"multiline":true,"value":"from langflow.custom import Component\nfrom langflow.io import DataInput, Output\nfrom langflow.schema import Data\nfrom typing import Dict, List\nimport datetime\n\n\nclass AssemblyAITranscriptionParser(Component):\n display_name = \"AssemblyAI Parse Transcript\"\n description = \"Parse AssemblyAI transcription result. If Speaker Labels was enabled, format utterances with speakers and timestamps\"\n documentation = \"https://www.assemblyai.com/docs\"\n icon = \"AssemblyAI\"\n\n inputs = [\n DataInput(\n name=\"transcription_result\",\n display_name=\"Transcription Result\",\n info=\"The transcription result from AssemblyAI\",\n ),\n ]\n\n outputs = [\n Output(display_name=\"Parsed Transcription\", name=\"parsed_transcription\", method=\"parse_transcription\"),\n ]\n\n def parse_transcription(self) -> Data:\n # check if it's an error message from the previous step\n if self.transcription_result.data.get(\"error\"):\n self.status = self.transcription_result.data[\"error\"]\n return self.transcription_result\n\n try:\n transcription_data = self.transcription_result.data\n\n if transcription_data.get(\"utterances\"):\n # If speaker diarization was enabled\n parsed_result = self.parse_with_speakers(transcription_data[\"utterances\"])\n elif transcription_data.get(\"text\"):\n # If speaker diarization was not enabled\n parsed_result = transcription_data[\"text\"]\n else:\n raise ValueError(\"Unexpected transcription format\")\n\n self.status = parsed_result\n return Data(data={\"text\": parsed_result})\n except Exception as e:\n error_message = f\"Error parsing transcription: {str(e)}\"\n self.status = error_message\n return Data(data={\"error\": error_message})\n\n def parse_with_speakers(self, utterances: List[Dict]) -> str:\n parsed_result = []\n for utterance in utterances:\n speaker = utterance[\"speaker\"]\n start_time = self.format_timestamp(utterance[\"start\"])\n text = utterance[\"text\"]\n parsed_result.append(f'Speaker {speaker} {start_time}\\n\"{text}\"\\n')\n\n return \"\\n\".join(parsed_result)\n\n def format_timestamp(self, milliseconds: int) -> str:\n return str(datetime.timedelta(milliseconds=milliseconds)).split(\".\")[0]\n","fileTypes":[],"file_path":"","password":false,"name":"code","advanced":true,"dynamic":true,"info":"","load_from_db":false,"title_case":false}},"description":"Parse AssemblyAI transcription result. If Speaker Labels was enabled, format utterances with speakers and timestamps","icon":"AssemblyAI","base_classes":["Data"],"display_name":"AssemblyAI Parse Transcript","documentation":"https://www.assemblyai.com/docs","custom_fields":{},"output_types":[],"pinned":false,"conditional_paths":[],"frozen":false,"outputs":[{"types":["Data"],"selected":"Data","name":"parsed_transcription","display_name":"Parsed Transcription","method":"parse_transcription","value":"__UNDEFINED__","cache":true}],"field_order":["transcription_result"],"beta":false,"edited":false,"lf_version":"1.0.18"},"id":"AssemblyAITranscriptionParser-fObVy","description":"Parse AssemblyAI transcription result. If Speaker Labels was enabled, format utterances with speakers and timestamps","display_name":"AssemblyAI Parse Transcript"},"selected":false,"width":384,"height":311,"positionAbsolute":{"x":-828.5466542294,"y":80.36599595290471},"dragging":false},{"id":"AssemblyAIGetSubtitles-jdwaz","type":"genericNode","position":{"x":-829.718388034151,"y":455.059121470362},"data":{"type":"AssemblyAIGetSubtitles","node":{"template":{"_type":"Component","transcription_result":{"trace_as_metadata":true,"list":false,"trace_as_input":true,"required":false,"placeholder":"","show":true,"name":"transcription_result","value":"","display_name":"Transcription Result","advanced":false,"input_types":["Data"],"dynamic":false,"info":"The transcription result from AssemblyAI","title_case":false,"type":"other","_input_type":"DataInput"},"api_key":{"load_from_db":false,"required":false,"placeholder":"","show":true,"name":"api_key","value":null,"display_name":"Assembly API Key","advanced":false,"input_types":["Message"],"dynamic":false,"info":"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/","title_case":false,"password":true,"type":"str","_input_type":"SecretStrInput"},"chars_per_caption":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"chars_per_caption","value":0,"display_name":"Characters per Caption","advanced":true,"dynamic":false,"info":"The maximum number of characters per caption (0 for no limit)","title_case":false,"type":"int","_input_type":"IntInput"},"code":{"type":"code","required":true,"placeholder":"","list":false,"show":true,"multiline":true,"value":"import assemblyai as aai\nfrom langflow.custom import Component\nfrom langflow.io import SecretStrInput, DataInput, DropdownInput, IntInput, Output\nfrom langflow.schema import Data\n\n\nclass AssemblyAIGetSubtitles(Component):\n display_name = \"AssemblyAI Get Subtitles\"\n description = \"Export your transcript in SRT or VTT format for subtitles and closed captions\"\n documentation = \"https://www.assemblyai.com/docs\"\n icon = \"AssemblyAI\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Assembly API Key\",\n info=\"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/\",\n ),\n DataInput(\n name=\"transcription_result\",\n display_name=\"Transcription Result\",\n info=\"The transcription result from AssemblyAI\",\n ),\n DropdownInput(\n name=\"subtitle_format\",\n display_name=\"Subtitle Format\",\n options=[\"srt\", \"vtt\"],\n value=\"srt\",\n info=\"The format of the captions (SRT or VTT)\",\n ),\n IntInput(\n name=\"chars_per_caption\",\n display_name=\"Characters per Caption\",\n info=\"The maximum number of characters per caption (0 for no limit)\",\n value=0,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Subtitles\", name=\"subtitles\", method=\"get_subtitles\"),\n ]\n\n def get_subtitles(self) -> Data:\n aai.settings.api_key = self.api_key\n\n # check if it's an error message from the previous step\n if self.transcription_result.data.get(\"error\"):\n self.status = self.transcription_result.data[\"error\"]\n return self.transcription_result\n\n try:\n transcript_id = self.transcription_result.data[\"id\"]\n transcript = aai.Transcript.get_by_id(transcript_id)\n except Exception as e:\n error = f\"Getting transcription failed: {str(e)}\"\n self.status = error\n return Data(data={\"error\": error})\n\n if transcript.status == aai.TranscriptStatus.completed:\n subtitles = None\n chars_per_caption = self.chars_per_caption if self.chars_per_caption > 0 else None\n if self.subtitle_format == \"srt\":\n subtitles = transcript.export_subtitles_srt(chars_per_caption)\n else:\n subtitles = transcript.export_subtitles_vtt(chars_per_caption)\n\n result = Data(\n subtitles=subtitles,\n format=self.subtitle_format,\n transcript_id=transcript_id,\n chars_per_caption=chars_per_caption,\n )\n\n self.status = result\n return result\n else:\n self.status = transcript.error\n return Data(data={\"error\": transcript.error})\n","fileTypes":[],"file_path":"","password":false,"name":"code","advanced":true,"dynamic":true,"info":"","load_from_db":false,"title_case":false},"subtitle_format":{"trace_as_metadata":true,"options":["srt","vtt"],"combobox":false,"required":false,"placeholder":"","show":true,"name":"subtitle_format","value":"srt","display_name":"Subtitle Format","advanced":false,"dynamic":false,"info":"The format of the captions (SRT or VTT)","title_case":false,"type":"str","_input_type":"DropdownInput"}},"description":"Export your transcript in SRT or VTT format for subtitles and closed captions","icon":"AssemblyAI","base_classes":["Data"],"display_name":"AssemblyAI Get Subtitles","documentation":"https://www.assemblyai.com/docs","custom_fields":{},"output_types":[],"pinned":false,"conditional_paths":[],"frozen":false,"outputs":[{"types":["Data"],"selected":"Data","name":"subtitles","display_name":"Subtitles","method":"get_subtitles","value":"__UNDEFINED__","cache":true}],"field_order":["api_key","transcription_result","subtitle_format","chars_per_caption"],"beta":false,"edited":false,"lf_version":"1.0.18"},"id":"AssemblyAIGetSubtitles-jdwaz","description":"Export your transcript in SRT or VTT format for subtitles and closed captions","display_name":"AssemblyAI Get Subtitles"},"selected":false,"width":384,"height":455,"positionAbsolute":{"x":-829.718388034151,"y":455.059121470362},"dragging":false},{"id":"AssemblyAIListTranscripts-2atfG","type":"genericNode","position":{"x":-310.6154563333001,"y":441.8728251081342},"data":{"type":"AssemblyAIListTranscripts","node":{"template":{"_type":"Component","api_key":{"load_from_db":false,"required":false,"placeholder":"","show":true,"name":"api_key","value":null,"display_name":"Assembly API Key","advanced":false,"input_types":["Message"],"dynamic":false,"info":"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/","title_case":false,"password":true,"type":"str","_input_type":"SecretStrInput"},"code":{"type":"code","required":true,"placeholder":"","list":false,"show":true,"multiline":true,"value":"import assemblyai as aai\nfrom typing import List\nfrom langflow.custom import Component\nfrom langflow.io import SecretStrInput, IntInput, DropdownInput, Output, BoolInput, MessageTextInput\nfrom langflow.schema import Data\n\n\nclass AssemblyAIListTranscripts(Component):\n display_name = \"AssemblyAI List Transcripts\"\n description = \"Retrieve a list of transcripts from AssemblyAI with filtering options\"\n documentation = \"https://www.assemblyai.com/docs\"\n icon = \"AssemblyAI\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Assembly API Key\",\n info=\"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/\",\n ),\n IntInput(\n name=\"limit\",\n display_name=\"Limit\",\n info=\"Maximum number of transcripts to retrieve (default: 20, use 0 for all)\",\n value=20,\n ),\n DropdownInput(\n name=\"status_filter\",\n display_name=\"Status Filter\",\n options=[\"all\", \"queued\", \"processing\", \"completed\", \"error\"],\n value=\"all\",\n info=\"Filter by transcript status\",\n ),\n MessageTextInput(\n name=\"created_on\",\n display_name=\"Created On\",\n info=\"Only get transcripts created on this date (YYYY-MM-DD)\",\n ),\n BoolInput(\n name=\"throttled_only\",\n display_name=\"Throttled Only\",\n info=\"Only get throttled transcripts, overrides the status filter\",\n ),\n ]\n\n outputs = [\n Output(display_name=\"Transcript List\", name=\"transcript_list\", method=\"list_transcripts\"),\n ]\n\n def list_transcripts(self) -> List[Data]:\n aai.settings.api_key = self.api_key\n\n params = aai.ListTranscriptParameters()\n if self.limit:\n params.limit = self.limit\n if self.status_filter != \"all\":\n params.status = self.status_filter\n if self.created_on and self.created_on.text:\n params.created_on = self.created_on.text\n if self.throttled_only:\n params.throttled_only = True\n\n try:\n transcriber = aai.Transcriber()\n\n def convert_page_to_data_list(page):\n return [Data(**t.dict()) for t in page.transcripts]\n\n if self.limit == 0:\n # paginate over all pages\n params.limit = 100\n page = transcriber.list_transcripts(params)\n transcripts = convert_page_to_data_list(page)\n\n while page.page_details.before_id_of_prev_url is not None:\n params.before_id = page.page_details.before_id_of_prev_url\n page = transcriber.list_transcripts(params)\n transcripts.extend(convert_page_to_data_list(page))\n else:\n # just one page\n page = transcriber.list_transcripts(params)\n transcripts = convert_page_to_data_list(page)\n\n self.status = transcripts\n return transcripts\n except Exception as e:\n error_data = Data(data={\"error\": f\"An error occurred: {str(e)}\"})\n self.status = [error_data]\n return [error_data]\n","fileTypes":[],"file_path":"","password":false,"name":"code","advanced":true,"dynamic":true,"info":"","load_from_db":false,"title_case":false},"created_on":{"trace_as_input":true,"trace_as_metadata":true,"load_from_db":false,"list":false,"required":false,"placeholder":"","show":true,"name":"created_on","value":"","display_name":"Created On","advanced":false,"input_types":["Message"],"dynamic":false,"info":"Only get transcripts created on this date (YYYY-MM-DD)","title_case":false,"type":"str","_input_type":"MessageTextInput"},"limit":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"limit","value":10,"display_name":"Limit","advanced":false,"dynamic":false,"info":"Maximum number of transcripts to retrieve (default: 20, use 0 for all)","title_case":false,"type":"int","_input_type":"IntInput","load_from_db":false},"status_filter":{"trace_as_metadata":true,"options":["all","queued","processing","completed","error"],"combobox":false,"required":false,"placeholder":"","show":true,"name":"status_filter","value":"all","display_name":"Status Filter","advanced":false,"dynamic":false,"info":"Filter by transcript status","title_case":false,"type":"str","_input_type":"DropdownInput"},"throttled_only":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"throttled_only","value":false,"display_name":"Throttled Only","advanced":false,"dynamic":false,"info":"Only get throttled transcripts, overrides the status filter","title_case":false,"type":"bool","_input_type":"BoolInput"}},"description":"Retrieve a list of transcripts from AssemblyAI with filtering options","icon":"AssemblyAI","base_classes":["Data"],"display_name":"AssemblyAI List Transcripts","documentation":"https://www.assemblyai.com/docs","custom_fields":{},"output_types":[],"pinned":false,"conditional_paths":[],"frozen":false,"outputs":[{"types":["Data"],"selected":"Data","name":"transcript_list","display_name":"Transcript List","method":"list_transcripts","value":"__UNDEFINED__","cache":true}],"field_order":["api_key","limit","status_filter","created_on","throttled_only"],"beta":false,"edited":false,"lf_version":"1.0.18"},"id":"AssemblyAIListTranscripts-2atfG","description":"Retrieve a list of transcripts from AssemblyAI with filtering options","display_name":"AssemblyAI List Transcripts"},"selected":false,"width":384,"height":655,"positionAbsolute":{"x":-310.6154563333001,"y":441.8728251081342},"dragging":false},{"id":"AssemblyAILeMUR-cZbQ8","type":"genericNode","position":{"x":-829.7615964557997,"y":997.4743969634249},"data":{"type":"AssemblyAILeMUR","node":{"template":{"_type":"Component","transcription_result":{"trace_as_metadata":true,"list":false,"trace_as_input":true,"required":false,"placeholder":"","show":true,"name":"transcription_result","value":"","display_name":"Transcription Result","advanced":false,"input_types":["Data"],"dynamic":false,"info":"The transcription result from AssemblyAI","title_case":false,"type":"other","_input_type":"DataInput"},"api_key":{"load_from_db":false,"required":false,"placeholder":"","show":true,"name":"api_key","value":null,"display_name":"Assembly API Key","advanced":false,"input_types":["Message"],"dynamic":false,"info":"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/","title_case":false,"password":true,"type":"str","_input_type":"SecretStrInput"},"code":{"type":"code","required":true,"placeholder":"","list":false,"show":true,"multiline":true,"value":"import assemblyai as aai\nfrom langflow.custom import Component\nfrom langflow.io import DropdownInput, FloatInput, IntInput, MessageInput, SecretStrInput, DataInput, Output\nfrom langflow.schema import Data\n\n\nclass AssemblyAILeMUR(Component):\n display_name = \"AssemblyAI LeMUR\"\n description = \"Apply Large Language Models to spoken data using the AssemblyAI LeMUR framework\"\n documentation = \"https://www.assemblyai.com/docs/lemur\"\n icon = \"AssemblyAI\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Assembly API Key\",\n info=\"Your AssemblyAI API key. You can get one from https://www.assemblyai.com/\",\n advanced=False,\n ),\n DataInput(\n name=\"transcription_result\",\n display_name=\"Transcription Result\",\n info=\"The transcription result from AssemblyAI\",\n ),\n MessageInput(\n name=\"prompt\",\n display_name=\"Input Prompt\",\n info=\"The text to prompt the model\",\n ),\n DropdownInput(\n name=\"final_model\",\n display_name=\"Final Model\",\n options=[\"claude3_5_sonnet\", \"claude3_opus\", \"claude3_haiku\", \"claude3_sonnet\"],\n value=\"claude3_5_sonnet\",\n info=\"The model that is used for the final prompt after compression is performed\",\n ),\n FloatInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n advanced=True,\n value=0.0,\n info=\"The temperature to use for the model\",\n ),\n IntInput(\n name=\"max_output_size\",\n display_name=\" Max Output Size\",\n advanced=True,\n value=2000,\n info=\"Max output size in tokens, up to 4000\",\n ),\n ]\n\n outputs = [\n Output(display_name=\"LeMUR Response\", name=\"lemur_response\", method=\"run_lemur\"),\n ]\n\n def run_lemur(self) -> Data:\n \"\"\"Use the LeMUR task endpoint to input the LLM prompt.\"\"\"\n aai.settings.api_key = self.api_key\n\n # check if it's an error message from the previous step\n if self.transcription_result.data.get(\"error\"):\n self.status = self.transcription_result.data[\"error\"]\n return self.transcription_result\n\n if not self.prompt or not self.prompt.text:\n self.status = \"No prompt specified\"\n return Data(data={\"error\": \"No prompt specified\"})\n\n try:\n transcript = aai.Transcript.get_by_id(self.transcription_result.data[\"id\"])\n except Exception as e:\n error = f\"Getting transcription failed: {str(e)}\"\n self.status = error\n return Data(data={\"error\": error})\n\n if transcript.status == aai.TranscriptStatus.completed:\n try:\n result = transcript.lemur.task(\n prompt=self.prompt.text,\n final_model=self.get_final_model(self.final_model),\n temperature=self.temperature,\n max_output_size=self.max_output_size,\n )\n\n result = Data(data=result.dict())\n self.status = result\n return result\n except Exception as e:\n error = f\"An Exception happened while calling LeMUR: {str(e)}\"\n self.status = error\n return Data(data={\"error\": error})\n else:\n self.status = transcript.error\n return Data(data={\"error\": transcript.error})\n\n def get_final_model(self, model_name: str) -> aai.LemurModel:\n if model_name == \"claude3_5_sonnet\":\n return aai.LemurModel.claude3_5_sonnet\n elif model_name == \"claude3_opus\":\n return aai.LemurModel.claude3_opus\n elif model_name == \"claude3_haiku\":\n return aai.LemurModel.claude3_haiku\n elif model_name == \"claude3_sonnet\":\n return aai.LemurModel.claude3_sonnet\n else:\n raise ValueError(f\"Model name not supported: {model_name}\")\n","fileTypes":[],"file_path":"","password":false,"name":"code","advanced":true,"dynamic":true,"info":"","load_from_db":false,"title_case":false},"final_model":{"trace_as_metadata":true,"options":["claude3_5_sonnet","claude3_opus","claude3_haiku","claude3_sonnet"],"combobox":false,"required":false,"placeholder":"","show":true,"name":"final_model","value":"claude3_5_sonnet","display_name":"Final Model","advanced":false,"dynamic":false,"info":"The model that is used for the final prompt after compression is performed","title_case":false,"type":"str","_input_type":"DropdownInput"},"max_output_size":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"max_output_size","value":2000,"display_name":" Max Output Size","advanced":true,"dynamic":false,"info":"Max output size in tokens, up to 4000","title_case":false,"type":"int","_input_type":"IntInput"},"prompt":{"trace_as_input":true,"trace_as_metadata":true,"load_from_db":false,"list":false,"required":false,"placeholder":"","show":true,"name":"prompt","value":"","display_name":"Input Prompt","advanced":false,"input_types":["Message"],"dynamic":false,"info":"The text to prompt the model","title_case":false,"type":"str","_input_type":"MessageInput"},"temperature":{"trace_as_metadata":true,"list":false,"required":false,"placeholder":"","show":true,"name":"temperature","value":0,"display_name":"Temperature","advanced":true,"dynamic":false,"info":"The temperature to use for the model","title_case":false,"type":"float","_input_type":"FloatInput"}},"description":"Apply Large Language Models to spoken data using the AssemblyAI LeMUR framework","icon":"AssemblyAI","base_classes":["Data"],"display_name":"AssemblyAI LeMUR","documentation":"https://www.assemblyai.com/docs/lemur","custom_fields":{},"output_types":[],"pinned":false,"conditional_paths":[],"frozen":false,"outputs":[{"types":["Data"],"selected":"Data","name":"lemur_response","display_name":"LeMUR Response","method":"run_lemur","value":"__UNDEFINED__","cache":true}],"field_order":["api_key","transcription_result","prompt","final_model","temperature","max_output_size"],"beta":false,"edited":false,"lf_version":"1.0.18"},"id":"AssemblyAILeMUR-cZbQ8","description":"Apply Large Language Models to spoken data using the AssemblyAI LeMUR framework","display_name":"AssemblyAI LeMUR"},"selected":false,"width":384,"height":541,"positionAbsolute":{"x":-829.7615964557997,"y":997.4743969634249},"dragging":false}],"edges":[{"source":"AssemblyAITranscriptionJobPoller-h1oNr","sourceHandle":"{œdataTypeœ:œAssemblyAITranscriptionJobPollerœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œnameœ:œtranscription_resultœ,œoutput_typesœ:[œDataœ]}","target":"AssemblyAITranscriptionParser-fObVy","targetHandle":"{œfieldNameœ:œtranscription_resultœ,œidœ:œAssemblyAITranscriptionParser-fObVyœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","data":{"targetHandle":{"fieldName":"transcription_result","id":"AssemblyAITranscriptionParser-fObVy","inputTypes":["Data"],"type":"other"},"sourceHandle":{"dataType":"AssemblyAITranscriptionJobPoller","id":"AssemblyAITranscriptionJobPoller-h1oNr","name":"transcription_result","output_types":["Data"]}},"id":"reactflow__edge-AssemblyAITranscriptionJobPoller-h1oNr{œdataTypeœ:œAssemblyAITranscriptionJobPollerœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œnameœ:œtranscription_resultœ,œoutput_typesœ:[œDataœ]}-AssemblyAITranscriptionParser-fObVy{œfieldNameœ:œtranscription_resultœ,œidœ:œAssemblyAITranscriptionParser-fObVyœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","className":"","animated":false},{"source":"AssemblyAITranscriptionJobCreator-os7m9","sourceHandle":"{œdataTypeœ:œAssemblyAITranscriptionJobCreatorœ,œidœ:œAssemblyAITranscriptionJobCreator-os7m9œ,œnameœ:œtranscript_idœ,œoutput_typesœ:[œDataœ]}","target":"AssemblyAITranscriptionJobPoller-h1oNr","targetHandle":"{œfieldNameœ:œtranscript_idœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","data":{"targetHandle":{"fieldName":"transcript_id","id":"AssemblyAITranscriptionJobPoller-h1oNr","inputTypes":["Data"],"type":"other"},"sourceHandle":{"dataType":"AssemblyAITranscriptionJobCreator","id":"AssemblyAITranscriptionJobCreator-os7m9","name":"transcript_id","output_types":["Data"]}},"id":"reactflow__edge-AssemblyAITranscriptionJobCreator-os7m9{œdataTypeœ:œAssemblyAITranscriptionJobCreatorœ,œidœ:œAssemblyAITranscriptionJobCreator-os7m9œ,œnameœ:œtranscript_idœ,œoutput_typesœ:[œDataœ]}-AssemblyAITranscriptionJobPoller-h1oNr{œfieldNameœ:œtranscript_idœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","animated":false,"className":"","selected":false},{"source":"AssemblyAITranscriptionJobPoller-h1oNr","sourceHandle":"{œdataTypeœ:œAssemblyAITranscriptionJobPollerœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œnameœ:œtranscription_resultœ,œoutput_typesœ:[œDataœ]}","target":"AssemblyAIGetSubtitles-jdwaz","targetHandle":"{œfieldNameœ:œtranscription_resultœ,œidœ:œAssemblyAIGetSubtitles-jdwazœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","data":{"targetHandle":{"fieldName":"transcription_result","id":"AssemblyAIGetSubtitles-jdwaz","inputTypes":["Data"],"type":"other"},"sourceHandle":{"dataType":"AssemblyAITranscriptionJobPoller","id":"AssemblyAITranscriptionJobPoller-h1oNr","name":"transcription_result","output_types":["Data"]}},"id":"reactflow__edge-AssemblyAITranscriptionJobPoller-h1oNr{œdataTypeœ:œAssemblyAITranscriptionJobPollerœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œnameœ:œtranscription_resultœ,œoutput_typesœ:[œDataœ]}-AssemblyAIGetSubtitles-jdwaz{œfieldNameœ:œtranscription_resultœ,œidœ:œAssemblyAIGetSubtitles-jdwazœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","animated":false,"className":""},{"source":"AssemblyAITranscriptionJobPoller-h1oNr","sourceHandle":"{œdataTypeœ:œAssemblyAITranscriptionJobPollerœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œnameœ:œtranscription_resultœ,œoutput_typesœ:[œDataœ]}","target":"AssemblyAILeMUR-cZbQ8","targetHandle":"{œfieldNameœ:œtranscription_resultœ,œidœ:œAssemblyAILeMUR-cZbQ8œ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","data":{"targetHandle":{"fieldName":"transcription_result","id":"AssemblyAILeMUR-cZbQ8","inputTypes":["Data"],"type":"other"},"sourceHandle":{"dataType":"AssemblyAITranscriptionJobPoller","id":"AssemblyAITranscriptionJobPoller-h1oNr","name":"transcription_result","output_types":["Data"]}},"id":"reactflow__edge-AssemblyAITranscriptionJobPoller-h1oNr{œdataTypeœ:œAssemblyAITranscriptionJobPollerœ,œidœ:œAssemblyAITranscriptionJobPoller-h1oNrœ,œnameœ:œtranscription_resultœ,œoutput_typesœ:[œDataœ]}-AssemblyAILeMUR-cZbQ8{œfieldNameœ:œtranscription_resultœ,œidœ:œAssemblyAILeMUR-cZbQ8œ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}","animated":false,"className":""}],"viewport":{"x":1172.3247309163394,"y":-181.74886289119002,"zoom":0.5421018517476199}},"user_id":"8ebaea62-2f56-446a-b161-2615346778d9","folder_id":"f490dd2a-f092-47bd-8762-4b09a289ff80"}
\ No newline at end of file
diff --git a/assets/images/assemblyai-components-ab9684425dba3168de28dc1a1f770d1c.png b/assets/images/assemblyai-components-ab9684425dba3168de28dc1a1f770d1c.png
new file mode 100644
index 0000000000..e748d67935
Binary files /dev/null and b/assets/images/assemblyai-components-ab9684425dba3168de28dc1a1f770d1c.png differ
diff --git a/assets/js/22dd74f7.d1f6e148.js b/assets/js/22dd74f7.d1f6e148.js
deleted file mode 100644
index 2c77b954f6..0000000000
--- a/assets/js/22dd74f7.d1f6e148.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"category","label":"What\u2019s New?","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"1.0 - A new chapter for Langflow","href":"/whats-new-a-new-chapter-langflow","docId":"What\u2019s-New/whats-new-a-new-chapter-langflow","unlisted":false}]},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udc4b\xa0Welcome to Langflow","href":"/","docId":"Getting-Started/\ud83d\udc4b\xa0Welcome-to-Langflow","unlisted":false},{"type":"link","label":"\ud83d\udce6\xa0Installation","href":"/getting-started-installation","docId":"Getting-Started/getting-started-installation","unlisted":false},{"type":"link","label":"\u26a1\ufe0f Quickstart","href":"/getting-started-quickstart","docId":"Getting-Started/getting-started-quickstart","unlisted":false},{"type":"link","label":"\u2757\ufe0f Common Installation Issues","href":"/getting-started-common-installation-issues","docId":"Getting-Started/getting-started-common-installation-issues","unlisted":false}]},{"type":"category","label":"Starter Projects","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects-basic-prompting","docId":"Starter-Projects/starter-projects-basic-prompting","unlisted":false},{"type":"link","label":"Blog Writer","href":"/starter-projects-blog-writer","docId":"Starter-Projects/starter-projects-blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/starter-projects-document-qa","docId":"Starter-Projects/starter-projects-document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/starter-projects-memory-chatbot","docId":"Starter-Projects/starter-projects-memory-chatbot","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects-vector-store-rag","docId":"Starter-Projects/starter-projects-vector-store-rag","unlisted":false},{"type":"link","label":"Complex Agent","href":"/Starter-Projects/starter-projects-complex-agent","docId":"Starter-Projects/starter-projects-complex-agent","unlisted":false},{"type":"link","label":"Hierarchical Tasks Agent","href":"/Starter-Projects/starter-projects-hierarchical-crew","docId":"Starter-Projects/starter-projects-hierarchical-crew","unlisted":false},{"type":"link","label":"Sequential Tasks Agent","href":"/Starter-Projects/starter-projects-sequential-crew","docId":"Starter-Projects/starter-projects-sequential-crew","unlisted":false}]},{"type":"category","label":"Guides","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udcda New to LLMs?","href":"/guides-new-to-llms","docId":"Guides/guides-new-to-llms","unlisted":false},{"type":"link","label":"Chat Memory","href":"/guides-chat-memory","docId":"Guides/guides-chat-memory","unlisted":false},{"type":"link","label":"Data & Message","href":"/guides-data-message","docId":"Guides/guides-data-message","unlisted":false}]},{"type":"category","label":"Workspace","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Playground","href":"/workspace-playground","docId":"Workspace/workspace-playground","unlisted":false},{"type":"link","label":"API","href":"/workspace-api","docId":"Workspace/workspace-api","unlisted":false},{"type":"link","label":"Logs","href":"/workspace-logs","docId":"Workspace/workspace-logs","unlisted":false}],"href":"/workspace"},{"type":"category","label":"Components","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Inputs & Outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Embedding Models","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Vector Stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false},{"type":"link","label":"Custom Components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false},{"type":"link","label":"RAG","href":"/components-rag","docId":"Components/components-rag","unlisted":false},{"type":"link","label":"Loaders","href":"/components-loaders","docId":"Components/components-loaders","unlisted":false},{"type":"link","label":"Memories","href":"/Components/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Tools","href":"/Components/components-tools","docId":"Components/components-tools","unlisted":false}],"href":"/components"},{"type":"category","label":"Deployment","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83e\udd17\xa0Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment-kubernetes","docId":"Deployment/deployment-kubernetes","unlisted":false},{"type":"link","label":"Docker","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"GCP","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false}]},{"type":"category","label":"Settings","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Global Variables","href":"/settings-global-variables","docId":"Settings/settings-global-variables","unlisted":false},{"type":"link","label":"Project & General Settings","href":"/settings-project-general-settings","docId":"Settings/settings-project-general-settings","unlisted":false}]},{"type":"category","label":"Configuration","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"API Keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Command Line Interface (CLI)","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"My Collection","href":"/365085a8-a90a-43f9-a779-f8769ec7eca1","docId":"Configuration/My-Collection","unlisted":false},{"type":"link","label":"Backend-Only","href":"/configuration-backend-only","docId":"Configuration/configuration-backend-only","unlisted":false},{"type":"link","label":"Auto-saving","href":"/configuration-auto-save","docId":"Configuration/configuration-auto-saving","unlisted":false}]},{"type":"category","label":"Integrations","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"category","label":"Notion","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false}]}]},{"type":"category","label":"Contributing","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false},{"type":"link","label":"How to contribute?","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"GitHub Issues","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false}]}]},"docs":{"Components/components":{"id":"Components/components","title":"Intro to Components","description":"Component","sidebar":"defaultSidebar"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Custom Components","description":"Custom components are created within Langflow and extend the platform\'s functionality with custom, resusable Python code.","sidebar":"defaultSidebar"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"API Request","sidebar":"defaultSidebar"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding Models","description":"Embeddings models are used to convert text into numerical vectors. These vectors can be used for various tasks such as similarity search, clustering, and classification.","sidebar":"defaultSidebar"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"defaultSidebar"},"Components/components-io":{"id":"Components/components-io","title":"Inputs & Outputs","description":"This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.","sidebar":"defaultSidebar"},"Components/components-loaders":{"id":"Components/components-loaders","title":"Loaders","description":"Loaders are components used to load documents from various sources, such as databases, websites, and local files. They can be used to fetch data from external sources and convert it into a format that can be processed by other components.","sidebar":"defaultSidebar"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Chat memory components store and retrieve chat messages by session_id.","sidebar":"defaultSidebar"},"Components/components-models":{"id":"Components/components-models","title":"Models","description":"Model components are used to generate text using language models. These components can be used to generate text for various tasks such as chatbots, content generation, and more.","sidebar":"defaultSidebar"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt serves as the input to a language model, comprising multiple components that can be parameterized using prompt templates.","sidebar":"defaultSidebar"},"Components/components-rag":{"id":"Components/components-rag","title":"RAG","description":"RAG (Retrieval-Augmented Generation) components process a user query by retrieving relevant documents and generating a concise summary that addresses the user\'s question.","sidebar":"defaultSidebar"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"Tool components are used to interact with external services, APIs, and tools. They can be used to search the web, query databases, and perform other tasks.","sidebar":"defaultSidebar"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector Stores","description":"Vector databases are used to store and search for vectors. They can be used to store embeddings, search for similar vectors, and perform other vector operations.","sidebar":"defaultSidebar"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API Keys","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/configuration-auto-saving":{"id":"Configuration/configuration-auto-saving","title":"Auto-saving","description":"Langflow currently supports both manual and auto-saving functionality.","sidebar":"defaultSidebar"},"Configuration/configuration-backend-only":{"id":"Configuration/configuration-backend-only","title":"Backend-Only","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Command Line Interface (CLI)","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/My-Collection":{"id":"Configuration/My-Collection","title":"My Collection","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Community","description":"\ud83e\udd16 Join\xa0Langflow\xa0Discord server","sidebar":"defaultSidebar"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"GitHub Issues","description":"Our\xa0issues\xa0page is kept up to date with bugs, improvements, and feature requests. There is a taxonomy of labels to help with sorting and discovery of issues of interest.","sidebar":"defaultSidebar"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"How to contribute?","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Docker","description":"This guide will help you get LangFlow up and running using Docker and Docker Compose.","sidebar":"defaultSidebar"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"GCP","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"\ud83e\udd17\xa0Spaces","description":"HuggingFace Spaces","sidebar":"defaultSidebar"},"Deployment/deployment-kubernetes":{"id":"Deployment/deployment-kubernetes","title":"Kubernetes","description":"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:","sidebar":"defaultSidebar"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Railway","description":"Deploy on Railway","sidebar":"defaultSidebar"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","sidebar":"defaultSidebar"},"Getting-Started/\ud83d\udc4b\xa0Welcome-to-Langflow":{"id":"Getting-Started/\ud83d\udc4b\xa0Welcome-to-Langflow","title":"\ud83d\udc4b\xa0Welcome to Langflow","description":"Introduction","sidebar":"defaultSidebar"},"Getting-Started/getting-started-common-installation-issues":{"id":"Getting-Started/getting-started-common-installation-issues","title":"\u2757\ufe0f Common Installation Issues","description":"This is a list of possible issues that you may encounter when installing Langflow and how to solve them.","sidebar":"defaultSidebar"},"Getting-Started/getting-started-installation":{"id":"Getting-Started/getting-started-installation","title":"\ud83d\udce6\xa0Installation","description":"DataStax Langflow","sidebar":"defaultSidebar"},"Getting-Started/getting-started-quickstart":{"id":"Getting-Started/getting-started-quickstart","title":"\u26a1\ufe0f Quickstart","description":"Prerequisites","sidebar":"defaultSidebar"},"Guides/guides-chat-memory":{"id":"Guides/guides-chat-memory","title":"Chat Memory","description":"Langflow allows every chat message to be stored, and a single flow can have multiple memory sessions. This enables you to create separate memories for agents to store and recall information as needed.","sidebar":"defaultSidebar"},"Guides/guides-data-message":{"id":"Guides/guides-data-message","title":"Data & Message","description":"In Langflow, the\xa0Data\xa0and\xa0Message\xa0objects serve as structured, functional representations of data that enhance the capabilities and reliability of the platform.","sidebar":"defaultSidebar"},"Guides/guides-new-to-llms":{"id":"Guides/guides-new-to-llms","title":"\ud83d\udcda New to LLMs?","description":"Large Language Models, or LLMs, are part of an exciting new world in computing.","sidebar":"defaultSidebar"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"defaultSidebar"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"defaultSidebar"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"defaultSidebar"},"Settings/settings-global-variables":{"id":"Settings/settings-global-variables","title":"Global Variables","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Settings/settings-project-general-settings":{"id":"Settings/settings-project-general-settings","title":"Project & General Settings","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-basic-prompting":{"id":"Starter-Projects/starter-projects-basic-prompting","title":"Basic Prompting","description":"Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-blog-writer":{"id":"Starter-Projects/starter-projects-blog-writer","title":"Blog Writer","description":"Build a blog writer with OpenAI that uses URLs for reference content.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-complex-agent":{"id":"Starter-Projects/starter-projects-complex-agent","title":"Complex Agent","description":"Build a Complex Agent flow for a chatbot application using CrewAI. This flow uses CrewAI to manage a Hierarchical Crew of Agents as they perform a sequence of Tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-document-qa":{"id":"Starter-Projects/starter-projects-document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with a document loaded from local memory.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-hierarchical-crew":{"id":"Starter-Projects/starter-projects-hierarchical-crew","title":"Hierarchical Tasks Agent","description":"Build a Hierarchical Tasks Agent flow for a multi-shot application using CrewAI. This flow uses CrewAI to manage a Hierarchical Crew of Agents as they perform disparate tasks under the control of a Manager Agent.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-memory-chatbot":{"id":"Starter-Projects/starter-projects-memory-chatbot","title":"Memory Chatbot","description":"This flow extends the\xa0Basic Prompting\xa0flow to include a chat memory. This makes the AI remember previous user inputs.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-sequential-crew":{"id":"Starter-Projects/starter-projects-sequential-crew","title":"Sequential Tasks Agent","description":"Build a Sequential Tasks Agent flow for a multi-shot application using CrewAI. This flow uses CrewAI to manage a Crew of Agents as they perform a sequence of Tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-vector-store-rag":{"id":"Starter-Projects/starter-projects-vector-store-rag","title":"Vector Store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"defaultSidebar"},"What\u2019s-New/whats-new-a-new-chapter-langflow":{"id":"What\u2019s-New/whats-new-a-new-chapter-langflow","title":"1.0 - A new chapter for Langflow","description":"First things first","sidebar":"defaultSidebar"},"Workspace/workspace":{"id":"Workspace/workspace","title":"Workspace Overview","description":"The Langflow Workspace","sidebar":"defaultSidebar"},"Workspace/workspace-api":{"id":"Workspace/workspace-api","title":"API","description":"The\xa0API\xa0section presents code templates for integrating your flow into external applications.","sidebar":"defaultSidebar"},"Workspace/workspace-logs":{"id":"Workspace/workspace-logs","title":"Logs","description":"The\xa0Logs\xa0page provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.","sidebar":"defaultSidebar"},"Workspace/workspace-playground":{"id":"Workspace/workspace-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different outcomes.","sidebar":"defaultSidebar"}}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/22dd74f7.e73c21b3.js b/assets/js/22dd74f7.e73c21b3.js
new file mode 100644
index 0000000000..68d66a96f5
--- /dev/null
+++ b/assets/js/22dd74f7.e73c21b3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"category","label":"What\u2019s New?","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"1.0 - A new chapter for Langflow","href":"/whats-new-a-new-chapter-langflow","docId":"What\u2019s-New/whats-new-a-new-chapter-langflow","unlisted":false}]},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udc4b\xa0Welcome to Langflow","href":"/","docId":"Getting-Started/\ud83d\udc4b\xa0Welcome-to-Langflow","unlisted":false},{"type":"link","label":"\ud83d\udce6\xa0Installation","href":"/getting-started-installation","docId":"Getting-Started/getting-started-installation","unlisted":false},{"type":"link","label":"\u26a1\ufe0f Quickstart","href":"/getting-started-quickstart","docId":"Getting-Started/getting-started-quickstart","unlisted":false},{"type":"link","label":"\u2757\ufe0f Common Installation Issues","href":"/getting-started-common-installation-issues","docId":"Getting-Started/getting-started-common-installation-issues","unlisted":false}]},{"type":"category","label":"Starter Projects","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects-basic-prompting","docId":"Starter-Projects/starter-projects-basic-prompting","unlisted":false},{"type":"link","label":"Blog Writer","href":"/starter-projects-blog-writer","docId":"Starter-Projects/starter-projects-blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/starter-projects-document-qa","docId":"Starter-Projects/starter-projects-document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/starter-projects-memory-chatbot","docId":"Starter-Projects/starter-projects-memory-chatbot","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects-vector-store-rag","docId":"Starter-Projects/starter-projects-vector-store-rag","unlisted":false},{"type":"link","label":"Complex Agent","href":"/Starter-Projects/starter-projects-complex-agent","docId":"Starter-Projects/starter-projects-complex-agent","unlisted":false},{"type":"link","label":"Hierarchical Tasks Agent","href":"/Starter-Projects/starter-projects-hierarchical-crew","docId":"Starter-Projects/starter-projects-hierarchical-crew","unlisted":false},{"type":"link","label":"Sequential Tasks Agent","href":"/Starter-Projects/starter-projects-sequential-crew","docId":"Starter-Projects/starter-projects-sequential-crew","unlisted":false}]},{"type":"category","label":"Guides","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udcda New to LLMs?","href":"/guides-new-to-llms","docId":"Guides/guides-new-to-llms","unlisted":false},{"type":"link","label":"Chat Memory","href":"/guides-chat-memory","docId":"Guides/guides-chat-memory","unlisted":false},{"type":"link","label":"Data & Message","href":"/guides-data-message","docId":"Guides/guides-data-message","unlisted":false}]},{"type":"category","label":"Workspace","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Playground","href":"/workspace-playground","docId":"Workspace/workspace-playground","unlisted":false},{"type":"link","label":"API","href":"/workspace-api","docId":"Workspace/workspace-api","unlisted":false},{"type":"link","label":"Logs","href":"/workspace-logs","docId":"Workspace/workspace-logs","unlisted":false}],"href":"/workspace"},{"type":"category","label":"Components","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Inputs & Outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Embedding Models","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Vector Stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false},{"type":"link","label":"Custom Components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false},{"type":"link","label":"RAG","href":"/components-rag","docId":"Components/components-rag","unlisted":false},{"type":"link","label":"Loaders","href":"/components-loaders","docId":"Components/components-loaders","unlisted":false},{"type":"link","label":"Memories","href":"/Components/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Tools","href":"/Components/components-tools","docId":"Components/components-tools","unlisted":false}],"href":"/components"},{"type":"category","label":"Deployment","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83e\udd17\xa0Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment-kubernetes","docId":"Deployment/deployment-kubernetes","unlisted":false},{"type":"link","label":"Docker","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"GCP","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false}]},{"type":"category","label":"Settings","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Global Variables","href":"/settings-global-variables","docId":"Settings/settings-global-variables","unlisted":false},{"type":"link","label":"Project & General Settings","href":"/settings-project-general-settings","docId":"Settings/settings-project-general-settings","unlisted":false}]},{"type":"category","label":"Configuration","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"API Keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Command Line Interface (CLI)","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"My Collection","href":"/365085a8-a90a-43f9-a779-f8769ec7eca1","docId":"Configuration/My-Collection","unlisted":false},{"type":"link","label":"Backend-Only","href":"/configuration-backend-only","docId":"Configuration/configuration-backend-only","unlisted":false},{"type":"link","label":"Auto-saving","href":"/configuration-auto-save","docId":"Configuration/configuration-auto-saving","unlisted":false}]},{"type":"category","label":"Integrations","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"category","label":"Notion","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false}]},{"type":"link","label":"AssemblyAI","href":"/integrations-assemblyai","docId":"Integrations/integrations-assemblyai","unlisted":false}]},{"type":"category","label":"Contributing","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false},{"type":"link","label":"How to contribute?","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"GitHub Issues","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false}]}]},"docs":{"Components/components":{"id":"Components/components","title":"Intro to Components","description":"Component","sidebar":"defaultSidebar"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Custom Components","description":"Custom components are created within Langflow and extend the platform\'s functionality with custom, resusable Python code.","sidebar":"defaultSidebar"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"API Request","sidebar":"defaultSidebar"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding Models","description":"Embeddings models are used to convert text into numerical vectors. These vectors can be used for various tasks such as similarity search, clustering, and classification.","sidebar":"defaultSidebar"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"defaultSidebar"},"Components/components-io":{"id":"Components/components-io","title":"Inputs & Outputs","description":"This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.","sidebar":"defaultSidebar"},"Components/components-loaders":{"id":"Components/components-loaders","title":"Loaders","description":"Loaders are components used to load documents from various sources, such as databases, websites, and local files. They can be used to fetch data from external sources and convert it into a format that can be processed by other components.","sidebar":"defaultSidebar"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Chat memory components store and retrieve chat messages by session_id.","sidebar":"defaultSidebar"},"Components/components-models":{"id":"Components/components-models","title":"Models","description":"Model components are used to generate text using language models. These components can be used to generate text for various tasks such as chatbots, content generation, and more.","sidebar":"defaultSidebar"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt serves as the input to a language model, comprising multiple components that can be parameterized using prompt templates.","sidebar":"defaultSidebar"},"Components/components-rag":{"id":"Components/components-rag","title":"RAG","description":"RAG (Retrieval-Augmented Generation) components process a user query by retrieving relevant documents and generating a concise summary that addresses the user\'s question.","sidebar":"defaultSidebar"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"Tool components are used to interact with external services, APIs, and tools. They can be used to search the web, query databases, and perform other tasks.","sidebar":"defaultSidebar"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector Stores","description":"Vector databases are used to store and search for vectors. They can be used to store embeddings, search for similar vectors, and perform other vector operations.","sidebar":"defaultSidebar"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API Keys","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/configuration-auto-saving":{"id":"Configuration/configuration-auto-saving","title":"Auto-saving","description":"Langflow currently supports both manual and auto-saving functionality.","sidebar":"defaultSidebar"},"Configuration/configuration-backend-only":{"id":"Configuration/configuration-backend-only","title":"Backend-Only","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Command Line Interface (CLI)","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Configuration/My-Collection":{"id":"Configuration/My-Collection","title":"My Collection","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Community","description":"\ud83e\udd16 Join\xa0Langflow\xa0Discord server","sidebar":"defaultSidebar"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"GitHub Issues","description":"Our\xa0issues\xa0page is kept up to date with bugs, improvements, and feature requests. There is a taxonomy of labels to help with sorting and discovery of issues of interest.","sidebar":"defaultSidebar"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"How to contribute?","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Docker","description":"This guide will help you get LangFlow up and running using Docker and Docker Compose.","sidebar":"defaultSidebar"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"GCP","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"\ud83e\udd17\xa0Spaces","description":"HuggingFace Spaces","sidebar":"defaultSidebar"},"Deployment/deployment-kubernetes":{"id":"Deployment/deployment-kubernetes","title":"Kubernetes","description":"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:","sidebar":"defaultSidebar"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Railway","description":"Deploy on Railway","sidebar":"defaultSidebar"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","sidebar":"defaultSidebar"},"Getting-Started/\ud83d\udc4b\xa0Welcome-to-Langflow":{"id":"Getting-Started/\ud83d\udc4b\xa0Welcome-to-Langflow","title":"\ud83d\udc4b\xa0Welcome to Langflow","description":"Introduction","sidebar":"defaultSidebar"},"Getting-Started/getting-started-common-installation-issues":{"id":"Getting-Started/getting-started-common-installation-issues","title":"\u2757\ufe0f Common Installation Issues","description":"This is a list of possible issues that you may encounter when installing Langflow and how to solve them.","sidebar":"defaultSidebar"},"Getting-Started/getting-started-installation":{"id":"Getting-Started/getting-started-installation","title":"\ud83d\udce6\xa0Installation","description":"DataStax Langflow","sidebar":"defaultSidebar"},"Getting-Started/getting-started-quickstart":{"id":"Getting-Started/getting-started-quickstart","title":"\u26a1\ufe0f Quickstart","description":"Prerequisites","sidebar":"defaultSidebar"},"Guides/guides-chat-memory":{"id":"Guides/guides-chat-memory","title":"Chat Memory","description":"Langflow allows every chat message to be stored, and a single flow can have multiple memory sessions. This enables you to create separate memories for agents to store and recall information as needed.","sidebar":"defaultSidebar"},"Guides/guides-data-message":{"id":"Guides/guides-data-message","title":"Data & Message","description":"In Langflow, the\xa0Data\xa0and\xa0Message\xa0objects serve as structured, functional representations of data that enhance the capabilities and reliability of the platform.","sidebar":"defaultSidebar"},"Guides/guides-new-to-llms":{"id":"Guides/guides-new-to-llms","title":"\ud83d\udcda New to LLMs?","description":"Large Language Models, or LLMs, are part of an exciting new world in computing.","sidebar":"defaultSidebar"},"Integrations/integrations-assemblyai":{"id":"Integrations/integrations-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"defaultSidebar"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"defaultSidebar"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"defaultSidebar"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"defaultSidebar"},"Settings/settings-global-variables":{"id":"Settings/settings-global-variables","title":"Global Variables","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Settings/settings-project-general-settings":{"id":"Settings/settings-project-general-settings","title":"Project & General Settings","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-basic-prompting":{"id":"Starter-Projects/starter-projects-basic-prompting","title":"Basic Prompting","description":"Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-blog-writer":{"id":"Starter-Projects/starter-projects-blog-writer","title":"Blog Writer","description":"Build a blog writer with OpenAI that uses URLs for reference content.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-complex-agent":{"id":"Starter-Projects/starter-projects-complex-agent","title":"Complex Agent","description":"Build a Complex Agent flow for a chatbot application using CrewAI. This flow uses CrewAI to manage a Hierarchical Crew of Agents as they perform a sequence of Tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-document-qa":{"id":"Starter-Projects/starter-projects-document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with a document loaded from local memory.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-hierarchical-crew":{"id":"Starter-Projects/starter-projects-hierarchical-crew","title":"Hierarchical Tasks Agent","description":"Build a Hierarchical Tasks Agent flow for a multi-shot application using CrewAI. This flow uses CrewAI to manage a Hierarchical Crew of Agents as they perform disparate tasks under the control of a Manager Agent.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-memory-chatbot":{"id":"Starter-Projects/starter-projects-memory-chatbot","title":"Memory Chatbot","description":"This flow extends the\xa0Basic Prompting\xa0flow to include a chat memory. This makes the AI remember previous user inputs.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-sequential-crew":{"id":"Starter-Projects/starter-projects-sequential-crew","title":"Sequential Tasks Agent","description":"Build a Sequential Tasks Agent flow for a multi-shot application using CrewAI. This flow uses CrewAI to manage a Crew of Agents as they perform a sequence of Tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-vector-store-rag":{"id":"Starter-Projects/starter-projects-vector-store-rag","title":"Vector Store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"defaultSidebar"},"What\u2019s-New/whats-new-a-new-chapter-langflow":{"id":"What\u2019s-New/whats-new-a-new-chapter-langflow","title":"1.0 - A new chapter for Langflow","description":"First things first","sidebar":"defaultSidebar"},"Workspace/workspace":{"id":"Workspace/workspace","title":"Workspace Overview","description":"The Langflow Workspace","sidebar":"defaultSidebar"},"Workspace/workspace-api":{"id":"Workspace/workspace-api","title":"API","description":"The\xa0API\xa0section presents code templates for integrating your flow into external applications.","sidebar":"defaultSidebar"},"Workspace/workspace-logs":{"id":"Workspace/workspace-logs","title":"Logs","description":"The\xa0Logs\xa0page provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.","sidebar":"defaultSidebar"},"Workspace/workspace-playground":{"id":"Workspace/workspace-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different outcomes.","sidebar":"defaultSidebar"}}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/6a2beaac.18b2687e.js b/assets/js/6a2beaac.18b2687e.js
new file mode 100644
index 0000000000..2bb0f9a8fe
--- /dev/null
+++ b/assets/js/6a2beaac.18b2687e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3110],{601:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>d,assets:()=>c,chCodeConfig:()=>h,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var o=t(4848),s=t(8453),i=t(4754);const r={title:"Notion Conversational Agent",sidebar_position:2,slug:"/integrations/notion/notion-agent-conversational"},a=void 0,l={id:"Integrations/Notion/notion-agent-conversational",title:"Notion Conversational Agent",description:"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.",source:"@site/docs/Integrations/Notion/notion-agent-conversational.md",sourceDirName:"Integrations/Notion",slug:"/integrations/notion/notion-agent-conversational",permalink:"/integrations/notion/notion-agent-conversational",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Notion Conversational Agent",sidebar_position:2,slug:"/integrations/notion/notion-agent-conversational"},sidebar:"defaultSidebar",previous:{title:"Notion Meeting Notes Agent",permalink:"/integrations/notion/notion-agent-meeting-notes"},next:{title:"AssemblyAI",permalink:"/integrations-assemblyai"}},c={},d={annotations:i.hk,Code:i.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Flow Components",id:"flow-components",level:2},{value:"Input and Output",id:"input-and-output",level:3},{value:"Language Model",id:"language-model",level:3},{value:"Agent and Tools",id:"agent-and-tools",level:3},{value:"Memory and Prompt",id:"memory-and-prompt",level:3},{value:"Run the Conversational Notion Agent",id:"run-the-conversational-notion-agent",level:2},{value:"Example Interactions",id:"example-interactions",level:2},{value:"Customization",id:"customization",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function g(e){const n={a:"a",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return d||m("CH",!1),d.Code||m("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,o.jsx)(n.p,{children:"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface."}),"\n",(0,o.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/integrations/notion/setup",children:"Notion App"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://www.notion.so/my-integrations",children:"Notion account and API key"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://platform.openai.com/account/api-keys",children:"OpenAI API key"})}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(4821).A+"",children:"Download Flow Conversation Agent Flow"}),"(Download link)"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Notion Components Toolkit",src:t(4530).A+"",width:"1188",height:"793"})}),"\n",(0,o.jsx)(n.h2,{id:"flow-components",children:"Flow Components"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h3,{id:"input-and-output",children:"Input and Output"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Chat Input"}),": Accepts user queries and commands"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Chat Output"}),": Displays the agent's responses"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"language-model",children:"Language Model"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"OpenAI Model"}),": Processes user input and generates responses"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"agent-and-tools",children:"Agent and Tools"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Tool Calling Agent"}),": Coordinates the use of various Notion tools based on user input"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Toolkit"}),": Combines multiple Notion-specific tools into a single toolkit"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Notion Tools"}),": Various components for interacting with Notion, including:","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"List Users"}),"\n",(0,o.jsx)(n.li,{children:"List Database Properties"}),"\n",(0,o.jsx)(n.li,{children:"List Pages"}),"\n",(0,o.jsx)(n.li,{children:"Page Content Viewer"}),"\n",(0,o.jsx)(n.li,{children:"Create Page"}),"\n",(0,o.jsx)(n.li,{children:"Update Page Property"}),"\n",(0,o.jsx)(n.li,{children:"Add Content to Page"}),"\n",(0,o.jsx)(n.li,{children:"Search"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"memory-and-prompt",children:"Memory and Prompt"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Chat Memory"}),": Stores conversation history"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Prompt"}),": Provides system instructions and context for the agent"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Current Date"}),": Supplies the current date and time for context"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"run-the-conversational-notion-agent",children:"Run the Conversational Notion Agent"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Open Langflow and create a new project."}),"\n",(0,o.jsxs)(n.li,{children:["Add the components listed above to your flow canvas, or Download the ",(0,o.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(4821).A+"",children:"Conversation Agent Flow"}),"(Download link) and ",(0,o.jsx)(n.strong,{children:"Import"})," the JSON file into Langflow."]}),"\n",(0,o.jsx)(n.li,{children:"Connect the components as shown in the flow diagram."}),"\n",(0,o.jsx)(n.li,{children:"Input the Notion and OpenAI API keys in their respective components."}),"\n",(0,o.jsx)(n.li,{children:'To start the flow, click the "Play" button in Langflow.'}),"\n",(0,o.jsxs)(n.li,{children:["In the chat interface, enter a Notion-related request or question. For example:","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:'"Create a new page in my task database"'}),"\n",(0,o.jsx)(n.li,{children:'"Search for pages about project management"'}),"\n",(0,o.jsx)(n.li,{children:'"List all users in my Notion workspace"'}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.li,{children:"The agent will process your request, use the appropriate Notion tools, and provide a response."}),"\n",(0,o.jsx)(n.li,{children:"Continue the conversation, asking follow-up questions or giving new commands as needed."}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"example-interactions",children:"Example Interactions"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"User: List all the users in my Notion workspace.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Agent: Certainly! I'll use the Notion User List tool to retrieve that information for you. One moment please.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Notion User List tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Here's a list of users in your Notion workspace:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"1. John Doe (john@example.com)",props:{}}]},{tokens:[{content:"2. Jane Smith (jane@example.com)",props:{}}]},{tokens:[{content:"3. Alex Johnson (alex@example.com)",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Is there anything specific you'd like to know about these users or any other Notion-related task I can help you with?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'User: Create a new page in my Projects database with the title "Website Redesign".',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Agent: Certainly! I'd be happy to create a new page in your Projects database with the title \"Website Redesign\". I'll use the Notion Page Creator tool to do this. First, let me check the properties of your Projects database to ensure we include all necessary information.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Notion Database Properties tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"I've retrieved the properties for your Projects database. Now, I'll create the new page with the title \"Website Redesign\". One moment please.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Notion Page Creator tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'Great news! I\'ve successfully created a new page in your Projects database with the title "Website Redesign". Here are the details:',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"- Title: Website Redesign",props:{}}]},{tokens:[{content:"- Page ID: [page_id_here]",props:{}}]},{tokens:[{content:"- URL: [page_url_here]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Is there any additional information you'd like me to add to this new project page, such as a description, due date, or assigned team members?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'User: Yes, please add a description: "Redesign company website to improve user experience and modernize the look."',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Agent: Certainly! I'd be happy to add that description to the \"Website Redesign\" project page. I'll use the Add Content to Page tool to update the page with this information.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Add Content to Page tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"I've successfully added the description to your \"Website Redesign\" project page. Here's a summary of what I've done:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'1. Located the "Website Redesign" page using the page ID from our previous interaction.',props:{}}]},{tokens:[{content:"2. Added the following content to the page:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:" Description: Redesign company website to improve user experience and modernize the look.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"The description has been added as a new text block on the page. Is there anything else you'd like me to add or modify on this project page?",props:{}}]},{tokens:[{content:"",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsx)(n.h2,{id:"customization",children:"Customization"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.p,{children:"The flow can be customized to meet your team's specific needs."}),"\n",(0,o.jsx)(n.p,{children:"Customize this flow by:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Adjusting the system prompt to change the agent's behavior or knowledge base."}),"\n",(0,o.jsx)(n.li,{children:"Adding or removing Notion tools based on your specific needs."}),"\n",(0,o.jsx)(n.li,{children:"Modifying the OpenAI model parameters (e.g., temperature) to adjust the agent's response style."}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.p,{children:"If you encounter issues:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Ensure all API keys are correctly set and have the necessary permissions."}),"\n",(0,o.jsx)(n.li,{children:"Check that your Notion integration has access to the relevant pages and databases."}),"\n",(0,o.jsx)(n.li,{children:"Verify that all components are properly connected in the flow."}),"\n",(0,o.jsx)(n.li,{children:"Review the Langflow logs for any error messages."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["For more advanced usage and integration options, refer to the ",(0,o.jsx)(n.a,{href:"https://developers.notion.com/",children:"Notion API documentation"})," and ",(0,o.jsx)(n.a,{href:"/",children:"Langflow documentation"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}function m(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},4821:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/files/Conversational_Notion_Agent-2edcce5da4095a29ef9fa9faa62f8ee0.json"},4530:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/notion_conversational_agent_tools-6952705eb98e10bd4a67b74500a6189d.png"}}]);
\ No newline at end of file
diff --git a/assets/js/6a2beaac.d384ce20.js b/assets/js/6a2beaac.d384ce20.js
deleted file mode 100644
index 79f425722a..0000000000
--- a/assets/js/6a2beaac.d384ce20.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3110],{601:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>d,assets:()=>c,chCodeConfig:()=>h,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var o=t(4848),s=t(8453),i=t(4754);const r={title:"Notion Conversational Agent",sidebar_position:2,slug:"/integrations/notion/notion-agent-conversational"},a=void 0,l={id:"Integrations/Notion/notion-agent-conversational",title:"Notion Conversational Agent",description:"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.",source:"@site/docs/Integrations/Notion/notion-agent-conversational.md",sourceDirName:"Integrations/Notion",slug:"/integrations/notion/notion-agent-conversational",permalink:"/integrations/notion/notion-agent-conversational",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Notion Conversational Agent",sidebar_position:2,slug:"/integrations/notion/notion-agent-conversational"},sidebar:"defaultSidebar",previous:{title:"Notion Meeting Notes Agent",permalink:"/integrations/notion/notion-agent-meeting-notes"},next:{title:"Telemetry",permalink:"/contributing-telemetry"}},c={},d={annotations:i.hk,Code:i.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Flow Components",id:"flow-components",level:2},{value:"Input and Output",id:"input-and-output",level:3},{value:"Language Model",id:"language-model",level:3},{value:"Agent and Tools",id:"agent-and-tools",level:3},{value:"Memory and Prompt",id:"memory-and-prompt",level:3},{value:"Run the Conversational Notion Agent",id:"run-the-conversational-notion-agent",level:2},{value:"Example Interactions",id:"example-interactions",level:2},{value:"Customization",id:"customization",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function g(e){const n={a:"a",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return d||m("CH",!1),d.Code||m("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,o.jsx)(n.p,{children:"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface."}),"\n",(0,o.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/integrations/notion/setup",children:"Notion App"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://www.notion.so/my-integrations",children:"Notion account and API key"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://platform.openai.com/account/api-keys",children:"OpenAI API key"})}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(4821).A+"",children:"Download Flow Conversation Agent Flow"}),"(Download link)"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Notion Components Toolkit",src:t(4530).A+"",width:"1188",height:"793"})}),"\n",(0,o.jsx)(n.h2,{id:"flow-components",children:"Flow Components"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h3,{id:"input-and-output",children:"Input and Output"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Chat Input"}),": Accepts user queries and commands"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Chat Output"}),": Displays the agent's responses"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"language-model",children:"Language Model"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"OpenAI Model"}),": Processes user input and generates responses"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"agent-and-tools",children:"Agent and Tools"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Tool Calling Agent"}),": Coordinates the use of various Notion tools based on user input"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Toolkit"}),": Combines multiple Notion-specific tools into a single toolkit"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Notion Tools"}),": Various components for interacting with Notion, including:","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"List Users"}),"\n",(0,o.jsx)(n.li,{children:"List Database Properties"}),"\n",(0,o.jsx)(n.li,{children:"List Pages"}),"\n",(0,o.jsx)(n.li,{children:"Page Content Viewer"}),"\n",(0,o.jsx)(n.li,{children:"Create Page"}),"\n",(0,o.jsx)(n.li,{children:"Update Page Property"}),"\n",(0,o.jsx)(n.li,{children:"Add Content to Page"}),"\n",(0,o.jsx)(n.li,{children:"Search"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"memory-and-prompt",children:"Memory and Prompt"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Chat Memory"}),": Stores conversation history"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Prompt"}),": Provides system instructions and context for the agent"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Current Date"}),": Supplies the current date and time for context"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"run-the-conversational-notion-agent",children:"Run the Conversational Notion Agent"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Open Langflow and create a new project."}),"\n",(0,o.jsxs)(n.li,{children:["Add the components listed above to your flow canvas, or Download the ",(0,o.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(4821).A+"",children:"Conversation Agent Flow"}),"(Download link) and ",(0,o.jsx)(n.strong,{children:"Import"})," the JSON file into Langflow."]}),"\n",(0,o.jsx)(n.li,{children:"Connect the components as shown in the flow diagram."}),"\n",(0,o.jsx)(n.li,{children:"Input the Notion and OpenAI API keys in their respective components."}),"\n",(0,o.jsx)(n.li,{children:'To start the flow, click the "Play" button in Langflow.'}),"\n",(0,o.jsxs)(n.li,{children:["In the chat interface, enter a Notion-related request or question. For example:","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:'"Create a new page in my task database"'}),"\n",(0,o.jsx)(n.li,{children:'"Search for pages about project management"'}),"\n",(0,o.jsx)(n.li,{children:'"List all users in my Notion workspace"'}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.li,{children:"The agent will process your request, use the appropriate Notion tools, and provide a response."}),"\n",(0,o.jsx)(n.li,{children:"Continue the conversation, asking follow-up questions or giving new commands as needed."}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"example-interactions",children:"Example Interactions"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"User: List all the users in my Notion workspace.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Agent: Certainly! I'll use the Notion User List tool to retrieve that information for you. One moment please.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Notion User List tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Here's a list of users in your Notion workspace:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"1. John Doe (john@example.com)",props:{}}]},{tokens:[{content:"2. Jane Smith (jane@example.com)",props:{}}]},{tokens:[{content:"3. Alex Johnson (alex@example.com)",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Is there anything specific you'd like to know about these users or any other Notion-related task I can help you with?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'User: Create a new page in my Projects database with the title "Website Redesign".',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Agent: Certainly! I'd be happy to create a new page in your Projects database with the title \"Website Redesign\". I'll use the Notion Page Creator tool to do this. First, let me check the properties of your Projects database to ensure we include all necessary information.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Notion Database Properties tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"I've retrieved the properties for your Projects database. Now, I'll create the new page with the title \"Website Redesign\". One moment please.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Notion Page Creator tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'Great news! I\'ve successfully created a new page in your Projects database with the title "Website Redesign". Here are the details:',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"- Title: Website Redesign",props:{}}]},{tokens:[{content:"- Page ID: [page_id_here]",props:{}}]},{tokens:[{content:"- URL: [page_url_here]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Is there any additional information you'd like me to add to this new project page, such as a description, due date, or assigned team members?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'User: Yes, please add a description: "Redesign company website to improve user experience and modernize the look."',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Agent: Certainly! I'd be happy to add that description to the \"Website Redesign\" project page. I'll use the Add Content to Page tool to update the page with this information.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"[Agent uses the Add Content to Page tool]",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"I've successfully added the description to your \"Website Redesign\" project page. Here's a summary of what I've done:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'1. Located the "Website Redesign" page using the page ID from our previous interaction.',props:{}}]},{tokens:[{content:"2. Added the following content to the page:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:" Description: Redesign company website to improve user experience and modernize the look.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"The description has been added as a new text block on the page. Is there anything else you'd like me to add or modify on this project page?",props:{}}]},{tokens:[{content:"",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsx)(n.h2,{id:"customization",children:"Customization"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.p,{children:"The flow can be customized to meet your team's specific needs."}),"\n",(0,o.jsx)(n.p,{children:"Customize this flow by:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Adjusting the system prompt to change the agent's behavior or knowledge base."}),"\n",(0,o.jsx)(n.li,{children:"Adding or removing Notion tools based on your specific needs."}),"\n",(0,o.jsx)(n.li,{children:"Modifying the OpenAI model parameters (e.g., temperature) to adjust the agent's response style."}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.p,{children:"If you encounter issues:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Ensure all API keys are correctly set and have the necessary permissions."}),"\n",(0,o.jsx)(n.li,{children:"Check that your Notion integration has access to the relevant pages and databases."}),"\n",(0,o.jsx)(n.li,{children:"Verify that all components are properly connected in the flow."}),"\n",(0,o.jsx)(n.li,{children:"Review the Langflow logs for any error messages."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["For more advanced usage and integration options, refer to the ",(0,o.jsx)(n.a,{href:"https://developers.notion.com/",children:"Notion API documentation"})," and ",(0,o.jsx)(n.a,{href:"/",children:"Langflow documentation"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}function m(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},4821:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/files/Conversational_Notion_Agent-2edcce5da4095a29ef9fa9faa62f8ee0.json"},4530:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/notion_conversational_agent_tools-6952705eb98e10bd4a67b74500a6189d.png"}}]);
\ No newline at end of file
diff --git a/assets/js/829ff4d2.048613fa.js b/assets/js/829ff4d2.048613fa.js
new file mode 100644
index 0000000000..1aaddf3eb7
--- /dev/null
+++ b/assets/js/829ff4d2.048613fa.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3964],{4745:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var t=s(4848),i=s(8453);const l={title:"AssemblyAI",sidebar_position:3,slug:"/integrations-assemblyai"},r="AssemblyAI",o={id:"Integrations/integrations-assemblyai",title:"AssemblyAI",description:"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:",source:"@site/docs/Integrations/integrations-assemblyai.md",sourceDirName:"Integrations",slug:"/integrations-assemblyai",permalink:"/integrations-assemblyai",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"AssemblyAI",sidebar_position:3,slug:"/integrations-assemblyai"},sidebar:"defaultSidebar",previous:{title:"Notion Conversational Agent",permalink:"/integrations/notion/notion-agent-conversational"},next:{title:"Telemetry",permalink:"/contributing-telemetry"}},a={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Components",id:"components",level:2},{value:"AssemblyAI Start Transcript",id:"assemblyai-start-transcript",level:3},{value:"AssebmlyAI Poll Transcript",id:"assebmlyai-poll-transcript",level:3},{value:"AssebmlyAI Parse Transcript",id:"assebmlyai-parse-transcript",level:3},{value:"AssebmlyAI Get Subtitles",id:"assebmlyai-get-subtitles",level:3},{value:"AssebmlyAI LeMUR",id:"assebmlyai-lemur",level:3},{value:"AssemblyAI List Transcripts",id:"assemblyai-list-transcripts",level:3},{value:"Flow Process",id:"flow-process",level:2},{value:"Run the Transcription and Speech AI Flow",id:"run-the-transcription-and-speech-ai-flow",level:2},{value:"Customization",id:"customization",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"assemblyai",children:"AssemblyAI"}),"\n",(0,t.jsx)(n.p,{children:"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcribing audio and video files"}),"\n",(0,t.jsx)(n.li,{children:"Formatting transcripts"}),"\n",(0,t.jsx)(n.li,{children:"Generating subtitles"}),"\n",(0,t.jsx)(n.li,{children:"Applying LLMs to audio files"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"More info about AssemblyAI:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/",children:"Website"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs",children:"AssemblyAI API Docs"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/dashboard/signup",children:"Get a Free API key"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.p,{children:["You need an ",(0,t.jsx)(n.strong,{children:"AssemblyAI API key"}),". After creating a free account, you'll find the API key in your dashboard. ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/dashboard/signup",children:"Get a Free API key here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Enter the key in the ",(0,t.jsx)(n.em,{children:"AssemblyAI API Key"})," field in all components that require the key."]}),"\n",(0,t.jsx)(n.p,{children:"(Optional): To use LeMUR, you need to upgrade your AssemblyAI account, since this is not included in the free account."}),"\n",(0,t.jsx)(n.h2,{id:"components",children:"Components"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"AssemblyAI Components",src:s(7835).A+"",width:"2143",height:"1532"})}),"\n",(0,t.jsx)(n.h3,{id:"assemblyai-start-transcript",children:"AssemblyAI Start Transcript"}),"\n",(0,t.jsx)(n.p,{children:"This component allows you to submit an audio or video file for transcription."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Tip"}),": You can freeze the path of this component to only submit the file once."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Audio File: The audio or video file to transcribe."}),"\n",(0,t.jsxs)(n.li,{children:["Speech Model (Optional): Select the class of models. Default is ",(0,t.jsx)(n.em,{children:"Best"}),". See ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/speech-to-text/speech-recognition#select-the-speech-model-with-best-and-nano",children:"speech models"})," for more info."]}),"\n",(0,t.jsx)(n.li,{children:"Automatic Language Detection (Optional): Enable automatic language detection."}),"\n",(0,t.jsxs)(n.li,{children:["Language (Optional): The language of the audio file. Can be set manually if automatic language detection is disabled.\nSee ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/getting-started/supported-languages",children:"supported languages"})," for a list of supported language codes."]}),"\n",(0,t.jsx)(n.li,{children:"Enable Speaker Labels (Optional): Detect speakers in an audio file and what each speaker said."}),"\n",(0,t.jsx)(n.li,{children:"Expected Number of Speakers (Optional): Set the expected number of speakers, if Speaker Labels is enabled."}),"\n",(0,t.jsxs)(n.li,{children:["Audio File URL (Optional): The URL of the audio or video file to transcribe. Can be used instead of ",(0,t.jsx)(n.em,{children:"Audio File"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"Punctuate (Optional): Apply punctuation. Default is true."}),"\n",(0,t.jsx)(n.li,{children:"Format Text (Optional): Apply casing and text formatting. Default is true."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcript ID: The id of the transcript"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-poll-transcript",children:"AssebmlyAI Poll Transcript"}),"\n",(0,t.jsx)(n.p,{children:"This components allows you to poll the transcripts. It checks the status of the transcript every few seconds until the transcription is completed."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Polling Interval: The polling interval in seconds. Default is 3."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcription Result: The AssemblyAI JSON response of a completed transcript. Contains the text and other info."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-parse-transcript",children:"AssebmlyAI Parse Transcript"}),"\n",(0,t.jsxs)(n.p,{children:["This component allows you to parse a ",(0,t.jsx)(n.em,{children:"Transcription Result"})," and outputs the formatted text."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Transcription Result: The output of the ",(0,t.jsx)(n.em,{children:"Poll Transcript"})," component."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Parsed transcription: The parsed transcript. If Speaker Labels was enabled in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component, it formats utterances with speakers and timestamps."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-get-subtitles",children:"AssebmlyAI Get Subtitles"}),"\n",(0,t.jsx)(n.p,{children:"This component allows you to generate subtitles in SRT or VTT format."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsxs)(n.li,{children:["Transcription Result: The output of the ",(0,t.jsx)(n.em,{children:"Poll Transcript"})," component."]}),"\n",(0,t.jsx)(n.li,{children:"Subtitle Format: The format of the captions (SRT or VTT)."}),"\n",(0,t.jsx)(n.li,{children:"Character per Caption (Optional): The maximum number of characters per caption (0 for no limit)."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Parsed transcription: The parsed transcript. If Speaker Labels was enabled in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component, it formats utterances with speakers and timestamps."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-lemur",children:"AssebmlyAI LeMUR"}),"\n",(0,t.jsxs)(n.p,{children:["This component allows you to apply Large Language Models to spoken data using the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/lemur",children:"AssemblyAI LeMUR framework"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"LeMUR automatically ingests the transcript as additional context, making it easy to apply LLMs to audio data. You can use it for tasks like summarizing audio, extracting insights, or asking questions."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsxs)(n.li,{children:["Transcription Result: The output of the ",(0,t.jsx)(n.em,{children:"Poll Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Input Prompt: The text to prompt the model. You can type your prompt in this field or connect it to a ",(0,t.jsx)(n.em,{children:"Prompt"})," component."]}),"\n",(0,t.jsx)(n.li,{children:"Final Model: The model that is used for the final prompt after compression is performed. Default is Claude 3.5 Sonnet."}),"\n",(0,t.jsx)(n.li,{children:"Temperature (Optional): The temperature to use for the model. Default is 0.0."}),"\n",(0,t.jsx)(n.li,{children:"Max Output Size (Optional): Max output size in tokens, up to 4000. Default is 2000."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"LeMUR Response: The generated LLM response."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assemblyai-list-transcripts",children:"AssemblyAI List Transcripts"}),"\n",(0,t.jsx)(n.p,{children:"This component can be used as a standalone component to list all previously generated transcripts."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Limit (Optional): Maximum number of transcripts to retrieve. Default is 20, use 0 for all."}),"\n",(0,t.jsx)(n.li,{children:"Filter (Optional): Filter by transcript status."}),"\n",(0,t.jsx)(n.li,{children:"Created On (Optional): Only get transcripts created on this date (YYYY-MM-DD)."}),"\n",(0,t.jsx)(n.li,{children:"Throttled Only (Optional): Only get throttled transcripts, overrides the status filter"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcript List: A list of all transcripts with info such as the transcript ID, the status, and the data."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"flow-process",children:"Flow Process"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The user inputs an audio or video file."}),"\n",(0,t.jsx)(n.li,{children:"The user can also input an LLM prompt. In this example, we want to generate a summary of the transcript."}),"\n",(0,t.jsx)(n.li,{children:"The flow submits the audio file for transcription."}),"\n",(0,t.jsx)(n.li,{children:"The flow checks the status of the transcript every few seconds until transcription is completed."}),"\n",(0,t.jsx)(n.li,{children:"The flow parses the transcript and outputs the formatted text."}),"\n",(0,t.jsx)(n.li,{children:"The flow also generates subtitles."}),"\n",(0,t.jsx)(n.li,{children:"The flow applies the LLM prompt to generate a summary."}),"\n",(0,t.jsx)(n.li,{children:"As a standalone component, all transcripts can be listed."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"run-the-transcription-and-speech-ai-flow",children:"Run the Transcription and Speech AI Flow"}),"\n",(0,t.jsx)(n.p,{children:"To run the Transcription and Speech AI Flow:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Open Langflow and create a new project."}),"\n",(0,t.jsxs)(n.li,{children:["Add the components listed above to your flow canvas, or download the ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(8618).A+"",children:"AssemblyAI Transcription and Speech AI Flow"}),"(Download link) and ",(0,t.jsx)(n.strong,{children:"Import"})," the JSON file into Langflow."]}),"\n",(0,t.jsxs)(n.li,{children:["Connect the components as shown in the flow diagram. ",(0,t.jsx)(n.strong,{children:"Tip"}),": Freeze the path of the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component to only submit the file once."]}),"\n",(0,t.jsx)(n.li,{children:"Input the AssemblyAI API key in in all components that require the key (Start Transcript, Poll Transcript, Get Subtitles, LeMUR, List Transcripts)."}),"\n",(0,t.jsxs)(n.li,{children:["Select an audio or video file in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Run the flow by clicking ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"Parse Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["To generate subtitles, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"Get Subtitles"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["To apply an LLM to your audio file, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component. Note that you need an upgraded AssemblyAI account to use LeMUR."]}),"\n",(0,t.jsxs)(n.li,{children:["To list all transcripts, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"List Transcript"})," component."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"customization",children:"Customization"}),"\n",(0,t.jsx)(n.p,{children:"The flow can be customized by:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Modifying the parameters in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the subtitle format in the ",(0,t.jsx)(n.em,{children:"Get Subtitles"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the LLM prompt for input of the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the LLM parameters (e.g., temperature) in the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,t.jsx)(n.p,{children:"If you encounter issues:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Ensure the API key is correctly set in all components that require the key."}),"\n",(0,t.jsx)(n.li,{children:"To use LeMUR, you need to upgrade your AssemblyAI account, since this is not included in the free account."}),"\n",(0,t.jsx)(n.li,{children:"Verify that all components are properly connected in the flow."}),"\n",(0,t.jsx)(n.li,{children:"Review the Langflow logs for any error messages."}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["For more advanced usage, refer to the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/",children:"AssemblyAI API documentation"}),". If you need more help, you can reach out to the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/contact/support",children:"AssemblyAI support"}),"."]})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8618:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/files/AssemblyAI_Flow-79fdd9e10f4e8e0f1c087fc6124d0eb5.json"},7835:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/assemblyai-components-ab9684425dba3168de28dc1a1f770d1c.png"},8453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>o});var t=s(6540);const i={},l=t.createContext(i);function r(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/a3ab51d1.092bb06b.js b/assets/js/a3ab51d1.092bb06b.js
deleted file mode 100644
index e153b0e9f4..0000000000
--- a/assets/js/a3ab51d1.092bb06b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2657],{4606:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var t=i(4848),o=i(8453);const s={title:"Telemetry",sidebar_position:0,slug:"/contributing-telemetry"},r=void 0,a={id:"Contributing/contributing-telemetry",title:"Telemetry",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/Contributing/contributing-telemetry.md",sourceDirName:"Contributing",slug:"/contributing-telemetry",permalink:"/contributing-telemetry",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:0,frontMatter:{title:"Telemetry",sidebar_position:0,slug:"/contributing-telemetry"},sidebar:"defaultSidebar",previous:{title:"Notion Conversational Agent",permalink:"/integrations/notion/notion-agent-conversational"},next:{title:"How to contribute?",permalink:"/contributing-how-to-contribute"}},l={},c=[{value:"Data Collected Includes",id:"1734ed50fb4a4a45aaa84185b44527ca",level:2},{value:"Run",id:"2d427dca4f0148ae867997f6789e8bfb",level:3},{value:"Shutdown",id:"081e4bd4faec430fb05b657026d1a69c",level:3},{value:"Version",id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",level:3},{value:"Playground",id:"ae6c3859f612441db3c15a7155e9f920",level:3},{value:"Component",id:"630728d6654c40a6b8901459a4bc3a4e",level:3}];function d(e){const n={admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,t.jsx)(n.p,{children:"Our system uses anonymous telemetry to collect essential usage statistics to enhance functionality and user experience. This data helps us identify commonly used features and areas needing improvement, ensuring our development efforts align with what you need."}),"\n",(0,t.jsxs)(n.admonition,{type:"note",children:[(0,t.jsx)(n.p,{children:"We respect your privacy and are committed to protecting your data. We do not collect any personal information or sensitive data. All telemetry data is anonymized and used solely for improving Langflow."}),(0,t.jsxs)(n.p,{children:["You can opt-out of telemetry by setting the\xa0",(0,t.jsx)(n.code,{children:"LANGFLOW_DO_NOT_TRACK"}),"\xa0or\xa0",(0,t.jsx)(n.code,{children:"DO_NOT_TRACK"}),"\xa0environment variable to\xa0",(0,t.jsx)(n.code,{children:"true"}),"\xa0before running Langflow. This will disable telemetry data collection."]})]}),"\n",(0,t.jsx)(n.h2,{id:"1734ed50fb4a4a45aaa84185b44527ca",children:"Data Collected Includes"}),"\n",(0,t.jsx)(n.h3,{id:"2d427dca4f0148ae867997f6789e8bfb",children:"Run"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"IsWebhook"}),": Indicates whether the operation was triggered via a webhook."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for how long the operation lasted, providing insights into performance."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Success"}),": Boolean value indicating whether the operation was successful, helping identify potential errors or issues."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"ErrorMessage"}),": Provides error message details if the operation was unsuccessful, aiding in troubleshooting and enhancements."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"081e4bd4faec430fb05b657026d1a69c",children:"Shutdown"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Time Running"}),": Total runtime before shutdown, useful for understanding application lifecycle and optimizing uptime."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",children:"Version"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Version"}),": The specific version of Langflow used, which helps in tracking feature adoption and compatibility."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Platform"}),": Operating system of the host machine, which aids in focusing our support for popular platforms like Windows, macOS, and Linux."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Python"}),": The version of Python used, assisting in maintaining compatibility and support for various Python versions."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Arch"}),": Architecture of the system (e.g., x86, ARM), which helps optimize our software for different hardware."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"AutoLogin"}),": Indicates whether the auto-login feature is enabled, reflecting user preference settings."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"CacheType"}),": Type of caching mechanism used, which impacts performance and efficiency."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"BackendOnly"}),": Boolean indicating whether you are running Langflow in a backend-only mode, useful for understanding deployment configurations."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ae6c3859f612441db3c15a7155e9f920",children:"Playground"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for playground execution, offering insights into performance during testing or experimental stages."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"ComponentCount"}),": Number of components used in the playground, which helps understand complexity and usage patterns."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Success"}),": Success status of the playground operation, aiding in identifying the stability of experimental features."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"630728d6654c40a6b8901459a4bc3a4e",children:"Component"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Name"}),": Identifies the component, providing data on which components are most utilized or prone to issues."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Seconds"}),": Time taken by the component to execute, offering performance metrics."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Success"}),": Whether the component operated successfully, which helps in quality control."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"ErrorMessage"}),": Details of any errors encountered, crucial for debugging and improvement."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"This telemetry data is crucial for enhancing Langflow and ensuring that our development efforts align with your needs. Your feedback and suggestions are invaluable in shaping the future of Langflow, and we appreciate your support in making Langflow better for everyone."})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var t=i(6540);const o={},s=t.createContext(o);function r(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/a3ab51d1.1448a30b.js b/assets/js/a3ab51d1.1448a30b.js
new file mode 100644
index 0000000000..739cbfc28e
--- /dev/null
+++ b/assets/js/a3ab51d1.1448a30b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2657],{4606:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var t=i(4848),s=i(8453);const o={title:"Telemetry",sidebar_position:0,slug:"/contributing-telemetry"},r=void 0,a={id:"Contributing/contributing-telemetry",title:"Telemetry",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/Contributing/contributing-telemetry.md",sourceDirName:"Contributing",slug:"/contributing-telemetry",permalink:"/contributing-telemetry",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:0,frontMatter:{title:"Telemetry",sidebar_position:0,slug:"/contributing-telemetry"},sidebar:"defaultSidebar",previous:{title:"AssemblyAI",permalink:"/integrations-assemblyai"},next:{title:"How to contribute?",permalink:"/contributing-how-to-contribute"}},l={},c=[{value:"Data Collected Includes",id:"1734ed50fb4a4a45aaa84185b44527ca",level:2},{value:"Run",id:"2d427dca4f0148ae867997f6789e8bfb",level:3},{value:"Shutdown",id:"081e4bd4faec430fb05b657026d1a69c",level:3},{value:"Version",id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",level:3},{value:"Playground",id:"ae6c3859f612441db3c15a7155e9f920",level:3},{value:"Component",id:"630728d6654c40a6b8901459a4bc3a4e",level:3}];function d(e){const n={admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,t.jsx)(n.p,{children:"Our system uses anonymous telemetry to collect essential usage statistics to enhance functionality and user experience. This data helps us identify commonly used features and areas needing improvement, ensuring our development efforts align with what you need."}),"\n",(0,t.jsxs)(n.admonition,{type:"note",children:[(0,t.jsx)(n.p,{children:"We respect your privacy and are committed to protecting your data. We do not collect any personal information or sensitive data. All telemetry data is anonymized and used solely for improving Langflow."}),(0,t.jsxs)(n.p,{children:["You can opt-out of telemetry by setting the\xa0",(0,t.jsx)(n.code,{children:"LANGFLOW_DO_NOT_TRACK"}),"\xa0or\xa0",(0,t.jsx)(n.code,{children:"DO_NOT_TRACK"}),"\xa0environment variable to\xa0",(0,t.jsx)(n.code,{children:"true"}),"\xa0before running Langflow. This will disable telemetry data collection."]})]}),"\n",(0,t.jsx)(n.h2,{id:"1734ed50fb4a4a45aaa84185b44527ca",children:"Data Collected Includes"}),"\n",(0,t.jsx)(n.h3,{id:"2d427dca4f0148ae867997f6789e8bfb",children:"Run"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"IsWebhook"}),": Indicates whether the operation was triggered via a webhook."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for how long the operation lasted, providing insights into performance."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Success"}),": Boolean value indicating whether the operation was successful, helping identify potential errors or issues."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"ErrorMessage"}),": Provides error message details if the operation was unsuccessful, aiding in troubleshooting and enhancements."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"081e4bd4faec430fb05b657026d1a69c",children:"Shutdown"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Time Running"}),": Total runtime before shutdown, useful for understanding application lifecycle and optimizing uptime."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",children:"Version"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Version"}),": The specific version of Langflow used, which helps in tracking feature adoption and compatibility."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Platform"}),": Operating system of the host machine, which aids in focusing our support for popular platforms like Windows, macOS, and Linux."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Python"}),": The version of Python used, assisting in maintaining compatibility and support for various Python versions."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Arch"}),": Architecture of the system (e.g., x86, ARM), which helps optimize our software for different hardware."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"AutoLogin"}),": Indicates whether the auto-login feature is enabled, reflecting user preference settings."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"CacheType"}),": Type of caching mechanism used, which impacts performance and efficiency."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"BackendOnly"}),": Boolean indicating whether you are running Langflow in a backend-only mode, useful for understanding deployment configurations."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ae6c3859f612441db3c15a7155e9f920",children:"Playground"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for playground execution, offering insights into performance during testing or experimental stages."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"ComponentCount"}),": Number of components used in the playground, which helps understand complexity and usage patterns."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Success"}),": Success status of the playground operation, aiding in identifying the stability of experimental features."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"630728d6654c40a6b8901459a4bc3a4e",children:"Component"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Name"}),": Identifies the component, providing data on which components are most utilized or prone to issues."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Seconds"}),": Time taken by the component to execute, offering performance metrics."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Success"}),": Whether the component operated successfully, which helps in quality control."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"ErrorMessage"}),": Details of any errors encountered, crucial for debugging and improvement."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"This telemetry data is crucial for enhancing Langflow and ensuring that our development efforts align with your needs. Your feedback and suggestions are invaluable in shaping the future of Langflow, and we appreciate your support in making Langflow better for everyone."})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var t=i(6540);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/main.2ccefa45.js b/assets/js/main.2ccefa45.js
new file mode 100644
index 0000000000..9ac9dd3932
--- /dev/null
+++ b/assets/js/main.2ccefa45.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.2ccefa45.js.LICENSE.txt */
+(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8792],{4148:(e,t,n)=>{"use strict";var r=n(5606),o=n(6763);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,t){for(var n=0;n
1&&p>2&&(P>4?(a+="\n".concat(w,"...").concat(S),l=!0):P>3&&(a+="\n ".concat(u[p-2]),A++),a+="\n ".concat(u[p-1]),A++),i=p,a+="\n".concat(k,"+").concat(S," ").concat(u[p]),A++;else{var j=d[p],N=u[p],R=N!==j&&(!v(N,",")||N.slice(0,-1)!==j);R&&v(j,",")&&j.slice(0,-1)===N&&(R=!1,N+=","),R?(P>1&&p>2&&(P>4?(a+="\n".concat(w,"...").concat(S),l=!0):P>3&&(a+="\n ".concat(u[p-2]),A++),a+="\n ".concat(u[p-1]),A++),i=p,a+="\n".concat(k,"+").concat(S," ").concat(N),o+="\n".concat(x,"-").concat(S," ").concat(j),A+=2):(a+=o,o="",1!==P&&0!==p||(a+="\n ".concat(N),A++))}if(A>20&&p Your Docusaurus site did not load properly. A very common reason is a wrong site baseUrl configuration. Current configured baseUrl = ${e} ${"/"===e?" (default value)":""} We suggest trying baseUrl = >>0?1:0),g=o.low=g+N,o.high=h+j+(g>>>0 ru&&mu("overflow"),d==t){for(l=n,c=ou;!(l<(u=c<=a?1:c>=a+au?au:c-a));c+=ou)h=l-u,m=ou-u,g.push(fu(hu(u+h%m,0))),l=pu(h/m);g.push(fu(hu(l,0))),a=gu(n,f,r==o),n=0,++r}++n,++t}return g.join("")}(e):e})).join(".");return r+o}(e)}function bu(e){return null===e}function vu(e){return"string"==typeof e}function wu(e){return"object"==typeof e&&null!==e}function ku(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var xu=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function Su(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}}function _u(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r>>0?1:0),O=p.low=O+H,p.high=A+U+(O>>>0
255){z=r[_]>>>18&31,Rl(t,u,T[z+257]),u+=P[z+257],z>7&&(Nl(t,u,r[_]>>>23&31),u+=fl[z]);var $=31&r[_];Rl(t,u,j[$]),u+=N[$],$>3&&(Rl(t,u,r[_]>>>5&8191),u+=ml[$])}else Rl(t,u,T[r[_]]),u+=P[r[_]];return Rl(t,u,T[256]),u+P[256]},zl=new pl([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),$l=new ul(0),ql=function(){for(var e=new pl(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(1&n&&3988292384)^n>>>1;e[t]=n}return e}(),Ul=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function Hl(e,t){void 0===t&&(t={});var n=function(){var e=4294967295;return{p:function(t){for(var n=e,r=0;rU&&(U=V,j=H)}}}D+=(P=j)-(j=g[P])+32768&32767}if(I){k[C++]=268435456|vl[L]<<18|wl[I];var G=31&vl[L],W=31&wl[I];E+=fl[G]+ml[W],++x[257+G],++S[W],A=u+L,++_}else k[C++]=e[u],++x[e[u]]}}c=Bl(e,l,a,k,x,S,E,C,O,u-O,c),a||(c=Ml(l,c,$l))}return jl(s,0,r+Pl(c)+o)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,r,!o)}(e,t,function(e){return 10+(e.filename&&e.filename.length+1||0)}(t),8),a=o.length;return function(e,t){var n=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:9==t.level?2:0,e[9]=3,0!=t.mtime&&Ul(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),n){e[3]=8;for(var r=0;r<=n.length;++r)e[r+10]=n.charCodeAt(r)}}(o,t),Ul(o,a-8,n.d()),Ul(o,a-4,r),o}function Vl(e,t){var n=e.length;if(!t&&"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);for(var r=new ul(e.length+(e.length>>>1)),o=0,a=function(e){r[o++]=e},i=0;i
pu((ru-n)/(f=r+1))&&mu("overflow"),n+=(s-t)*f,t=s,i=0;i=0?(c=f.substr(0,m),u=f.substr(m+1)):(c=f,u=""),d=decodeURIComponent(c),p=decodeURIComponent(u),ku(o,d)?xu(o[d])?o[d].push(p):o[d]=[o[d],p]:o[d]=p}return o}function Au(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}Nc.URL,Nc.URLSearchParams;var Ou=/^([a-z0-9.+-]+:)/i,Tu=/:[0-9]*$/,Pu=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,ju=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Nu=["'"].concat(ju),Ru=["%","/","?",";","#"].concat(Nu),Lu=["/","?","#"],Iu=/^[+a-z0-9A-Z_-]{0,63}$/,Fu=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Du={javascript:!0,"javascript:":!0},Mu={javascript:!0,"javascript:":!0},Bu={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function zu(e){var t=e.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var n=e.protocol||"",r=e.pathname||"",o=e.hash||"",a=!1,i="";e.host?a=t+e.host:e.hostname&&(a=t+(-1===e.hostname.indexOf(":")?e.hostname:"["+this.hostname+"]"),e.port&&(a+=":"+e.port)),e.query&&wu(e.query)&&Object.keys(e.query).length&&(i=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?_u(Eu(e),(function(r){var o=encodeURIComponent(Su(r))+n;return xu(e[r])?_u(e[r],(function(e){return o+encodeURIComponent(Su(e))})).join(t):o+encodeURIComponent(Su(e[r]))})).join(t):""}(e.query));var s=e.search||i&&"?"+i||"";return n&&":"!==n.substr(-1)&&(n+=":"),e.slashes||(!n||Bu[n])&&!1!==a?(a="//"+(a||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):a||(a=""),o&&"#"!==o.charAt(0)&&(o="#"+o),s&&"?"!==s.charAt(0)&&(s="?"+s),n+a+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+o}function $u(e){var t=e.host,n=Tu.exec(t);n&&(":"!==(n=n[0])&&(e.port=n.substr(1)),t=t.substr(0,t.length-n.length)),t&&(e.hostname=t)}function qu(e){return null!==e&&"object"==typeof e&&e.href&&e.origin}Au.prototype.parse=function(e,t,n){return function(e,t,n,r){if(!vu(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),a=-1!==o&&o