text: Skip to main contentğŸ¦œï¸�ğŸ”— LangChainDocsUse casesIntegrationsAPILangSmithJS/TS DocsCTRLKIntegrationsCallbacksChat modelsDocument loadersDocument transformersLLMsMemoryRetrieversText embedding modelsAgent toolkitsAmadeus ToolkitAzure Cognitive Services ToolkitCSV AgentDocument ComparisonGitHubGmail ToolkitJiraJSON AgentMultion ToolkitOffice365 ToolkitOpenAPI agentsNatural Language APIsPandas Dataframe AgentPlayWright Browser ToolkitPowerBI Dataset AgentPython AgentSpark Dataframe AgentSpark SQL AgentSQL Database AgentVectorstore AgentXorbits AgentToolsVector storesGrouped by providerIntegrationsAgent toolkitsVectorstore AgentOn this pageVectorstore AgentThis notebook showcases an agent designed to retrieve information from one or more vectorstores, either with or without sources.Create the Vectorstoresâ€‹from langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.text_splitter import CharacterTextSplitterfrom langchain import OpenAI, VectorDBQAllm = OpenAI(temperature=0)from langchain.document_loaders import TextLoaderloader = TextLoader("../../../state_of_the_union.txt")documents = loader.load()text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_documents(documents)embeddings = OpenAIEmbeddings()state_of_union_store = Chroma.from_documents(    texts, embeddings, collection_name="state-of-union")    Running Chroma using direct local API.    Using DuckDB in-memory for database. Data will be transient.from langchain.document_loaders import WebBaseLoaderloader = WebBaseLoader("https://beta.ruff.rs/docs/faq/")docs = loader.load()ruff_texts = text_splitter.split_documents(docs)ruff_store = Chroma.from_documents(ruff_texts, embeddings, collection_name="ruff")