diff --git a/examples/Vector Store.json b/examples/Vector Store.json index d9e21eb..522630d 100644 --- a/examples/Vector Store.json +++ b/examples/Vector Store.json @@ -1 +1 @@ -{"description":"","name":"Vectorstore-agent","id":"12","data":{"nodes":[{"width":384,"height":351,"id":"dndnode_8","type":"genericNode","position":{"x":2115.5183674856203,"y":-1277.6284872455249},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_8","value":null},"selected":false,"positionAbsolute":{"x":2115.5183674856203,"y":-1277.6284872455249},"dragging":false},{"width":384,"height":673,"id":"dndnode_9","type":"genericNode","position":{"x":1542.2354862784034,"y":-821.3862458563868},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","type":"bool","list":false},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","type":"code","list":false},"openai_api_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","type":"Union[float, Tuple[float, float], NoneType]","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","type":"bool","list":false},"_type":"OpenAI"},"description":"Generic OpenAI class that uses model name.","base_classes":["BaseOpenAI","BaseLLM","OpenAI","BaseLanguageModel"]},"id":"dndnode_9","value":null},"selected":false,"positionAbsolute":{"x":1542.2354862784034,"y":-821.3862458563868},"dragging":false},{"width":384,"height":483,"id":"dndnode_10","type":"genericNode","position":{"x":1553.2875394928135,"y":-1319.2113273706286},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","type":"str","list":false,"value":"ruff"},"description":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"description","type":"str","list":false,"value":"Information about the Ruff python linting library"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_10","value":null},"selected":false,"positionAbsolute":{"x":1553.2875394928135,"y":-1319.2113273706286},"dragging":false},{"width":384,"height":391,"id":"dndnode_11","type":"genericNode","position":{"x":1108.0629902306098,"y":-1230.2020414057615},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.To use, you should have the ``chromadb`` python package installed.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_11","value":null},"selected":false,"positionAbsolute":{"x":1108.0629902306098,"y":-1230.2020414057615},"dragging":false},{"width":384,"height":377,"id":"dndnode_12","type":"genericNode","position":{"x":227.56835609516543,"y":-1139.8720072426718},"data":{"type":"WebBaseLoader","node":{"template":{"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://beta.ruff.rs/docs/faq/","password":false,"name":"web_path","type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["WebBaseLoader","BaseLoader"]},"id":"dndnode_12","value":null},"selected":true,"positionAbsolute":{"x":227.56835609516543,"y":-1139.8720072426718},"dragging":false},{"width":384,"height":437,"id":"dndnode_14","type":"genericNode","position":{"x":665.174731109802,"y":-712.1143045757458},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","type":"str","list":false},"document_model_name":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"document_model_name","type":"str","list":false},"query_model_name":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"query_model_name","type":"str","list":false},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":-1,"password":false,"name":"embedding_ctx_length","type":"int","list":false},"openai_api_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","type":"str","list":false},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.To use, you should have the ``openai`` python package installed, and theenvironment variable ``OPENAI_API_KEY`` set with your API key or pass itas a named parameter to the constructor.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_14","value":null},"selected":false,"positionAbsolute":{"x":665.174731109802,"y":-712.1143045757458},"dragging":false},{"width":384,"height":573,"id":"dndnode_45","type":"genericNode","position":{"x":667.8607633491318,"y":-1349.1450708916595},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":4000,"password":false,"name":"chunk_size","type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","TextSplitter"]},"id":"dndnode_45","value":null},"selected":false,"positionAbsolute":{"x":667.8607633491318,"y":-1349.1450708916595},"dragging":false}],"edges":[{"source":"dndnode_9","sourceHandle":"OpenAI|dndnode_9|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel","target":"dndnode_8","targetHandle":"BaseLanguageModel|llm|dndnode_8","className":"animate-pulse","id":"reactflow__edge-dndnode_9OpenAI|dndnode_9|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel-dndnode_8BaseLanguageModel|llm|dndnode_8"},{"source":"dndnode_10","sourceHandle":"VectorStoreInfo|dndnode_10|VectorStoreInfo","target":"dndnode_8","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_8","className":"animate-pulse","id":"reactflow__edge-dndnode_10VectorStoreInfo|dndnode_10|VectorStoreInfo-dndnode_8VectorStoreInfo|vectorstoreinfo|dndnode_8"},{"source":"dndnode_11","sourceHandle":"Chroma|dndnode_11|Chroma|VectorStore","target":"dndnode_10","targetHandle":"VectorStore|vectorstore|dndnode_10","className":"animate-pulse","id":"reactflow__edge-dndnode_11Chroma|dndnode_11|Chroma|VectorStore-dndnode_10VectorStore|vectorstore|dndnode_10"},{"source":"dndnode_14","sourceHandle":"OpenAIEmbeddings|dndnode_14|OpenAIEmbeddings|Embeddings","target":"dndnode_11","targetHandle":"Embeddings|embedding|dndnode_11","className":"animate-pulse","id":"reactflow__edge-dndnode_14OpenAIEmbeddings|dndnode_14|OpenAIEmbeddings|Embeddings-dndnode_11Embeddings|embedding|dndnode_11"},{"source":"dndnode_12","sourceHandle":"WebBaseLoader|dndnode_12|WebBaseLoader|BaseLoader","target":"dndnode_45","targetHandle":"BaseLoader|documents|dndnode_45","className":"animate-pulse","id":"reactflow__edge-dndnode_12WebBaseLoader|dndnode_12|WebBaseLoader|BaseLoader-dndnode_45BaseLoader|documents|dndnode_45"},{"source":"dndnode_45","sourceHandle":"CharacterTextSplitter|dndnode_45|CharacterTextSplitter|TextSplitter","target":"dndnode_11","targetHandle":"TextSplitter|documents|dndnode_11","className":"animate-pulse","id":"reactflow__edge-dndnode_45CharacterTextSplitter|dndnode_45|CharacterTextSplitter|TextSplitter-dndnode_11TextSplitter|documents|dndnode_11"}],"viewport":{"x":-136.98708352246763,"y":965.1217203508672,"zoom":0.697371833175203}},"chat":[{"message":"What tool does ruff use to run over Jupyter Notebooks?","isSend":true},{"message":"Ruff is integrated into nbQA, a tool for running linters and code formatters over Jupyter Notebooks.","isSend":false,"thought":"\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n\u001b[32;1m\u001b[1;3m I need to find out what tool ruff uses to run over Jupyter Notebooks.\nAction: ruff\nAction Input: What tool does ruff use to run over Jupyter Notebooks?\u001b[0m\nObservation: \u001b[36;1m\u001b[1;3m Ruff is integrated into nbQA, a tool for running linters and code formatters over Jupyter Notebooks.\u001b[0m\nThought:\u001b[32;1m\u001b[1;3m I now know the final answer.\nFinal Answer: Ruff is integrated into nbQA, a tool for running linters and code formatters over Jupyter Notebooks.\u001b[0m\n\n\u001b[1m> Finished chain.\u001b[0m"}]} \ No newline at end of file +{"description":"","name":"Vectorstore-agent","id":"12","data":{"nodes":[{"width":384,"height":351,"id":"dndnode_8","type":"genericNode","position":{"x":2115.5183674856203,"y":-1277.6284872455249},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_8","value":null},"selected":false,"positionAbsolute":{"x":2115.5183674856203,"y":-1277.6284872455249},"dragging":false},{"width":384,"height":673,"id":"dndnode_9","type":"genericNode","position":{"x":1542.2354862784034,"y":-821.3862458563868},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","type":"bool","list":false},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","type":"code","list":false},"openai_api_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","type":"Union[float, Tuple[float, float], NoneType]","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","type":"bool","list":false},"_type":"OpenAI"},"description":"Generic OpenAI class that uses model name.","base_classes":["BaseOpenAI","BaseLLM","OpenAI","BaseLanguageModel"]},"id":"dndnode_9","value":null},"selected":false,"positionAbsolute":{"x":1542.2354862784034,"y":-821.3862458563868},"dragging":false},{"width":384,"height":483,"id":"dndnode_10","type":"genericNode","position":{"x":1553.2875394928135,"y":-1319.2113273706286},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","type":"str","list":false,"value":"ruff"},"description":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"description","type":"str","list":false,"value":"Information about the Ruff python linting library"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_10","value":null},"selected":false,"positionAbsolute":{"x":1553.2875394928135,"y":-1319.2113273706286},"dragging":false},{"width":384,"height":391,"id":"dndnode_11","type":"genericNode","position":{"x":1108.0629902306098,"y":-1230.2020414057615},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.To use, you should have the ``chromadb`` python package installed.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_11","value":null},"selected":false,"positionAbsolute":{"x":1108.0629902306098,"y":-1230.2020414057615},"dragging":false},{"width":384,"height":377,"id":"dndnode_12","type":"genericNode","position":{"x":227.56835609516543,"y":-1139.8720072426718},"data":{"type":"WebBaseLoader","node":{"template":{"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://beta.ruff.rs/docs/faq/","password":false,"name":"web_path","type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["WebBaseLoader","BaseLoader"]},"id":"dndnode_12","value":null},"selected":true,"positionAbsolute":{"x":227.56835609516543,"y":-1139.8720072426718},"dragging":false},{"width":384,"height":437,"id":"dndnode_14","type":"genericNode","position":{"x":665.174731109802,"y":-712.1143045757458},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","type":"str","list":false},"document_model_name":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"document_model_name","type":"str","list":false},"query_model_name":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"query_model_name","type":"str","list":false},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":-1,"password":false,"name":"embedding_ctx_length","type":"int","list":false},"openai_api_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","type":"str","list":false},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.To use, you should have the ``openai`` python package installed, and theenvironment variable ``OPENAI_API_KEY`` set with your API key or pass itas a named parameter to the constructor.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_14","value":null},"selected":false,"positionAbsolute":{"x":665.174731109802,"y":-712.1143045757458},"dragging":false},{"width":384,"height":573,"id":"dndnode_45","type":"genericNode","position":{"x":667.8607633491318,"y":-1349.1450708916595},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":1000,"password":false,"name":"chunk_size","type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","TextSplitter"]},"id":"dndnode_45","value":null},"selected":false,"positionAbsolute":{"x":667.8607633491318,"y":-1349.1450708916595},"dragging":false}],"edges":[{"source":"dndnode_9","sourceHandle":"OpenAI|dndnode_9|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel","target":"dndnode_8","targetHandle":"BaseLanguageModel|llm|dndnode_8","className":"animate-pulse","id":"reactflow__edge-dndnode_9OpenAI|dndnode_9|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel-dndnode_8BaseLanguageModel|llm|dndnode_8"},{"source":"dndnode_10","sourceHandle":"VectorStoreInfo|dndnode_10|VectorStoreInfo","target":"dndnode_8","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_8","className":"animate-pulse","id":"reactflow__edge-dndnode_10VectorStoreInfo|dndnode_10|VectorStoreInfo-dndnode_8VectorStoreInfo|vectorstoreinfo|dndnode_8"},{"source":"dndnode_11","sourceHandle":"Chroma|dndnode_11|Chroma|VectorStore","target":"dndnode_10","targetHandle":"VectorStore|vectorstore|dndnode_10","className":"animate-pulse","id":"reactflow__edge-dndnode_11Chroma|dndnode_11|Chroma|VectorStore-dndnode_10VectorStore|vectorstore|dndnode_10"},{"source":"dndnode_14","sourceHandle":"OpenAIEmbeddings|dndnode_14|OpenAIEmbeddings|Embeddings","target":"dndnode_11","targetHandle":"Embeddings|embedding|dndnode_11","className":"animate-pulse","id":"reactflow__edge-dndnode_14OpenAIEmbeddings|dndnode_14|OpenAIEmbeddings|Embeddings-dndnode_11Embeddings|embedding|dndnode_11"},{"source":"dndnode_12","sourceHandle":"WebBaseLoader|dndnode_12|WebBaseLoader|BaseLoader","target":"dndnode_45","targetHandle":"BaseLoader|documents|dndnode_45","className":"animate-pulse","id":"reactflow__edge-dndnode_12WebBaseLoader|dndnode_12|WebBaseLoader|BaseLoader-dndnode_45BaseLoader|documents|dndnode_45"},{"source":"dndnode_45","sourceHandle":"CharacterTextSplitter|dndnode_45|CharacterTextSplitter|TextSplitter","target":"dndnode_11","targetHandle":"TextSplitter|documents|dndnode_11","className":"animate-pulse","id":"reactflow__edge-dndnode_45CharacterTextSplitter|dndnode_45|CharacterTextSplitter|TextSplitter-dndnode_11TextSplitter|documents|dndnode_11"}],"viewport":{"x":-136.98708352246763,"y":965.1217203508672,"zoom":0.697371833175203}},"chat":[{"message":"What tool does ruff use to run over Jupyter Notebooks?","isSend":true},{"message":"Ruff is integrated into nbQA, a tool for running linters and code formatters over Jupyter Notebooks.","isSend":false,"thought":"\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n\u001b[32;1m\u001b[1;3m I need to find out what tool ruff uses to run over Jupyter Notebooks.\nAction: ruff\nAction Input: What tool does ruff use to run over Jupyter Notebooks?\u001b[0m\nObservation: \u001b[36;1m\u001b[1;3m Ruff is integrated into nbQA, a tool for running linters and code formatters over Jupyter Notebooks.\u001b[0m\nThought:\u001b[32;1m\u001b[1;3m I now know the final answer.\nFinal Answer: Ruff is integrated into nbQA, a tool for running linters and code formatters over Jupyter Notebooks.\u001b[0m\n\n\u001b[1m> Finished chain.\u001b[0m"}]}