diff --git a/docs/docs/modules/data_connection/retrievers/self_query/activeloop_deeplake_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/activeloop_deeplake_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/activeloop_deeplake_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/activeloop_deeplake_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/chroma_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/chroma_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/chroma_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/chroma_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/dashvector.ipynb b/docs/docs/integrations/retrievers/self_query/dashvector.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/dashvector.ipynb rename to docs/docs/integrations/retrievers/self_query/dashvector.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/elasticsearch_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/elasticsearch_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/elasticsearch_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/elasticsearch_self_query.ipynb diff --git a/docs/docs/integrations/retrievers/self_query/index.mdx b/docs/docs/integrations/retrievers/self_query/index.mdx new file mode 100644 index 00000000000..71899a63970 --- /dev/null +++ b/docs/docs/integrations/retrievers/self_query/index.mdx @@ -0,0 +1,11 @@ +--- +sidebar-position: 0 +--- + +# Self-querying retriever + +Learn about how the self-querying retriever works [here](/docs/modules/data_connection/retrievers/self_query). + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/docs/modules/data_connection/retrievers/self_query/milvus_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/milvus_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/milvus_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/milvus_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/myscale_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/myscale_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/myscale_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/myscale_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/opensearch_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/opensearch_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/opensearch_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/opensearch_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/pinecone.ipynb b/docs/docs/integrations/retrievers/self_query/pinecone.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/pinecone.ipynb rename to docs/docs/integrations/retrievers/self_query/pinecone.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/qdrant_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/qdrant_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/qdrant_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/qdrant_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/redis_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/redis_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/redis_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/redis_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/supabase_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/supabase_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/supabase_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/supabase_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/timescalevector_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/timescalevector_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/timescalevector_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/timescalevector_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/vectara_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/vectara_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/vectara_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/vectara_self_query.ipynb diff --git a/docs/docs/modules/data_connection/retrievers/self_query/weaviate_self_query.ipynb b/docs/docs/integrations/retrievers/self_query/weaviate_self_query.ipynb similarity index 100% rename from docs/docs/modules/data_connection/retrievers/self_query/weaviate_self_query.ipynb rename to docs/docs/integrations/retrievers/self_query/weaviate_self_query.ipynb diff --git a/docs/snippets/modules/data_connection/retrievers/self_query/get_started.mdx b/docs/docs/modules/data_connection/retrievers/self_query.mdx similarity index 85% rename from docs/snippets/modules/data_connection/retrievers/self_query/get_started.mdx rename to docs/docs/modules/data_connection/retrievers/self_query.mdx index 56bb7526088..ac8c1a552f3 100644 --- a/docs/snippets/modules/data_connection/retrievers/self_query/get_started.mdx +++ b/docs/docs/modules/data_connection/retrievers/self_query.mdx @@ -1,5 +1,15 @@ +# Self-querying + +:::info +Head to [Integrations](/docs/integrations/retrievers/self_query) for documentation on vector stores with built-in support for self-querying. +::: + +A self-querying retriever is one that, as the name suggests, has the ability to query itself. Specifically, given any natural language query, the retriever uses a query-constructing LLM chain to write a structured query and then applies that structured query to its underlying VectorStore. This allows the retriever to not only use the user-input query for semantic similarity comparison with the contents of stored documents but to also extract filters from the user query on the metadata of stored documents and to execute those filters. + +![](https://drive.google.com/uc?id=1OQUN-0MJcDUxmPXofgS7MqReEs720pqS) + ## Get started -We'll use a Pinecone vector store in this example. +For demonstration purposes we'll use a `Pinecone` vector store. First we'll want to create a `Pinecone` vector store and seed it with some data. We've created a small demo set of documents that contain summaries of movies. @@ -60,18 +70,18 @@ from langchain.chains.query_constructor.base import AttributeInfo metadata_field_info=[ AttributeInfo( name="genre", - description="The genre of the movie", - type="string or list[string]", + description="The genre of the movie", + type="string or list[string]", ), AttributeInfo( name="year", - description="The year the movie was released", - type="integer", + description="The year the movie was released", + type="integer", ), AttributeInfo( name="director", - description="The name of the movie director", - type="string", + description="The name of the movie director", + type="string", ), AttributeInfo( name="rating", @@ -185,10 +195,10 @@ We can do this by passing `enable_limit=True` to the constructor. ```python retriever = SelfQueryRetriever.from_llm( - llm, - vectorstore, - document_content_description, - metadata_field_info, + llm, + vectorstore, + document_content_description, + metadata_field_info, enable_limit=True, verbose=True ) @@ -199,3 +209,4 @@ retriever = SelfQueryRetriever.from_llm( # This example only specifies a relevant query retriever.get_relevant_documents("What are two movies about dinosaurs") ``` + diff --git a/docs/docs/modules/data_connection/retrievers/self_query/index.mdx b/docs/docs/modules/data_connection/retrievers/self_query/index.mdx deleted file mode 100644 index ee9c2b4ecac..00000000000 --- a/docs/docs/modules/data_connection/retrievers/self_query/index.mdx +++ /dev/null @@ -1,9 +0,0 @@ -# Self-querying - -A self-querying retriever is one that, as the name suggests, has the ability to query itself. Specifically, given any natural language query, the retriever uses a query-constructing LLM chain to write a structured query and then applies that structured query to its underlying VectorStore. This allows the retriever to not only use the user-input query for semantic similarity comparison with the contents of stored documents but to also extract filters from the user query on the metadata of stored documents and to execute those filters. - -![](https://drive.google.com/uc?id=1OQUN-0MJcDUxmPXofgS7MqReEs720pqS) - -import Example from "@snippets/modules/data_connection/retrievers/self_query/get_started.mdx" - - diff --git a/docs/vercel.json b/docs/vercel.json index 2f642f8aa80..ef89026f555 100644 --- a/docs/vercel.json +++ b/docs/vercel.json @@ -1,8 +1,12 @@ { "redirects": [ { - "source": "/docs/use_cases/more/agents/autonomous_agents/:path*", - "destination": "/cookbook" + "source": "/docs/modules/data_connection/retrievers/self_query/:path*", + "destination": "/docs/integrations/retrievers/self_query/:path*" + }, + { + "source": "/docs/use_cases/more/agents/autonomous_agents/:path*", + "destination": "/cookbook" }, { "source": "/docs/use_cases/more/agents/agent_simulations/:path*",