From 5b5d568053a82726b53c53d5e1f03f7240dd9044 Mon Sep 17 00:00:00 2001
From: James Briggs <james.briggs@hotmail.com>
Date: Thu, 1 Aug 2024 17:35:52 +0400
Subject: [PATCH] feat: generated docs

---
 .../semantic_router.encoders.AutoEncoder.rst  | 33 +++++++++
 ...antic_router.encoders.base.BaseEncoder.rst | 47 ++++++++++++
 .../semantic_router.encoders.base.rst         | 31 ++++++++
 ...router.encoders.bedrock.BedrockEncoder.rst | 55 ++++++++++++++
 .../semantic_router.encoders.bedrock.rst      | 31 ++++++++
 ...antic_router.encoders.bm25.BM25Encoder.rst | 50 +++++++++++++
 .../semantic_router.encoders.bm25.rst         | 31 ++++++++
 ...antic_router.encoders.clip.CLIPEncoder.rst | 51 +++++++++++++
 .../semantic_router.encoders.clip.rst         | 31 ++++++++
 ...c_router.encoders.cohere.CohereEncoder.rst | 49 ++++++++++++
 .../semantic_router.encoders.cohere.rst       | 31 ++++++++
 ...er.encoders.fastembed.FastEmbedEncoder.rst | 50 +++++++++++++
 .../semantic_router.encoders.fastembed.rst    | 31 ++++++++
 ...c_router.encoders.google.GoogleEncoder.rst | 48 ++++++++++++
 .../semantic_router.encoders.google.rst       | 31 ++++++++
 ...encoders.huggingface.HFEndpointEncoder.rst | 50 +++++++++++++
 ...ncoders.huggingface.HuggingFaceEncoder.rst | 50 +++++++++++++
 .../semantic_router.encoders.huggingface.rst  | 32 ++++++++
 ...router.encoders.mistral.MistralEncoder.rst | 47 ++++++++++++
 .../semantic_router.encoders.mistral.rst      | 31 ++++++++
 ...c_router.encoders.openai.OpenAIEncoder.rst | 51 +++++++++++++
 .../semantic_router.encoders.openai.rst       | 31 ++++++++
 .../_autosummary/semantic_router.encoders.rst | 52 +++++++++++++
 ...tic_router.encoders.tfidf.TfidfEncoder.rst | 50 +++++++++++++
 .../semantic_router.encoders.tfidf.rst        | 31 ++++++++
 ...emantic_router.encoders.vit.VitEncoder.rst | 50 +++++++++++++
 .../semantic_router.encoders.vit.rst          | 31 ++++++++
 ...outer.encoders.zure.AzureOpenAIEncoder.rst | 55 ++++++++++++++
 .../semantic_router.encoders.zure.rst         | 31 ++++++++
 ...c_router.hybrid_layer.HybridRouteLayer.rst | 37 ++++++++++
 .../semantic_router.hybrid_layer.rst          | 31 ++++++++
 .../semantic_router.index.base.BaseIndex.rst  | 55 ++++++++++++++
 .../semantic_router.index.base.rst            | 31 ++++++++
 ...semantic_router.index.local.LocalIndex.rst | 56 ++++++++++++++
 .../semantic_router.index.local.rst           | 31 ++++++++
 ...ic_router.index.pinecone.PineconeIndex.rst | 69 +++++++++++++++++
 ...c_router.index.pinecone.PineconeRecord.rst | 47 ++++++++++++
 ...router.index.pinecone.clean_route_name.rst |  6 ++
 .../semantic_router.index.pinecone.rst        | 39 ++++++++++
 ...mantic_router.index.qdrant.QdrantIndex.rst | 74 +++++++++++++++++++
 .../semantic_router.index.qdrant.rst          | 31 ++++++++
 .../_autosummary/semantic_router.index.rst    | 35 +++++++++
 .../semantic_router.layer.LayerConfig.rst     | 37 ++++++++++
 .../semantic_router.layer.RouteLayer.rst      | 52 +++++++++++++
 .../semantic_router.layer.is_valid.rst        |  6 ++
 .../_autosummary/semantic_router.layer.rst    | 40 ++++++++++
 ...c_router.layer.threshold_random_search.rst |  6 ++
 .../_autosummary/semantic_router.linear.rst   | 31 ++++++++
 ...mantic_router.linear.similarity_matrix.rst |  6 ++
 .../semantic_router.linear.top_scores.rst     |  6 ++
 .../semantic_router.llms.base.BaseLLM.rst     | 44 +++++++++++
 .../semantic_router.llms.base.rst             | 31 ++++++++
 .../semantic_router.llms.cohere.CohereLLM.rst | 45 +++++++++++
 .../semantic_router.llms.cohere.rst           | 31 ++++++++
 ...antic_router.llms.llamacpp.LlamaCppLLM.rst | 48 ++++++++++++
 .../semantic_router.llms.llamacpp.rst         | 31 ++++++++
 ...antic_router.llms.mistral.MistralAILLM.rst | 46 ++++++++++++
 .../semantic_router.llms.mistral.rst          | 31 ++++++++
 .../semantic_router.llms.ollama.OllamaLLM.rst | 48 ++++++++++++
 .../semantic_router.llms.ollama.rst           | 31 ++++++++
 .../semantic_router.llms.openai.OpenAILLM.rst | 51 +++++++++++++
 ..._router.llms.openai.get_schemas_openai.rst |  6 ++
 .../semantic_router.llms.openai.rst           | 38 ++++++++++
 ...c_router.llms.openrouter.OpenRouterLLM.rst | 48 ++++++++++++
 .../semantic_router.llms.openrouter.rst       | 31 ++++++++
 .../_autosummary/semantic_router.llms.rst     | 39 ++++++++++
 ...mantic_router.llms.zure.AzureOpenAILLM.rst | 47 ++++++++++++
 .../semantic_router.llms.zure.rst             | 31 ++++++++
 .../semantic_router.route.Route.rst           | 52 +++++++++++++
 .../semantic_router.route.is_valid.rst        |  6 ++
 .../_autosummary/semantic_router.route.rst    | 38 ++++++++++
 docs/source/_autosummary/semantic_router.rst  | 42 +++++++++++
 .../semantic_router.schema.DocumentSplit.rst  | 48 ++++++++++++
 .../semantic_router.schema.EncoderInfo.rst    | 45 +++++++++++
 .../semantic_router.schema.EncoderType.rst    | 36 +++++++++
 .../semantic_router.schema.Message.rst        | 48 ++++++++++++
 .../semantic_router.schema.Metric.rst         | 28 +++++++
 .../semantic_router.schema.RouteChoice.rst    | 45 +++++++++++
 .../_autosummary/semantic_router.schema.rst   | 36 +++++++++
 ...tic_router.splitters.base.BaseSplitter.rst | 45 +++++++++++
 .../semantic_router.splitters.base.rst        | 31 ++++++++
 ...consecutive_sim.ConsecutiveSimSplitter.rst | 45 +++++++++++
 ...antic_router.splitters.consecutive_sim.rst | 31 ++++++++
 ...s.cumulative_sim.CumulativeSimSplitter.rst | 45 +++++++++++
 ...mantic_router.splitters.cumulative_sim.rst | 31 ++++++++
 ...s.rolling_window.RollingWindowSplitter.rst | 47 ++++++++++++
 ...litters.rolling_window.SplitStatistics.rst | 38 ++++++++++
 ...mantic_router.splitters.rolling_window.rst | 32 ++++++++
 .../semantic_router.splitters.rst             | 36 +++++++++
 .../semantic_router.splitters.utils.rst       | 31 ++++++++
 ...ter.splitters.utils.split_to_sentences.rst |  6 ++
 ...router.splitters.utils.tiktoken_length.rst |  6 ++
 .../semantic_router.text.Conversation.rst     | 52 +++++++++++++
 .../_autosummary/semantic_router.text.rst     | 31 ++++++++
 ...c_router.utils.defaults.EncoderDefault.rst | 31 ++++++++
 .../semantic_router.utils.defaults.rst        | 31 ++++++++
 ..._call.convert_python_type_to_json_type.rst |  6 ++
 ..._router.utils.function_call.get_schema.rst |  6 ++
 ...er.utils.function_call.get_schema_list.rst |  6 ++
 ....utils.function_call.route_and_execute.rst |  6 ++
 .../semantic_router.utils.function_call.rst   | 33 +++++++++
 .../semantic_router.utils.llm.llm.rst         |  6 ++
 .../semantic_router.utils.llm.rst             | 30 ++++++++
 ...ic_router.utils.logger.CustomFormatter.rst | 39 ++++++++++
 ...uter.utils.logger.add_coloured_handler.rst |  6 ++
 .../semantic_router.utils.logger.rst          | 39 ++++++++++
 ...outer.utils.logger.setup_custom_logger.rst |  6 ++
 .../_autosummary/semantic_router.utils.rst    | 35 +++++++++
 .../_templates/custom-class-template.rst      | 32 ++++++++
 .../_templates/custom-module-template.rst     | 66 +++++++++++++++++
 docs/source/api.rst                           |  4 +-
 docs/source/conf.py                           |  4 +-
 docs/source/generated/semantic_router.rst     |  2 +-
 113 files changed, 3911 insertions(+), 3 deletions(-)
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.AutoEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.base.BaseEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.base.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.bedrock.BedrockEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.bedrock.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.bm25.BM25Encoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.bm25.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.clip.CLIPEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.clip.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.cohere.CohereEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.cohere.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.fastembed.FastEmbedEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.fastembed.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.google.GoogleEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.google.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.huggingface.HFEndpointEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.huggingface.HuggingFaceEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.huggingface.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.mistral.MistralEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.mistral.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.openai.OpenAIEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.openai.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.tfidf.TfidfEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.tfidf.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.vit.VitEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.vit.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.zure.AzureOpenAIEncoder.rst
 create mode 100644 docs/source/_autosummary/semantic_router.encoders.zure.rst
 create mode 100644 docs/source/_autosummary/semantic_router.hybrid_layer.HybridRouteLayer.rst
 create mode 100644 docs/source/_autosummary/semantic_router.hybrid_layer.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.base.BaseIndex.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.base.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.local.LocalIndex.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.local.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.pinecone.PineconeIndex.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.pinecone.PineconeRecord.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.pinecone.clean_route_name.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.pinecone.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.qdrant.QdrantIndex.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.qdrant.rst
 create mode 100644 docs/source/_autosummary/semantic_router.index.rst
 create mode 100644 docs/source/_autosummary/semantic_router.layer.LayerConfig.rst
 create mode 100644 docs/source/_autosummary/semantic_router.layer.RouteLayer.rst
 create mode 100644 docs/source/_autosummary/semantic_router.layer.is_valid.rst
 create mode 100644 docs/source/_autosummary/semantic_router.layer.rst
 create mode 100644 docs/source/_autosummary/semantic_router.layer.threshold_random_search.rst
 create mode 100644 docs/source/_autosummary/semantic_router.linear.rst
 create mode 100644 docs/source/_autosummary/semantic_router.linear.similarity_matrix.rst
 create mode 100644 docs/source/_autosummary/semantic_router.linear.top_scores.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.base.BaseLLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.base.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.cohere.CohereLLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.cohere.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.llamacpp.LlamaCppLLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.llamacpp.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.mistral.MistralAILLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.mistral.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.ollama.OllamaLLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.ollama.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.openai.OpenAILLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.openai.get_schemas_openai.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.openai.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.openrouter.OpenRouterLLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.openrouter.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.zure.AzureOpenAILLM.rst
 create mode 100644 docs/source/_autosummary/semantic_router.llms.zure.rst
 create mode 100644 docs/source/_autosummary/semantic_router.route.Route.rst
 create mode 100644 docs/source/_autosummary/semantic_router.route.is_valid.rst
 create mode 100644 docs/source/_autosummary/semantic_router.route.rst
 create mode 100644 docs/source/_autosummary/semantic_router.rst
 create mode 100644 docs/source/_autosummary/semantic_router.schema.DocumentSplit.rst
 create mode 100644 docs/source/_autosummary/semantic_router.schema.EncoderInfo.rst
 create mode 100644 docs/source/_autosummary/semantic_router.schema.EncoderType.rst
 create mode 100644 docs/source/_autosummary/semantic_router.schema.Message.rst
 create mode 100644 docs/source/_autosummary/semantic_router.schema.Metric.rst
 create mode 100644 docs/source/_autosummary/semantic_router.schema.RouteChoice.rst
 create mode 100644 docs/source/_autosummary/semantic_router.schema.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.base.BaseSplitter.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.base.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.consecutive_sim.ConsecutiveSimSplitter.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.consecutive_sim.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.cumulative_sim.CumulativeSimSplitter.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.cumulative_sim.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.rolling_window.RollingWindowSplitter.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.rolling_window.SplitStatistics.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.rolling_window.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.utils.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.utils.split_to_sentences.rst
 create mode 100644 docs/source/_autosummary/semantic_router.splitters.utils.tiktoken_length.rst
 create mode 100644 docs/source/_autosummary/semantic_router.text.Conversation.rst
 create mode 100644 docs/source/_autosummary/semantic_router.text.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.defaults.EncoderDefault.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.defaults.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.function_call.convert_python_type_to_json_type.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.function_call.get_schema.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.function_call.get_schema_list.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.function_call.route_and_execute.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.function_call.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.llm.llm.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.llm.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.logger.CustomFormatter.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.logger.add_coloured_handler.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.logger.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.logger.setup_custom_logger.rst
 create mode 100644 docs/source/_autosummary/semantic_router.utils.rst
 create mode 100644 docs/source/_templates/custom-class-template.rst
 create mode 100644 docs/source/_templates/custom-module-template.rst

diff --git a/docs/source/_autosummary/semantic_router.encoders.AutoEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.AutoEncoder.rst
new file mode 100644
index 00000000..74cf9bec
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.AutoEncoder.rst
@@ -0,0 +1,33 @@
+semantic\_router.encoders.AutoEncoder
+=====================================
+
+.. currentmodule:: semantic_router.encoders
+
+.. autoclass:: AutoEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~AutoEncoder.__init__
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~AutoEncoder.type
+      ~AutoEncoder.name
+      ~AutoEncoder.model
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.base.BaseEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.base.BaseEncoder.rst
new file mode 100644
index 00000000..2eab803d
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.base.BaseEncoder.rst
@@ -0,0 +1,47 @@
+semantic\_router.encoders.base.BaseEncoder
+==========================================
+
+.. currentmodule:: semantic_router.encoders.base
+
+.. autoclass:: BaseEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~BaseEncoder.__init__
+      ~BaseEncoder.acall
+      ~BaseEncoder.construct
+      ~BaseEncoder.copy
+      ~BaseEncoder.dict
+      ~BaseEncoder.from_orm
+      ~BaseEncoder.json
+      ~BaseEncoder.parse_file
+      ~BaseEncoder.parse_obj
+      ~BaseEncoder.parse_raw
+      ~BaseEncoder.schema
+      ~BaseEncoder.schema_json
+      ~BaseEncoder.set_score_threshold
+      ~BaseEncoder.update_forward_refs
+      ~BaseEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~BaseEncoder.name
+      ~BaseEncoder.score_threshold
+      ~BaseEncoder.type
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.base.rst b/docs/source/_autosummary/semantic_router.encoders.base.rst
new file mode 100644
index 00000000..8becbcad
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.base.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.base
+==============================
+
+.. automodule:: semantic_router.encoders.base
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      BaseEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.bedrock.BedrockEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.bedrock.BedrockEncoder.rst
new file mode 100644
index 00000000..cc8f7e33
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.bedrock.BedrockEncoder.rst
@@ -0,0 +1,55 @@
+semantic\_router.encoders.bedrock.BedrockEncoder
+================================================
+
+.. currentmodule:: semantic_router.encoders.bedrock
+
+.. autoclass:: BedrockEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~BedrockEncoder.__init__
+      ~BedrockEncoder.acall
+      ~BedrockEncoder.chunk_strings
+      ~BedrockEncoder.construct
+      ~BedrockEncoder.copy
+      ~BedrockEncoder.dict
+      ~BedrockEncoder.from_orm
+      ~BedrockEncoder.get_env_variable
+      ~BedrockEncoder.json
+      ~BedrockEncoder.parse_file
+      ~BedrockEncoder.parse_obj
+      ~BedrockEncoder.parse_raw
+      ~BedrockEncoder.schema
+      ~BedrockEncoder.schema_json
+      ~BedrockEncoder.set_score_threshold
+      ~BedrockEncoder.update_forward_refs
+      ~BedrockEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~BedrockEncoder.client
+      ~BedrockEncoder.type
+      ~BedrockEncoder.input_type
+      ~BedrockEncoder.name
+      ~BedrockEncoder.access_key_id
+      ~BedrockEncoder.secret_access_key
+      ~BedrockEncoder.session_token
+      ~BedrockEncoder.region
+      ~BedrockEncoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.bedrock.rst b/docs/source/_autosummary/semantic_router.encoders.bedrock.rst
new file mode 100644
index 00000000..e86fa15f
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.bedrock.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.bedrock
+=================================
+
+.. automodule:: semantic_router.encoders.bedrock
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      BedrockEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.bm25.BM25Encoder.rst b/docs/source/_autosummary/semantic_router.encoders.bm25.BM25Encoder.rst
new file mode 100644
index 00000000..2eea5149
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.bm25.BM25Encoder.rst
@@ -0,0 +1,50 @@
+semantic\_router.encoders.bm25.BM25Encoder
+==========================================
+
+.. currentmodule:: semantic_router.encoders.bm25
+
+.. autoclass:: BM25Encoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~BM25Encoder.__init__
+      ~BM25Encoder.acall
+      ~BM25Encoder.construct
+      ~BM25Encoder.copy
+      ~BM25Encoder.dict
+      ~BM25Encoder.fit
+      ~BM25Encoder.from_orm
+      ~BM25Encoder.json
+      ~BM25Encoder.parse_file
+      ~BM25Encoder.parse_obj
+      ~BM25Encoder.parse_raw
+      ~BM25Encoder.schema
+      ~BM25Encoder.schema_json
+      ~BM25Encoder.set_score_threshold
+      ~BM25Encoder.update_forward_refs
+      ~BM25Encoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~BM25Encoder.model
+      ~BM25Encoder.idx_mapping
+      ~BM25Encoder.type
+      ~BM25Encoder.name
+      ~BM25Encoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.bm25.rst b/docs/source/_autosummary/semantic_router.encoders.bm25.rst
new file mode 100644
index 00000000..a69b892f
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.bm25.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.bm25
+==============================
+
+.. automodule:: semantic_router.encoders.bm25
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      BM25Encoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.clip.CLIPEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.clip.CLIPEncoder.rst
new file mode 100644
index 00000000..59df55ca
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.clip.CLIPEncoder.rst
@@ -0,0 +1,51 @@
+semantic\_router.encoders.clip.CLIPEncoder
+==========================================
+
+.. currentmodule:: semantic_router.encoders.clip
+
+.. autoclass:: CLIPEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~CLIPEncoder.__init__
+      ~CLIPEncoder.acall
+      ~CLIPEncoder.construct
+      ~CLIPEncoder.copy
+      ~CLIPEncoder.dict
+      ~CLIPEncoder.from_orm
+      ~CLIPEncoder.json
+      ~CLIPEncoder.parse_file
+      ~CLIPEncoder.parse_obj
+      ~CLIPEncoder.parse_raw
+      ~CLIPEncoder.schema
+      ~CLIPEncoder.schema_json
+      ~CLIPEncoder.set_score_threshold
+      ~CLIPEncoder.update_forward_refs
+      ~CLIPEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~CLIPEncoder.name
+      ~CLIPEncoder.type
+      ~CLIPEncoder.score_threshold
+      ~CLIPEncoder.tokenizer_kwargs
+      ~CLIPEncoder.processor_kwargs
+      ~CLIPEncoder.model_kwargs
+      ~CLIPEncoder.device
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.clip.rst b/docs/source/_autosummary/semantic_router.encoders.clip.rst
new file mode 100644
index 00000000..2d97c1c6
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.clip.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.clip
+==============================
+
+.. automodule:: semantic_router.encoders.clip
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      CLIPEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.cohere.CohereEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.cohere.CohereEncoder.rst
new file mode 100644
index 00000000..b37412df
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.cohere.CohereEncoder.rst
@@ -0,0 +1,49 @@
+semantic\_router.encoders.cohere.CohereEncoder
+==============================================
+
+.. currentmodule:: semantic_router.encoders.cohere
+
+.. autoclass:: CohereEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~CohereEncoder.__init__
+      ~CohereEncoder.acall
+      ~CohereEncoder.construct
+      ~CohereEncoder.copy
+      ~CohereEncoder.dict
+      ~CohereEncoder.from_orm
+      ~CohereEncoder.json
+      ~CohereEncoder.parse_file
+      ~CohereEncoder.parse_obj
+      ~CohereEncoder.parse_raw
+      ~CohereEncoder.schema
+      ~CohereEncoder.schema_json
+      ~CohereEncoder.set_score_threshold
+      ~CohereEncoder.update_forward_refs
+      ~CohereEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~CohereEncoder.client
+      ~CohereEncoder.type
+      ~CohereEncoder.input_type
+      ~CohereEncoder.name
+      ~CohereEncoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.cohere.rst b/docs/source/_autosummary/semantic_router.encoders.cohere.rst
new file mode 100644
index 00000000..193f6903
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.cohere.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.cohere
+================================
+
+.. automodule:: semantic_router.encoders.cohere
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      CohereEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.fastembed.FastEmbedEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.fastembed.FastEmbedEncoder.rst
new file mode 100644
index 00000000..bee72bcf
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.fastembed.FastEmbedEncoder.rst
@@ -0,0 +1,50 @@
+semantic\_router.encoders.fastembed.FastEmbedEncoder
+====================================================
+
+.. currentmodule:: semantic_router.encoders.fastembed
+
+.. autoclass:: FastEmbedEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~FastEmbedEncoder.__init__
+      ~FastEmbedEncoder.acall
+      ~FastEmbedEncoder.construct
+      ~FastEmbedEncoder.copy
+      ~FastEmbedEncoder.dict
+      ~FastEmbedEncoder.from_orm
+      ~FastEmbedEncoder.json
+      ~FastEmbedEncoder.parse_file
+      ~FastEmbedEncoder.parse_obj
+      ~FastEmbedEncoder.parse_raw
+      ~FastEmbedEncoder.schema
+      ~FastEmbedEncoder.schema_json
+      ~FastEmbedEncoder.set_score_threshold
+      ~FastEmbedEncoder.update_forward_refs
+      ~FastEmbedEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~FastEmbedEncoder.type
+      ~FastEmbedEncoder.name
+      ~FastEmbedEncoder.max_length
+      ~FastEmbedEncoder.cache_dir
+      ~FastEmbedEncoder.threads
+      ~FastEmbedEncoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.fastembed.rst b/docs/source/_autosummary/semantic_router.encoders.fastembed.rst
new file mode 100644
index 00000000..c0e6a2a2
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.fastembed.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.fastembed
+===================================
+
+.. automodule:: semantic_router.encoders.fastembed
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      FastEmbedEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.google.GoogleEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.google.GoogleEncoder.rst
new file mode 100644
index 00000000..81b47873
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.google.GoogleEncoder.rst
@@ -0,0 +1,48 @@
+semantic\_router.encoders.google.GoogleEncoder
+==============================================
+
+.. currentmodule:: semantic_router.encoders.google
+
+.. autoclass:: GoogleEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~GoogleEncoder.__init__
+      ~GoogleEncoder.acall
+      ~GoogleEncoder.construct
+      ~GoogleEncoder.copy
+      ~GoogleEncoder.dict
+      ~GoogleEncoder.from_orm
+      ~GoogleEncoder.json
+      ~GoogleEncoder.parse_file
+      ~GoogleEncoder.parse_obj
+      ~GoogleEncoder.parse_raw
+      ~GoogleEncoder.schema
+      ~GoogleEncoder.schema_json
+      ~GoogleEncoder.set_score_threshold
+      ~GoogleEncoder.update_forward_refs
+      ~GoogleEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~GoogleEncoder.client
+      ~GoogleEncoder.type
+      ~GoogleEncoder.name
+      ~GoogleEncoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.google.rst b/docs/source/_autosummary/semantic_router.encoders.google.rst
new file mode 100644
index 00000000..40235d25
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.google.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.google
+================================
+
+.. automodule:: semantic_router.encoders.google
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      GoogleEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.huggingface.HFEndpointEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.huggingface.HFEndpointEncoder.rst
new file mode 100644
index 00000000..fcef2410
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.huggingface.HFEndpointEncoder.rst
@@ -0,0 +1,50 @@
+semantic\_router.encoders.huggingface.HFEndpointEncoder
+=======================================================
+
+.. currentmodule:: semantic_router.encoders.huggingface
+
+.. autoclass:: HFEndpointEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~HFEndpointEncoder.__init__
+      ~HFEndpointEncoder.acall
+      ~HFEndpointEncoder.construct
+      ~HFEndpointEncoder.copy
+      ~HFEndpointEncoder.dict
+      ~HFEndpointEncoder.from_orm
+      ~HFEndpointEncoder.json
+      ~HFEndpointEncoder.parse_file
+      ~HFEndpointEncoder.parse_obj
+      ~HFEndpointEncoder.parse_raw
+      ~HFEndpointEncoder.query
+      ~HFEndpointEncoder.schema
+      ~HFEndpointEncoder.schema_json
+      ~HFEndpointEncoder.set_score_threshold
+      ~HFEndpointEncoder.update_forward_refs
+      ~HFEndpointEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~HFEndpointEncoder.name
+      ~HFEndpointEncoder.huggingface_url
+      ~HFEndpointEncoder.huggingface_api_key
+      ~HFEndpointEncoder.score_threshold
+      ~HFEndpointEncoder.type
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.huggingface.HuggingFaceEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.huggingface.HuggingFaceEncoder.rst
new file mode 100644
index 00000000..e78399ab
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.huggingface.HuggingFaceEncoder.rst
@@ -0,0 +1,50 @@
+semantic\_router.encoders.huggingface.HuggingFaceEncoder
+========================================================
+
+.. currentmodule:: semantic_router.encoders.huggingface
+
+.. autoclass:: HuggingFaceEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~HuggingFaceEncoder.__init__
+      ~HuggingFaceEncoder.acall
+      ~HuggingFaceEncoder.construct
+      ~HuggingFaceEncoder.copy
+      ~HuggingFaceEncoder.dict
+      ~HuggingFaceEncoder.from_orm
+      ~HuggingFaceEncoder.json
+      ~HuggingFaceEncoder.parse_file
+      ~HuggingFaceEncoder.parse_obj
+      ~HuggingFaceEncoder.parse_raw
+      ~HuggingFaceEncoder.schema
+      ~HuggingFaceEncoder.schema_json
+      ~HuggingFaceEncoder.set_score_threshold
+      ~HuggingFaceEncoder.update_forward_refs
+      ~HuggingFaceEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~HuggingFaceEncoder.name
+      ~HuggingFaceEncoder.type
+      ~HuggingFaceEncoder.score_threshold
+      ~HuggingFaceEncoder.tokenizer_kwargs
+      ~HuggingFaceEncoder.model_kwargs
+      ~HuggingFaceEncoder.device
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.huggingface.rst b/docs/source/_autosummary/semantic_router.encoders.huggingface.rst
new file mode 100644
index 00000000..6f72719f
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.huggingface.rst
@@ -0,0 +1,32 @@
+semantic\_router.encoders.huggingface
+=====================================
+
+.. automodule:: semantic_router.encoders.huggingface
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      HFEndpointEncoder
+      HuggingFaceEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.mistral.MistralEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.mistral.MistralEncoder.rst
new file mode 100644
index 00000000..e5e8e30a
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.mistral.MistralEncoder.rst
@@ -0,0 +1,47 @@
+semantic\_router.encoders.mistral.MistralEncoder
+================================================
+
+.. currentmodule:: semantic_router.encoders.mistral
+
+.. autoclass:: MistralEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~MistralEncoder.__init__
+      ~MistralEncoder.acall
+      ~MistralEncoder.construct
+      ~MistralEncoder.copy
+      ~MistralEncoder.dict
+      ~MistralEncoder.from_orm
+      ~MistralEncoder.json
+      ~MistralEncoder.parse_file
+      ~MistralEncoder.parse_obj
+      ~MistralEncoder.parse_raw
+      ~MistralEncoder.schema
+      ~MistralEncoder.schema_json
+      ~MistralEncoder.set_score_threshold
+      ~MistralEncoder.update_forward_refs
+      ~MistralEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~MistralEncoder.type
+      ~MistralEncoder.name
+      ~MistralEncoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.mistral.rst b/docs/source/_autosummary/semantic_router.encoders.mistral.rst
new file mode 100644
index 00000000..ddd9f8fa
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.mistral.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.mistral
+=================================
+
+.. automodule:: semantic_router.encoders.mistral
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      MistralEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.openai.OpenAIEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.openai.OpenAIEncoder.rst
new file mode 100644
index 00000000..3a388a84
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.openai.OpenAIEncoder.rst
@@ -0,0 +1,51 @@
+semantic\_router.encoders.openai.OpenAIEncoder
+==============================================
+
+.. currentmodule:: semantic_router.encoders.openai
+
+.. autoclass:: OpenAIEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~OpenAIEncoder.__init__
+      ~OpenAIEncoder.acall
+      ~OpenAIEncoder.construct
+      ~OpenAIEncoder.copy
+      ~OpenAIEncoder.dict
+      ~OpenAIEncoder.from_orm
+      ~OpenAIEncoder.json
+      ~OpenAIEncoder.parse_file
+      ~OpenAIEncoder.parse_obj
+      ~OpenAIEncoder.parse_raw
+      ~OpenAIEncoder.schema
+      ~OpenAIEncoder.schema_json
+      ~OpenAIEncoder.set_score_threshold
+      ~OpenAIEncoder.update_forward_refs
+      ~OpenAIEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~OpenAIEncoder.client
+      ~OpenAIEncoder.async_client
+      ~OpenAIEncoder.dimensions
+      ~OpenAIEncoder.token_limit
+      ~OpenAIEncoder.type
+      ~OpenAIEncoder.name
+      ~OpenAIEncoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.openai.rst b/docs/source/_autosummary/semantic_router.encoders.openai.rst
new file mode 100644
index 00000000..41bced5b
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.openai.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.openai
+================================
+
+.. automodule:: semantic_router.encoders.openai
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      OpenAIEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.rst b/docs/source/_autosummary/semantic_router.encoders.rst
new file mode 100644
index 00000000..1f615b3d
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.rst
@@ -0,0 +1,52 @@
+semantic\_router.encoders
+=========================
+
+.. automodule:: semantic_router.encoders
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      AutoEncoder
+   
+   
+
+   
+   
+   
+
+
+
+.. rubric:: Modules
+
+.. autosummary::
+   :toctree:
+   :template: custom-module-template.rst
+   :recursive:
+
+   semantic_router.encoders.base
+   semantic_router.encoders.bedrock
+   semantic_router.encoders.bm25
+   semantic_router.encoders.clip
+   semantic_router.encoders.cohere
+   semantic_router.encoders.fastembed
+   semantic_router.encoders.google
+   semantic_router.encoders.huggingface
+   semantic_router.encoders.mistral
+   semantic_router.encoders.openai
+   semantic_router.encoders.tfidf
+   semantic_router.encoders.vit
+   semantic_router.encoders.zure
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.tfidf.TfidfEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.tfidf.TfidfEncoder.rst
new file mode 100644
index 00000000..2bed919c
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.tfidf.TfidfEncoder.rst
@@ -0,0 +1,50 @@
+semantic\_router.encoders.tfidf.TfidfEncoder
+============================================
+
+.. currentmodule:: semantic_router.encoders.tfidf
+
+.. autoclass:: TfidfEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~TfidfEncoder.__init__
+      ~TfidfEncoder.acall
+      ~TfidfEncoder.construct
+      ~TfidfEncoder.copy
+      ~TfidfEncoder.dict
+      ~TfidfEncoder.fit
+      ~TfidfEncoder.from_orm
+      ~TfidfEncoder.json
+      ~TfidfEncoder.parse_file
+      ~TfidfEncoder.parse_obj
+      ~TfidfEncoder.parse_raw
+      ~TfidfEncoder.schema
+      ~TfidfEncoder.schema_json
+      ~TfidfEncoder.set_score_threshold
+      ~TfidfEncoder.update_forward_refs
+      ~TfidfEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~TfidfEncoder.idf
+      ~TfidfEncoder.word_index
+      ~TfidfEncoder.name
+      ~TfidfEncoder.score_threshold
+      ~TfidfEncoder.type
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.tfidf.rst b/docs/source/_autosummary/semantic_router.encoders.tfidf.rst
new file mode 100644
index 00000000..499c6060
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.tfidf.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.tfidf
+===============================
+
+.. automodule:: semantic_router.encoders.tfidf
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      TfidfEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.vit.VitEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.vit.VitEncoder.rst
new file mode 100644
index 00000000..3fe1db29
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.vit.VitEncoder.rst
@@ -0,0 +1,50 @@
+semantic\_router.encoders.vit.VitEncoder
+========================================
+
+.. currentmodule:: semantic_router.encoders.vit
+
+.. autoclass:: VitEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~VitEncoder.__init__
+      ~VitEncoder.acall
+      ~VitEncoder.construct
+      ~VitEncoder.copy
+      ~VitEncoder.dict
+      ~VitEncoder.from_orm
+      ~VitEncoder.json
+      ~VitEncoder.parse_file
+      ~VitEncoder.parse_obj
+      ~VitEncoder.parse_raw
+      ~VitEncoder.schema
+      ~VitEncoder.schema_json
+      ~VitEncoder.set_score_threshold
+      ~VitEncoder.update_forward_refs
+      ~VitEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~VitEncoder.name
+      ~VitEncoder.type
+      ~VitEncoder.score_threshold
+      ~VitEncoder.processor_kwargs
+      ~VitEncoder.model_kwargs
+      ~VitEncoder.device
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.vit.rst b/docs/source/_autosummary/semantic_router.encoders.vit.rst
new file mode 100644
index 00000000..1fbe4832
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.vit.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.vit
+=============================
+
+.. automodule:: semantic_router.encoders.vit
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      VitEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.encoders.zure.AzureOpenAIEncoder.rst b/docs/source/_autosummary/semantic_router.encoders.zure.AzureOpenAIEncoder.rst
new file mode 100644
index 00000000..d19d5936
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.zure.AzureOpenAIEncoder.rst
@@ -0,0 +1,55 @@
+semantic\_router.encoders.zure.AzureOpenAIEncoder
+=================================================
+
+.. currentmodule:: semantic_router.encoders.zure
+
+.. autoclass:: AzureOpenAIEncoder
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~AzureOpenAIEncoder.__init__
+      ~AzureOpenAIEncoder.acall
+      ~AzureOpenAIEncoder.construct
+      ~AzureOpenAIEncoder.copy
+      ~AzureOpenAIEncoder.dict
+      ~AzureOpenAIEncoder.from_orm
+      ~AzureOpenAIEncoder.json
+      ~AzureOpenAIEncoder.parse_file
+      ~AzureOpenAIEncoder.parse_obj
+      ~AzureOpenAIEncoder.parse_raw
+      ~AzureOpenAIEncoder.schema
+      ~AzureOpenAIEncoder.schema_json
+      ~AzureOpenAIEncoder.set_score_threshold
+      ~AzureOpenAIEncoder.update_forward_refs
+      ~AzureOpenAIEncoder.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~AzureOpenAIEncoder.client
+      ~AzureOpenAIEncoder.async_client
+      ~AzureOpenAIEncoder.dimensions
+      ~AzureOpenAIEncoder.type
+      ~AzureOpenAIEncoder.api_key
+      ~AzureOpenAIEncoder.deployment_name
+      ~AzureOpenAIEncoder.azure_endpoint
+      ~AzureOpenAIEncoder.api_version
+      ~AzureOpenAIEncoder.model
+      ~AzureOpenAIEncoder.name
+      ~AzureOpenAIEncoder.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.encoders.zure.rst b/docs/source/_autosummary/semantic_router.encoders.zure.rst
new file mode 100644
index 00000000..f9c11641
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.encoders.zure.rst
@@ -0,0 +1,31 @@
+semantic\_router.encoders.zure
+==============================
+
+.. automodule:: semantic_router.encoders.zure
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      AzureOpenAIEncoder
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.hybrid_layer.HybridRouteLayer.rst b/docs/source/_autosummary/semantic_router.hybrid_layer.HybridRouteLayer.rst
new file mode 100644
index 00000000..f29381ef
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.hybrid_layer.HybridRouteLayer.rst
@@ -0,0 +1,37 @@
+semantic\_router.hybrid\_layer.HybridRouteLayer
+===============================================
+
+.. currentmodule:: semantic_router.hybrid_layer
+
+.. autoclass:: HybridRouteLayer
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~HybridRouteLayer.__init__
+      ~HybridRouteLayer.add
+      ~HybridRouteLayer.update_dense_embeddings_index
+      ~HybridRouteLayer.update_sparse_embeddings_index
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~HybridRouteLayer.categories
+      ~HybridRouteLayer.index
+      ~HybridRouteLayer.sparse_index
+      ~HybridRouteLayer.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.hybrid_layer.rst b/docs/source/_autosummary/semantic_router.hybrid_layer.rst
new file mode 100644
index 00000000..d8744ff6
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.hybrid_layer.rst
@@ -0,0 +1,31 @@
+semantic\_router.hybrid\_layer
+==============================
+
+.. automodule:: semantic_router.hybrid_layer
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      HybridRouteLayer
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.index.base.BaseIndex.rst b/docs/source/_autosummary/semantic_router.index.base.BaseIndex.rst
new file mode 100644
index 00000000..b0b423ea
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.base.BaseIndex.rst
@@ -0,0 +1,55 @@
+semantic\_router.index.base.BaseIndex
+=====================================
+
+.. currentmodule:: semantic_router.index.base
+
+.. autoclass:: BaseIndex
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~BaseIndex.__init__
+      ~BaseIndex.add
+      ~BaseIndex.aquery
+      ~BaseIndex.construct
+      ~BaseIndex.copy
+      ~BaseIndex.delete
+      ~BaseIndex.delete_index
+      ~BaseIndex.describe
+      ~BaseIndex.dict
+      ~BaseIndex.from_orm
+      ~BaseIndex.json
+      ~BaseIndex.parse_file
+      ~BaseIndex.parse_obj
+      ~BaseIndex.parse_raw
+      ~BaseIndex.query
+      ~BaseIndex.schema
+      ~BaseIndex.schema_json
+      ~BaseIndex.update_forward_refs
+      ~BaseIndex.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~BaseIndex.index
+      ~BaseIndex.routes
+      ~BaseIndex.utterances
+      ~BaseIndex.dimensions
+      ~BaseIndex.type
+      ~BaseIndex.init_async_index
+      ~BaseIndex.sync
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.index.base.rst b/docs/source/_autosummary/semantic_router.index.base.rst
new file mode 100644
index 00000000..cb6f0ef3
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.base.rst
@@ -0,0 +1,31 @@
+semantic\_router.index.base
+===========================
+
+.. automodule:: semantic_router.index.base
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      BaseIndex
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.index.local.LocalIndex.rst b/docs/source/_autosummary/semantic_router.index.local.LocalIndex.rst
new file mode 100644
index 00000000..c6d00026
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.local.LocalIndex.rst
@@ -0,0 +1,56 @@
+semantic\_router.index.local.LocalIndex
+=======================================
+
+.. currentmodule:: semantic_router.index.local
+
+.. autoclass:: LocalIndex
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~LocalIndex.__init__
+      ~LocalIndex.add
+      ~LocalIndex.aquery
+      ~LocalIndex.construct
+      ~LocalIndex.copy
+      ~LocalIndex.delete
+      ~LocalIndex.delete_index
+      ~LocalIndex.describe
+      ~LocalIndex.dict
+      ~LocalIndex.from_orm
+      ~LocalIndex.get_routes
+      ~LocalIndex.json
+      ~LocalIndex.parse_file
+      ~LocalIndex.parse_obj
+      ~LocalIndex.parse_raw
+      ~LocalIndex.query
+      ~LocalIndex.schema
+      ~LocalIndex.schema_json
+      ~LocalIndex.update_forward_refs
+      ~LocalIndex.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~LocalIndex.index
+      ~LocalIndex.routes
+      ~LocalIndex.utterances
+      ~LocalIndex.dimensions
+      ~LocalIndex.type
+      ~LocalIndex.init_async_index
+      ~LocalIndex.sync
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.index.local.rst b/docs/source/_autosummary/semantic_router.index.local.rst
new file mode 100644
index 00000000..06a5adcd
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.local.rst
@@ -0,0 +1,31 @@
+semantic\_router.index.local
+============================
+
+.. automodule:: semantic_router.index.local
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      LocalIndex
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.index.pinecone.PineconeIndex.rst b/docs/source/_autosummary/semantic_router.index.pinecone.PineconeIndex.rst
new file mode 100644
index 00000000..6e800738
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.pinecone.PineconeIndex.rst
@@ -0,0 +1,69 @@
+semantic\_router.index.pinecone.PineconeIndex
+=============================================
+
+.. currentmodule:: semantic_router.index.pinecone
+
+.. autoclass:: PineconeIndex
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~PineconeIndex.__init__
+      ~PineconeIndex.add
+      ~PineconeIndex.aquery
+      ~PineconeIndex.construct
+      ~PineconeIndex.copy
+      ~PineconeIndex.delete
+      ~PineconeIndex.delete_all
+      ~PineconeIndex.delete_index
+      ~PineconeIndex.describe
+      ~PineconeIndex.dict
+      ~PineconeIndex.from_orm
+      ~PineconeIndex.get_routes
+      ~PineconeIndex.json
+      ~PineconeIndex.parse_file
+      ~PineconeIndex.parse_obj
+      ~PineconeIndex.parse_raw
+      ~PineconeIndex.query
+      ~PineconeIndex.schema
+      ~PineconeIndex.schema_json
+      ~PineconeIndex.update_forward_refs
+      ~PineconeIndex.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~PineconeIndex.index_prefix
+      ~PineconeIndex.api_key
+      ~PineconeIndex.index_name
+      ~PineconeIndex.dimensions
+      ~PineconeIndex.metric
+      ~PineconeIndex.cloud
+      ~PineconeIndex.region
+      ~PineconeIndex.host
+      ~PineconeIndex.client
+      ~PineconeIndex.async_client
+      ~PineconeIndex.index
+      ~PineconeIndex.ServerlessSpec
+      ~PineconeIndex.namespace
+      ~PineconeIndex.base_url
+      ~PineconeIndex.routes
+      ~PineconeIndex.utterances
+      ~PineconeIndex.type
+      ~PineconeIndex.init_async_index
+      ~PineconeIndex.sync
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.index.pinecone.PineconeRecord.rst b/docs/source/_autosummary/semantic_router.index.pinecone.PineconeRecord.rst
new file mode 100644
index 00000000..cc88ffe4
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.pinecone.PineconeRecord.rst
@@ -0,0 +1,47 @@
+semantic\_router.index.pinecone.PineconeRecord
+==============================================
+
+.. currentmodule:: semantic_router.index.pinecone
+
+.. autoclass:: PineconeRecord
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~PineconeRecord.__init__
+      ~PineconeRecord.construct
+      ~PineconeRecord.copy
+      ~PineconeRecord.dict
+      ~PineconeRecord.from_orm
+      ~PineconeRecord.json
+      ~PineconeRecord.parse_file
+      ~PineconeRecord.parse_obj
+      ~PineconeRecord.parse_raw
+      ~PineconeRecord.schema
+      ~PineconeRecord.schema_json
+      ~PineconeRecord.to_dict
+      ~PineconeRecord.update_forward_refs
+      ~PineconeRecord.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~PineconeRecord.id
+      ~PineconeRecord.values
+      ~PineconeRecord.route
+      ~PineconeRecord.utterance
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.index.pinecone.clean_route_name.rst b/docs/source/_autosummary/semantic_router.index.pinecone.clean_route_name.rst
new file mode 100644
index 00000000..58f5914b
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.pinecone.clean_route_name.rst
@@ -0,0 +1,6 @@
+semantic\_router.index.pinecone.clean\_route\_name
+==================================================
+
+.. currentmodule:: semantic_router.index.pinecone
+
+.. autofunction:: clean_route_name
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.index.pinecone.rst b/docs/source/_autosummary/semantic_router.index.pinecone.rst
new file mode 100644
index 00000000..9e3c28e0
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.pinecone.rst
@@ -0,0 +1,39 @@
+semantic\_router.index.pinecone
+===============================
+
+.. automodule:: semantic_router.index.pinecone
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      clean_route_name
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      PineconeIndex
+      PineconeRecord
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.index.qdrant.QdrantIndex.rst b/docs/source/_autosummary/semantic_router.index.qdrant.QdrantIndex.rst
new file mode 100644
index 00000000..87379ade
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.qdrant.QdrantIndex.rst
@@ -0,0 +1,74 @@
+semantic\_router.index.qdrant.QdrantIndex
+=========================================
+
+.. currentmodule:: semantic_router.index.qdrant
+
+.. autoclass:: QdrantIndex
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~QdrantIndex.__init__
+      ~QdrantIndex.add
+      ~QdrantIndex.aquery
+      ~QdrantIndex.construct
+      ~QdrantIndex.convert_metric
+      ~QdrantIndex.copy
+      ~QdrantIndex.delete
+      ~QdrantIndex.delete_index
+      ~QdrantIndex.describe
+      ~QdrantIndex.dict
+      ~QdrantIndex.from_orm
+      ~QdrantIndex.get_routes
+      ~QdrantIndex.json
+      ~QdrantIndex.parse_file
+      ~QdrantIndex.parse_obj
+      ~QdrantIndex.parse_raw
+      ~QdrantIndex.query
+      ~QdrantIndex.schema
+      ~QdrantIndex.schema_json
+      ~QdrantIndex.update_forward_refs
+      ~QdrantIndex.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~QdrantIndex.index_name
+      ~QdrantIndex.location
+      ~QdrantIndex.url
+      ~QdrantIndex.port
+      ~QdrantIndex.grpc_port
+      ~QdrantIndex.prefer_grpc
+      ~QdrantIndex.https
+      ~QdrantIndex.api_key
+      ~QdrantIndex.prefix
+      ~QdrantIndex.timeout
+      ~QdrantIndex.host
+      ~QdrantIndex.path
+      ~QdrantIndex.grpc_options
+      ~QdrantIndex.dimensions
+      ~QdrantIndex.metric
+      ~QdrantIndex.config
+      ~QdrantIndex.client
+      ~QdrantIndex.aclient
+      ~QdrantIndex.index
+      ~QdrantIndex.routes
+      ~QdrantIndex.utterances
+      ~QdrantIndex.type
+      ~QdrantIndex.init_async_index
+      ~QdrantIndex.sync
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.index.qdrant.rst b/docs/source/_autosummary/semantic_router.index.qdrant.rst
new file mode 100644
index 00000000..2c835215
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.qdrant.rst
@@ -0,0 +1,31 @@
+semantic\_router.index.qdrant
+=============================
+
+.. automodule:: semantic_router.index.qdrant
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      QdrantIndex
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.index.rst b/docs/source/_autosummary/semantic_router.index.rst
new file mode 100644
index 00000000..7925fbdd
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.index.rst
@@ -0,0 +1,35 @@
+semantic\_router.index
+======================
+
+.. automodule:: semantic_router.index
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
+.. rubric:: Modules
+
+.. autosummary::
+   :toctree:
+   :template: custom-module-template.rst
+   :recursive:
+
+   semantic_router.index.base
+   semantic_router.index.local
+   semantic_router.index.pinecone
+   semantic_router.index.qdrant
+
diff --git a/docs/source/_autosummary/semantic_router.layer.LayerConfig.rst b/docs/source/_autosummary/semantic_router.layer.LayerConfig.rst
new file mode 100644
index 00000000..e477eea5
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.layer.LayerConfig.rst
@@ -0,0 +1,37 @@
+semantic\_router.layer.LayerConfig
+==================================
+
+.. currentmodule:: semantic_router.layer
+
+.. autoclass:: LayerConfig
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~LayerConfig.__init__
+      ~LayerConfig.add
+      ~LayerConfig.from_file
+      ~LayerConfig.get
+      ~LayerConfig.remove
+      ~LayerConfig.to_dict
+      ~LayerConfig.to_file
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~LayerConfig.routes
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.layer.RouteLayer.rst b/docs/source/_autosummary/semantic_router.layer.RouteLayer.rst
new file mode 100644
index 00000000..11c02875
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.layer.RouteLayer.rst
@@ -0,0 +1,52 @@
+semantic\_router.layer.RouteLayer
+=================================
+
+.. currentmodule:: semantic_router.layer
+
+.. autoclass:: RouteLayer
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~RouteLayer.__init__
+      ~RouteLayer.acall
+      ~RouteLayer.add
+      ~RouteLayer.async_group_scores_by_class
+      ~RouteLayer.check_for_matching_routes
+      ~RouteLayer.delete
+      ~RouteLayer.evaluate
+      ~RouteLayer.fit
+      ~RouteLayer.from_config
+      ~RouteLayer.from_json
+      ~RouteLayer.from_yaml
+      ~RouteLayer.get
+      ~RouteLayer.get_thresholds
+      ~RouteLayer.group_scores_by_class
+      ~RouteLayer.list_route_names
+      ~RouteLayer.retrieve_multiple_routes
+      ~RouteLayer.to_config
+      ~RouteLayer.to_json
+      ~RouteLayer.to_yaml
+      ~RouteLayer.update
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~RouteLayer.score_threshold
+      ~RouteLayer.encoder
+      ~RouteLayer.index
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.layer.is_valid.rst b/docs/source/_autosummary/semantic_router.layer.is_valid.rst
new file mode 100644
index 00000000..30de0588
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.layer.is_valid.rst
@@ -0,0 +1,6 @@
+semantic\_router.layer.is\_valid
+================================
+
+.. currentmodule:: semantic_router.layer
+
+.. autofunction:: is_valid
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.layer.rst b/docs/source/_autosummary/semantic_router.layer.rst
new file mode 100644
index 00000000..fbcbc3e9
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.layer.rst
@@ -0,0 +1,40 @@
+semantic\_router.layer
+======================
+
+.. automodule:: semantic_router.layer
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      is_valid
+      threshold_random_search
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      LayerConfig
+      RouteLayer
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.layer.threshold_random_search.rst b/docs/source/_autosummary/semantic_router.layer.threshold_random_search.rst
new file mode 100644
index 00000000..1d278cf1
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.layer.threshold_random_search.rst
@@ -0,0 +1,6 @@
+semantic\_router.layer.threshold\_random\_search
+================================================
+
+.. currentmodule:: semantic_router.layer
+
+.. autofunction:: threshold_random_search
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.linear.rst b/docs/source/_autosummary/semantic_router.linear.rst
new file mode 100644
index 00000000..af4deb51
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.linear.rst
@@ -0,0 +1,31 @@
+semantic\_router.linear
+=======================
+
+.. automodule:: semantic_router.linear
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      similarity_matrix
+      top_scores
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.linear.similarity_matrix.rst b/docs/source/_autosummary/semantic_router.linear.similarity_matrix.rst
new file mode 100644
index 00000000..09d3a627
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.linear.similarity_matrix.rst
@@ -0,0 +1,6 @@
+semantic\_router.linear.similarity\_matrix
+==========================================
+
+.. currentmodule:: semantic_router.linear
+
+.. autofunction:: similarity_matrix
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.linear.top_scores.rst b/docs/source/_autosummary/semantic_router.linear.top_scores.rst
new file mode 100644
index 00000000..10dce958
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.linear.top_scores.rst
@@ -0,0 +1,6 @@
+semantic\_router.linear.top\_scores
+===================================
+
+.. currentmodule:: semantic_router.linear
+
+.. autofunction:: top_scores
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.base.BaseLLM.rst b/docs/source/_autosummary/semantic_router.llms.base.BaseLLM.rst
new file mode 100644
index 00000000..b53d0116
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.base.BaseLLM.rst
@@ -0,0 +1,44 @@
+semantic\_router.llms.base.BaseLLM
+==================================
+
+.. currentmodule:: semantic_router.llms.base
+
+.. autoclass:: BaseLLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~BaseLLM.__init__
+      ~BaseLLM.construct
+      ~BaseLLM.copy
+      ~BaseLLM.dict
+      ~BaseLLM.extract_function_inputs
+      ~BaseLLM.from_orm
+      ~BaseLLM.json
+      ~BaseLLM.parse_file
+      ~BaseLLM.parse_obj
+      ~BaseLLM.parse_raw
+      ~BaseLLM.schema
+      ~BaseLLM.schema_json
+      ~BaseLLM.update_forward_refs
+      ~BaseLLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~BaseLLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.base.rst b/docs/source/_autosummary/semantic_router.llms.base.rst
new file mode 100644
index 00000000..5d1a967c
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.base.rst
@@ -0,0 +1,31 @@
+semantic\_router.llms.base
+==========================
+
+.. automodule:: semantic_router.llms.base
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      BaseLLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.llms.cohere.CohereLLM.rst b/docs/source/_autosummary/semantic_router.llms.cohere.CohereLLM.rst
new file mode 100644
index 00000000..a7422525
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.cohere.CohereLLM.rst
@@ -0,0 +1,45 @@
+semantic\_router.llms.cohere.CohereLLM
+======================================
+
+.. currentmodule:: semantic_router.llms.cohere
+
+.. autoclass:: CohereLLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~CohereLLM.__init__
+      ~CohereLLM.construct
+      ~CohereLLM.copy
+      ~CohereLLM.dict
+      ~CohereLLM.extract_function_inputs
+      ~CohereLLM.from_orm
+      ~CohereLLM.json
+      ~CohereLLM.parse_file
+      ~CohereLLM.parse_obj
+      ~CohereLLM.parse_raw
+      ~CohereLLM.schema
+      ~CohereLLM.schema_json
+      ~CohereLLM.update_forward_refs
+      ~CohereLLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~CohereLLM.client
+      ~CohereLLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.cohere.rst b/docs/source/_autosummary/semantic_router.llms.cohere.rst
new file mode 100644
index 00000000..81a473f1
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.cohere.rst
@@ -0,0 +1,31 @@
+semantic\_router.llms.cohere
+============================
+
+.. automodule:: semantic_router.llms.cohere
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      CohereLLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.llms.llamacpp.LlamaCppLLM.rst b/docs/source/_autosummary/semantic_router.llms.llamacpp.LlamaCppLLM.rst
new file mode 100644
index 00000000..055a6536
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.llamacpp.LlamaCppLLM.rst
@@ -0,0 +1,48 @@
+semantic\_router.llms.llamacpp.LlamaCppLLM
+==========================================
+
+.. currentmodule:: semantic_router.llms.llamacpp
+
+.. autoclass:: LlamaCppLLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~LlamaCppLLM.__init__
+      ~LlamaCppLLM.construct
+      ~LlamaCppLLM.copy
+      ~LlamaCppLLM.dict
+      ~LlamaCppLLM.extract_function_inputs
+      ~LlamaCppLLM.from_orm
+      ~LlamaCppLLM.json
+      ~LlamaCppLLM.parse_file
+      ~LlamaCppLLM.parse_obj
+      ~LlamaCppLLM.parse_raw
+      ~LlamaCppLLM.schema
+      ~LlamaCppLLM.schema_json
+      ~LlamaCppLLM.update_forward_refs
+      ~LlamaCppLLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~LlamaCppLLM.llm
+      ~LlamaCppLLM.temperature
+      ~LlamaCppLLM.max_tokens
+      ~LlamaCppLLM.grammar
+      ~LlamaCppLLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.llamacpp.rst b/docs/source/_autosummary/semantic_router.llms.llamacpp.rst
new file mode 100644
index 00000000..43a9e460
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.llamacpp.rst
@@ -0,0 +1,31 @@
+semantic\_router.llms.llamacpp
+==============================
+
+.. automodule:: semantic_router.llms.llamacpp
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      LlamaCppLLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.llms.mistral.MistralAILLM.rst b/docs/source/_autosummary/semantic_router.llms.mistral.MistralAILLM.rst
new file mode 100644
index 00000000..a865730b
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.mistral.MistralAILLM.rst
@@ -0,0 +1,46 @@
+semantic\_router.llms.mistral.MistralAILLM
+==========================================
+
+.. currentmodule:: semantic_router.llms.mistral
+
+.. autoclass:: MistralAILLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~MistralAILLM.__init__
+      ~MistralAILLM.construct
+      ~MistralAILLM.copy
+      ~MistralAILLM.dict
+      ~MistralAILLM.extract_function_inputs
+      ~MistralAILLM.from_orm
+      ~MistralAILLM.json
+      ~MistralAILLM.parse_file
+      ~MistralAILLM.parse_obj
+      ~MistralAILLM.parse_raw
+      ~MistralAILLM.schema
+      ~MistralAILLM.schema_json
+      ~MistralAILLM.update_forward_refs
+      ~MistralAILLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~MistralAILLM.temperature
+      ~MistralAILLM.max_tokens
+      ~MistralAILLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.mistral.rst b/docs/source/_autosummary/semantic_router.llms.mistral.rst
new file mode 100644
index 00000000..35ecf37a
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.mistral.rst
@@ -0,0 +1,31 @@
+semantic\_router.llms.mistral
+=============================
+
+.. automodule:: semantic_router.llms.mistral
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      MistralAILLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.llms.ollama.OllamaLLM.rst b/docs/source/_autosummary/semantic_router.llms.ollama.OllamaLLM.rst
new file mode 100644
index 00000000..0538d2e7
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.ollama.OllamaLLM.rst
@@ -0,0 +1,48 @@
+semantic\_router.llms.ollama.OllamaLLM
+======================================
+
+.. currentmodule:: semantic_router.llms.ollama
+
+.. autoclass:: OllamaLLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~OllamaLLM.__init__
+      ~OllamaLLM.construct
+      ~OllamaLLM.copy
+      ~OllamaLLM.dict
+      ~OllamaLLM.extract_function_inputs
+      ~OllamaLLM.from_orm
+      ~OllamaLLM.json
+      ~OllamaLLM.parse_file
+      ~OllamaLLM.parse_obj
+      ~OllamaLLM.parse_raw
+      ~OllamaLLM.schema
+      ~OllamaLLM.schema_json
+      ~OllamaLLM.update_forward_refs
+      ~OllamaLLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~OllamaLLM.temperature
+      ~OllamaLLM.llm_name
+      ~OllamaLLM.max_tokens
+      ~OllamaLLM.stream
+      ~OllamaLLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.ollama.rst b/docs/source/_autosummary/semantic_router.llms.ollama.rst
new file mode 100644
index 00000000..d6bf8a76
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.ollama.rst
@@ -0,0 +1,31 @@
+semantic\_router.llms.ollama
+============================
+
+.. automodule:: semantic_router.llms.ollama
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      OllamaLLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.llms.openai.OpenAILLM.rst b/docs/source/_autosummary/semantic_router.llms.openai.OpenAILLM.rst
new file mode 100644
index 00000000..c203c2b2
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.openai.OpenAILLM.rst
@@ -0,0 +1,51 @@
+semantic\_router.llms.openai.OpenAILLM
+======================================
+
+.. currentmodule:: semantic_router.llms.openai
+
+.. autoclass:: OpenAILLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~OpenAILLM.__init__
+      ~OpenAILLM.acall
+      ~OpenAILLM.async_extract_function_inputs
+      ~OpenAILLM.async_extract_tool_calls_info
+      ~OpenAILLM.construct
+      ~OpenAILLM.copy
+      ~OpenAILLM.dict
+      ~OpenAILLM.extract_function_inputs
+      ~OpenAILLM.from_orm
+      ~OpenAILLM.json
+      ~OpenAILLM.parse_file
+      ~OpenAILLM.parse_obj
+      ~OpenAILLM.parse_raw
+      ~OpenAILLM.schema
+      ~OpenAILLM.schema_json
+      ~OpenAILLM.update_forward_refs
+      ~OpenAILLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~OpenAILLM.client
+      ~OpenAILLM.async_client
+      ~OpenAILLM.temperature
+      ~OpenAILLM.max_tokens
+      ~OpenAILLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.openai.get_schemas_openai.rst b/docs/source/_autosummary/semantic_router.llms.openai.get_schemas_openai.rst
new file mode 100644
index 00000000..f466acf0
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.openai.get_schemas_openai.rst
@@ -0,0 +1,6 @@
+semantic\_router.llms.openai.get\_schemas\_openai
+=================================================
+
+.. currentmodule:: semantic_router.llms.openai
+
+.. autofunction:: get_schemas_openai
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.openai.rst b/docs/source/_autosummary/semantic_router.llms.openai.rst
new file mode 100644
index 00000000..9fbf813e
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.openai.rst
@@ -0,0 +1,38 @@
+semantic\_router.llms.openai
+============================
+
+.. automodule:: semantic_router.llms.openai
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      get_schemas_openai
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      OpenAILLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.llms.openrouter.OpenRouterLLM.rst b/docs/source/_autosummary/semantic_router.llms.openrouter.OpenRouterLLM.rst
new file mode 100644
index 00000000..71060394
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.openrouter.OpenRouterLLM.rst
@@ -0,0 +1,48 @@
+semantic\_router.llms.openrouter.OpenRouterLLM
+==============================================
+
+.. currentmodule:: semantic_router.llms.openrouter
+
+.. autoclass:: OpenRouterLLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~OpenRouterLLM.__init__
+      ~OpenRouterLLM.construct
+      ~OpenRouterLLM.copy
+      ~OpenRouterLLM.dict
+      ~OpenRouterLLM.extract_function_inputs
+      ~OpenRouterLLM.from_orm
+      ~OpenRouterLLM.json
+      ~OpenRouterLLM.parse_file
+      ~OpenRouterLLM.parse_obj
+      ~OpenRouterLLM.parse_raw
+      ~OpenRouterLLM.schema
+      ~OpenRouterLLM.schema_json
+      ~OpenRouterLLM.update_forward_refs
+      ~OpenRouterLLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~OpenRouterLLM.client
+      ~OpenRouterLLM.base_url
+      ~OpenRouterLLM.temperature
+      ~OpenRouterLLM.max_tokens
+      ~OpenRouterLLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.openrouter.rst b/docs/source/_autosummary/semantic_router.llms.openrouter.rst
new file mode 100644
index 00000000..bfe09e35
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.openrouter.rst
@@ -0,0 +1,31 @@
+semantic\_router.llms.openrouter
+================================
+
+.. automodule:: semantic_router.llms.openrouter
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      OpenRouterLLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.llms.rst b/docs/source/_autosummary/semantic_router.llms.rst
new file mode 100644
index 00000000..fb84e416
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.rst
@@ -0,0 +1,39 @@
+semantic\_router.llms
+=====================
+
+.. automodule:: semantic_router.llms
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
+.. rubric:: Modules
+
+.. autosummary::
+   :toctree:
+   :template: custom-module-template.rst
+   :recursive:
+
+   semantic_router.llms.base
+   semantic_router.llms.cohere
+   semantic_router.llms.llamacpp
+   semantic_router.llms.mistral
+   semantic_router.llms.ollama
+   semantic_router.llms.openai
+   semantic_router.llms.openrouter
+   semantic_router.llms.zure
+
diff --git a/docs/source/_autosummary/semantic_router.llms.zure.AzureOpenAILLM.rst b/docs/source/_autosummary/semantic_router.llms.zure.AzureOpenAILLM.rst
new file mode 100644
index 00000000..c94ac8e0
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.zure.AzureOpenAILLM.rst
@@ -0,0 +1,47 @@
+semantic\_router.llms.zure.AzureOpenAILLM
+=========================================
+
+.. currentmodule:: semantic_router.llms.zure
+
+.. autoclass:: AzureOpenAILLM
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~AzureOpenAILLM.__init__
+      ~AzureOpenAILLM.construct
+      ~AzureOpenAILLM.copy
+      ~AzureOpenAILLM.dict
+      ~AzureOpenAILLM.extract_function_inputs
+      ~AzureOpenAILLM.from_orm
+      ~AzureOpenAILLM.json
+      ~AzureOpenAILLM.parse_file
+      ~AzureOpenAILLM.parse_obj
+      ~AzureOpenAILLM.parse_raw
+      ~AzureOpenAILLM.schema
+      ~AzureOpenAILLM.schema_json
+      ~AzureOpenAILLM.update_forward_refs
+      ~AzureOpenAILLM.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~AzureOpenAILLM.client
+      ~AzureOpenAILLM.temperature
+      ~AzureOpenAILLM.max_tokens
+      ~AzureOpenAILLM.name
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.llms.zure.rst b/docs/source/_autosummary/semantic_router.llms.zure.rst
new file mode 100644
index 00000000..6690bcc5
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.llms.zure.rst
@@ -0,0 +1,31 @@
+semantic\_router.llms.zure
+==========================
+
+.. automodule:: semantic_router.llms.zure
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      AzureOpenAILLM
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.route.Route.rst b/docs/source/_autosummary/semantic_router.route.Route.rst
new file mode 100644
index 00000000..4a5f3449
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.route.Route.rst
@@ -0,0 +1,52 @@
+semantic\_router.route.Route
+============================
+
+.. currentmodule:: semantic_router.route
+
+.. autoclass:: Route
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~Route.__init__
+      ~Route.acall
+      ~Route.construct
+      ~Route.copy
+      ~Route.dict
+      ~Route.from_dict
+      ~Route.from_dynamic_route
+      ~Route.from_orm
+      ~Route.json
+      ~Route.parse_file
+      ~Route.parse_obj
+      ~Route.parse_raw
+      ~Route.schema
+      ~Route.schema_json
+      ~Route.to_dict
+      ~Route.update_forward_refs
+      ~Route.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~Route.name
+      ~Route.utterances
+      ~Route.description
+      ~Route.function_schemas
+      ~Route.llm
+      ~Route.score_threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.route.is_valid.rst b/docs/source/_autosummary/semantic_router.route.is_valid.rst
new file mode 100644
index 00000000..0e278ef2
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.route.is_valid.rst
@@ -0,0 +1,6 @@
+semantic\_router.route.is\_valid
+================================
+
+.. currentmodule:: semantic_router.route
+
+.. autofunction:: is_valid
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.route.rst b/docs/source/_autosummary/semantic_router.route.rst
new file mode 100644
index 00000000..ea559a1e
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.route.rst
@@ -0,0 +1,38 @@
+semantic\_router.route
+======================
+
+.. automodule:: semantic_router.route
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      is_valid
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      Route
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.rst b/docs/source/_autosummary/semantic_router.rst
new file mode 100644
index 00000000..87e3eb99
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.rst
@@ -0,0 +1,42 @@
+semantic\_router
+================
+
+.. automodule:: semantic_router
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
+.. rubric:: Modules
+
+.. autosummary::
+   :toctree:
+   :template: custom-module-template.rst
+   :recursive:
+
+   semantic_router.encoders
+   semantic_router.hybrid_layer
+   semantic_router.index
+   semantic_router.layer
+   semantic_router.linear
+   semantic_router.llms
+   semantic_router.route
+   semantic_router.schema
+   semantic_router.splitters
+   semantic_router.text
+   semantic_router.utils
+
diff --git a/docs/source/_autosummary/semantic_router.schema.DocumentSplit.rst b/docs/source/_autosummary/semantic_router.schema.DocumentSplit.rst
new file mode 100644
index 00000000..f2e556fa
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.schema.DocumentSplit.rst
@@ -0,0 +1,48 @@
+semantic\_router.schema.DocumentSplit
+=====================================
+
+.. currentmodule:: semantic_router.schema
+
+.. autoclass:: DocumentSplit
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~DocumentSplit.__init__
+      ~DocumentSplit.construct
+      ~DocumentSplit.copy
+      ~DocumentSplit.dict
+      ~DocumentSplit.from_orm
+      ~DocumentSplit.json
+      ~DocumentSplit.parse_file
+      ~DocumentSplit.parse_obj
+      ~DocumentSplit.parse_raw
+      ~DocumentSplit.schema
+      ~DocumentSplit.schema_json
+      ~DocumentSplit.update_forward_refs
+      ~DocumentSplit.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~DocumentSplit.content
+      ~DocumentSplit.docs
+      ~DocumentSplit.is_triggered
+      ~DocumentSplit.triggered_score
+      ~DocumentSplit.token_count
+      ~DocumentSplit.metadata
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.schema.EncoderInfo.rst b/docs/source/_autosummary/semantic_router.schema.EncoderInfo.rst
new file mode 100644
index 00000000..bff52290
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.schema.EncoderInfo.rst
@@ -0,0 +1,45 @@
+semantic\_router.schema.EncoderInfo
+===================================
+
+.. currentmodule:: semantic_router.schema
+
+.. autoclass:: EncoderInfo
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~EncoderInfo.__init__
+      ~EncoderInfo.construct
+      ~EncoderInfo.copy
+      ~EncoderInfo.dict
+      ~EncoderInfo.from_orm
+      ~EncoderInfo.json
+      ~EncoderInfo.parse_file
+      ~EncoderInfo.parse_obj
+      ~EncoderInfo.parse_raw
+      ~EncoderInfo.schema
+      ~EncoderInfo.schema_json
+      ~EncoderInfo.update_forward_refs
+      ~EncoderInfo.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~EncoderInfo.name
+      ~EncoderInfo.token_limit
+      ~EncoderInfo.threshold
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.schema.EncoderType.rst b/docs/source/_autosummary/semantic_router.schema.EncoderType.rst
new file mode 100644
index 00000000..3f69d026
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.schema.EncoderType.rst
@@ -0,0 +1,36 @@
+semantic\_router.schema.EncoderType
+===================================
+
+.. currentmodule:: semantic_router.schema
+
+.. autoclass:: EncoderType
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~EncoderType.AZURE
+      ~EncoderType.COHERE
+      ~EncoderType.OPENAI
+      ~EncoderType.BM25
+      ~EncoderType.TFIDF
+      ~EncoderType.FASTEMBED
+      ~EncoderType.HUGGINGFACE
+      ~EncoderType.MISTRAL
+      ~EncoderType.VIT
+      ~EncoderType.CLIP
+      ~EncoderType.GOOGLE
+      ~EncoderType.BEDROCK
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.schema.Message.rst b/docs/source/_autosummary/semantic_router.schema.Message.rst
new file mode 100644
index 00000000..184c7e85
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.schema.Message.rst
@@ -0,0 +1,48 @@
+semantic\_router.schema.Message
+===============================
+
+.. currentmodule:: semantic_router.schema
+
+.. autoclass:: Message
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~Message.__init__
+      ~Message.construct
+      ~Message.copy
+      ~Message.dict
+      ~Message.from_orm
+      ~Message.json
+      ~Message.parse_file
+      ~Message.parse_obj
+      ~Message.parse_raw
+      ~Message.schema
+      ~Message.schema_json
+      ~Message.to_cohere
+      ~Message.to_llamacpp
+      ~Message.to_mistral
+      ~Message.to_openai
+      ~Message.update_forward_refs
+      ~Message.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~Message.role
+      ~Message.content
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.schema.Metric.rst b/docs/source/_autosummary/semantic_router.schema.Metric.rst
new file mode 100644
index 00000000..d7904b2b
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.schema.Metric.rst
@@ -0,0 +1,28 @@
+semantic\_router.schema.Metric
+==============================
+
+.. currentmodule:: semantic_router.schema
+
+.. autoclass:: Metric
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~Metric.COSINE
+      ~Metric.DOTPRODUCT
+      ~Metric.EUCLIDEAN
+      ~Metric.MANHATTAN
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.schema.RouteChoice.rst b/docs/source/_autosummary/semantic_router.schema.RouteChoice.rst
new file mode 100644
index 00000000..79c627d2
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.schema.RouteChoice.rst
@@ -0,0 +1,45 @@
+semantic\_router.schema.RouteChoice
+===================================
+
+.. currentmodule:: semantic_router.schema
+
+.. autoclass:: RouteChoice
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~RouteChoice.__init__
+      ~RouteChoice.construct
+      ~RouteChoice.copy
+      ~RouteChoice.dict
+      ~RouteChoice.from_orm
+      ~RouteChoice.json
+      ~RouteChoice.parse_file
+      ~RouteChoice.parse_obj
+      ~RouteChoice.parse_raw
+      ~RouteChoice.schema
+      ~RouteChoice.schema_json
+      ~RouteChoice.update_forward_refs
+      ~RouteChoice.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~RouteChoice.name
+      ~RouteChoice.function_call
+      ~RouteChoice.similarity_score
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.schema.rst b/docs/source/_autosummary/semantic_router.schema.rst
new file mode 100644
index 00000000..71cc22ed
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.schema.rst
@@ -0,0 +1,36 @@
+semantic\_router.schema
+=======================
+
+.. automodule:: semantic_router.schema
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      DocumentSplit
+      EncoderInfo
+      EncoderType
+      Message
+      Metric
+      RouteChoice
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.splitters.base.BaseSplitter.rst b/docs/source/_autosummary/semantic_router.splitters.base.BaseSplitter.rst
new file mode 100644
index 00000000..4e8f3f11
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.base.BaseSplitter.rst
@@ -0,0 +1,45 @@
+semantic\_router.splitters.base.BaseSplitter
+============================================
+
+.. currentmodule:: semantic_router.splitters.base
+
+.. autoclass:: BaseSplitter
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~BaseSplitter.__init__
+      ~BaseSplitter.construct
+      ~BaseSplitter.copy
+      ~BaseSplitter.dict
+      ~BaseSplitter.from_orm
+      ~BaseSplitter.json
+      ~BaseSplitter.parse_file
+      ~BaseSplitter.parse_obj
+      ~BaseSplitter.parse_raw
+      ~BaseSplitter.print
+      ~BaseSplitter.schema
+      ~BaseSplitter.schema_json
+      ~BaseSplitter.update_forward_refs
+      ~BaseSplitter.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~BaseSplitter.name
+      ~BaseSplitter.encoder
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.splitters.base.rst b/docs/source/_autosummary/semantic_router.splitters.base.rst
new file mode 100644
index 00000000..9bf5ab39
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.base.rst
@@ -0,0 +1,31 @@
+semantic\_router.splitters.base
+===============================
+
+.. automodule:: semantic_router.splitters.base
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      BaseSplitter
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.splitters.consecutive_sim.ConsecutiveSimSplitter.rst b/docs/source/_autosummary/semantic_router.splitters.consecutive_sim.ConsecutiveSimSplitter.rst
new file mode 100644
index 00000000..5a464951
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.consecutive_sim.ConsecutiveSimSplitter.rst
@@ -0,0 +1,45 @@
+semantic\_router.splitters.consecutive\_sim.ConsecutiveSimSplitter
+==================================================================
+
+.. currentmodule:: semantic_router.splitters.consecutive_sim
+
+.. autoclass:: ConsecutiveSimSplitter
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~ConsecutiveSimSplitter.__init__
+      ~ConsecutiveSimSplitter.construct
+      ~ConsecutiveSimSplitter.copy
+      ~ConsecutiveSimSplitter.dict
+      ~ConsecutiveSimSplitter.from_orm
+      ~ConsecutiveSimSplitter.json
+      ~ConsecutiveSimSplitter.parse_file
+      ~ConsecutiveSimSplitter.parse_obj
+      ~ConsecutiveSimSplitter.parse_raw
+      ~ConsecutiveSimSplitter.print
+      ~ConsecutiveSimSplitter.schema
+      ~ConsecutiveSimSplitter.schema_json
+      ~ConsecutiveSimSplitter.update_forward_refs
+      ~ConsecutiveSimSplitter.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~ConsecutiveSimSplitter.name
+      ~ConsecutiveSimSplitter.encoder
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.splitters.consecutive_sim.rst b/docs/source/_autosummary/semantic_router.splitters.consecutive_sim.rst
new file mode 100644
index 00000000..aa42f3c8
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.consecutive_sim.rst
@@ -0,0 +1,31 @@
+semantic\_router.splitters.consecutive\_sim
+===========================================
+
+.. automodule:: semantic_router.splitters.consecutive_sim
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      ConsecutiveSimSplitter
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.splitters.cumulative_sim.CumulativeSimSplitter.rst b/docs/source/_autosummary/semantic_router.splitters.cumulative_sim.CumulativeSimSplitter.rst
new file mode 100644
index 00000000..7b990209
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.cumulative_sim.CumulativeSimSplitter.rst
@@ -0,0 +1,45 @@
+semantic\_router.splitters.cumulative\_sim.CumulativeSimSplitter
+================================================================
+
+.. currentmodule:: semantic_router.splitters.cumulative_sim
+
+.. autoclass:: CumulativeSimSplitter
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~CumulativeSimSplitter.__init__
+      ~CumulativeSimSplitter.construct
+      ~CumulativeSimSplitter.copy
+      ~CumulativeSimSplitter.dict
+      ~CumulativeSimSplitter.from_orm
+      ~CumulativeSimSplitter.json
+      ~CumulativeSimSplitter.parse_file
+      ~CumulativeSimSplitter.parse_obj
+      ~CumulativeSimSplitter.parse_raw
+      ~CumulativeSimSplitter.print
+      ~CumulativeSimSplitter.schema
+      ~CumulativeSimSplitter.schema_json
+      ~CumulativeSimSplitter.update_forward_refs
+      ~CumulativeSimSplitter.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~CumulativeSimSplitter.name
+      ~CumulativeSimSplitter.encoder
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.splitters.cumulative_sim.rst b/docs/source/_autosummary/semantic_router.splitters.cumulative_sim.rst
new file mode 100644
index 00000000..b08e04bf
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.cumulative_sim.rst
@@ -0,0 +1,31 @@
+semantic\_router.splitters.cumulative\_sim
+==========================================
+
+.. automodule:: semantic_router.splitters.cumulative_sim
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      CumulativeSimSplitter
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.splitters.rolling_window.RollingWindowSplitter.rst b/docs/source/_autosummary/semantic_router.splitters.rolling_window.RollingWindowSplitter.rst
new file mode 100644
index 00000000..48e6d57f
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.rolling_window.RollingWindowSplitter.rst
@@ -0,0 +1,47 @@
+semantic\_router.splitters.rolling\_window.RollingWindowSplitter
+================================================================
+
+.. currentmodule:: semantic_router.splitters.rolling_window
+
+.. autoclass:: RollingWindowSplitter
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~RollingWindowSplitter.__init__
+      ~RollingWindowSplitter.construct
+      ~RollingWindowSplitter.copy
+      ~RollingWindowSplitter.dict
+      ~RollingWindowSplitter.from_orm
+      ~RollingWindowSplitter.json
+      ~RollingWindowSplitter.parse_file
+      ~RollingWindowSplitter.parse_obj
+      ~RollingWindowSplitter.parse_raw
+      ~RollingWindowSplitter.plot_sentence_similarity_scores
+      ~RollingWindowSplitter.plot_similarity_scores
+      ~RollingWindowSplitter.print
+      ~RollingWindowSplitter.schema
+      ~RollingWindowSplitter.schema_json
+      ~RollingWindowSplitter.update_forward_refs
+      ~RollingWindowSplitter.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~RollingWindowSplitter.name
+      ~RollingWindowSplitter.encoder
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.splitters.rolling_window.SplitStatistics.rst b/docs/source/_autosummary/semantic_router.splitters.rolling_window.SplitStatistics.rst
new file mode 100644
index 00000000..be102ef7
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.rolling_window.SplitStatistics.rst
@@ -0,0 +1,38 @@
+semantic\_router.splitters.rolling\_window.SplitStatistics
+==========================================================
+
+.. currentmodule:: semantic_router.splitters.rolling_window
+
+.. autoclass:: SplitStatistics
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~SplitStatistics.__init__
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~SplitStatistics.total_documents
+      ~SplitStatistics.total_splits
+      ~SplitStatistics.splits_by_threshold
+      ~SplitStatistics.splits_by_max_chunk_size
+      ~SplitStatistics.splits_by_last_split
+      ~SplitStatistics.min_token_size
+      ~SplitStatistics.max_token_size
+      ~SplitStatistics.splits_by_similarity_ratio
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.splitters.rolling_window.rst b/docs/source/_autosummary/semantic_router.splitters.rolling_window.rst
new file mode 100644
index 00000000..58ce6558
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.rolling_window.rst
@@ -0,0 +1,32 @@
+semantic\_router.splitters.rolling\_window
+==========================================
+
+.. automodule:: semantic_router.splitters.rolling_window
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      RollingWindowSplitter
+      SplitStatistics
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.splitters.rst b/docs/source/_autosummary/semantic_router.splitters.rst
new file mode 100644
index 00000000..d9ee3e36
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.rst
@@ -0,0 +1,36 @@
+semantic\_router.splitters
+==========================
+
+.. automodule:: semantic_router.splitters
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
+.. rubric:: Modules
+
+.. autosummary::
+   :toctree:
+   :template: custom-module-template.rst
+   :recursive:
+
+   semantic_router.splitters.base
+   semantic_router.splitters.consecutive_sim
+   semantic_router.splitters.cumulative_sim
+   semantic_router.splitters.rolling_window
+   semantic_router.splitters.utils
+
diff --git a/docs/source/_autosummary/semantic_router.splitters.utils.rst b/docs/source/_autosummary/semantic_router.splitters.utils.rst
new file mode 100644
index 00000000..fd956ba7
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.utils.rst
@@ -0,0 +1,31 @@
+semantic\_router.splitters.utils
+================================
+
+.. automodule:: semantic_router.splitters.utils
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      split_to_sentences
+      tiktoken_length
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.splitters.utils.split_to_sentences.rst b/docs/source/_autosummary/semantic_router.splitters.utils.split_to_sentences.rst
new file mode 100644
index 00000000..fa30150c
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.utils.split_to_sentences.rst
@@ -0,0 +1,6 @@
+semantic\_router.splitters.utils.split\_to\_sentences
+=====================================================
+
+.. currentmodule:: semantic_router.splitters.utils
+
+.. autofunction:: split_to_sentences
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.splitters.utils.tiktoken_length.rst b/docs/source/_autosummary/semantic_router.splitters.utils.tiktoken_length.rst
new file mode 100644
index 00000000..de78752d
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.splitters.utils.tiktoken_length.rst
@@ -0,0 +1,6 @@
+semantic\_router.splitters.utils.tiktoken\_length
+=================================================
+
+.. currentmodule:: semantic_router.splitters.utils
+
+.. autofunction:: tiktoken_length
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.text.Conversation.rst b/docs/source/_autosummary/semantic_router.text.Conversation.rst
new file mode 100644
index 00000000..07921466
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.text.Conversation.rst
@@ -0,0 +1,52 @@
+semantic\_router.text.Conversation
+==================================
+
+.. currentmodule:: semantic_router.text
+
+.. autoclass:: Conversation
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~Conversation.__init__
+      ~Conversation.add_new_messages
+      ~Conversation.append_new_topics
+      ~Conversation.configure_splitter
+      ~Conversation.construct
+      ~Conversation.copy
+      ~Conversation.determine_topic_start_index
+      ~Conversation.dict
+      ~Conversation.from_orm
+      ~Conversation.get_last_message_and_topic_id
+      ~Conversation.json
+      ~Conversation.parse_file
+      ~Conversation.parse_obj
+      ~Conversation.parse_raw
+      ~Conversation.remove_topics
+      ~Conversation.schema
+      ~Conversation.schema_json
+      ~Conversation.split_by_topic
+      ~Conversation.update_forward_refs
+      ~Conversation.validate
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~Conversation.messages
+      ~Conversation.topics
+      ~Conversation.splitter
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.text.rst b/docs/source/_autosummary/semantic_router.text.rst
new file mode 100644
index 00000000..9cca9e7c
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.text.rst
@@ -0,0 +1,31 @@
+semantic\_router.text
+=====================
+
+.. automodule:: semantic_router.text
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      Conversation
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.utils.defaults.EncoderDefault.rst b/docs/source/_autosummary/semantic_router.utils.defaults.EncoderDefault.rst
new file mode 100644
index 00000000..47d8b21f
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.defaults.EncoderDefault.rst
@@ -0,0 +1,31 @@
+semantic\_router.utils.defaults.EncoderDefault
+==============================================
+
+.. currentmodule:: semantic_router.utils.defaults
+
+.. autoclass:: EncoderDefault
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~EncoderDefault.FASTEMBED
+      ~EncoderDefault.OPENAI
+      ~EncoderDefault.COHERE
+      ~EncoderDefault.MISTRAL
+      ~EncoderDefault.AZURE
+      ~EncoderDefault.GOOGLE
+      ~EncoderDefault.BEDROCK
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.defaults.rst b/docs/source/_autosummary/semantic_router.utils.defaults.rst
new file mode 100644
index 00000000..5dd094fd
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.defaults.rst
@@ -0,0 +1,31 @@
+semantic\_router.utils.defaults
+===============================
+
+.. automodule:: semantic_router.utils.defaults
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      EncoderDefault
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.utils.function_call.convert_python_type_to_json_type.rst b/docs/source/_autosummary/semantic_router.utils.function_call.convert_python_type_to_json_type.rst
new file mode 100644
index 00000000..a53d0fdc
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.function_call.convert_python_type_to_json_type.rst
@@ -0,0 +1,6 @@
+semantic\_router.utils.function\_call.convert\_python\_type\_to\_json\_type
+===========================================================================
+
+.. currentmodule:: semantic_router.utils.function_call
+
+.. autofunction:: convert_python_type_to_json_type
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.function_call.get_schema.rst b/docs/source/_autosummary/semantic_router.utils.function_call.get_schema.rst
new file mode 100644
index 00000000..592fa226
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.function_call.get_schema.rst
@@ -0,0 +1,6 @@
+semantic\_router.utils.function\_call.get\_schema
+=================================================
+
+.. currentmodule:: semantic_router.utils.function_call
+
+.. autofunction:: get_schema
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.function_call.get_schema_list.rst b/docs/source/_autosummary/semantic_router.utils.function_call.get_schema_list.rst
new file mode 100644
index 00000000..14d78cab
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.function_call.get_schema_list.rst
@@ -0,0 +1,6 @@
+semantic\_router.utils.function\_call.get\_schema\_list
+=======================================================
+
+.. currentmodule:: semantic_router.utils.function_call
+
+.. autofunction:: get_schema_list
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.function_call.route_and_execute.rst b/docs/source/_autosummary/semantic_router.utils.function_call.route_and_execute.rst
new file mode 100644
index 00000000..a5295991
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.function_call.route_and_execute.rst
@@ -0,0 +1,6 @@
+semantic\_router.utils.function\_call.route\_and\_execute
+=========================================================
+
+.. currentmodule:: semantic_router.utils.function_call
+
+.. autofunction:: route_and_execute
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.function_call.rst b/docs/source/_autosummary/semantic_router.utils.function_call.rst
new file mode 100644
index 00000000..7df22f9a
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.function_call.rst
@@ -0,0 +1,33 @@
+semantic\_router.utils.function\_call
+=====================================
+
+.. automodule:: semantic_router.utils.function_call
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      convert_python_type_to_json_type
+      get_schema
+      get_schema_list
+      route_and_execute
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.utils.llm.llm.rst b/docs/source/_autosummary/semantic_router.utils.llm.llm.rst
new file mode 100644
index 00000000..79768e50
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.llm.llm.rst
@@ -0,0 +1,6 @@
+semantic\_router.utils.llm.llm
+==============================
+
+.. currentmodule:: semantic_router.utils.llm
+
+.. autofunction:: llm
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.llm.rst b/docs/source/_autosummary/semantic_router.utils.llm.rst
new file mode 100644
index 00000000..7b1dccf0
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.llm.rst
@@ -0,0 +1,30 @@
+semantic\_router.utils.llm
+==========================
+
+.. automodule:: semantic_router.utils.llm
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      llm
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.utils.logger.CustomFormatter.rst b/docs/source/_autosummary/semantic_router.utils.logger.CustomFormatter.rst
new file mode 100644
index 00000000..cf6971d8
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.logger.CustomFormatter.rst
@@ -0,0 +1,39 @@
+semantic\_router.utils.logger.CustomFormatter
+=============================================
+
+.. currentmodule:: semantic_router.utils.logger
+
+.. autoclass:: CustomFormatter
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   
+   .. automethod:: __init__
+
+   
+   .. rubric:: Methods
+
+   .. autosummary::
+   
+      ~CustomFormatter.__init__
+      ~CustomFormatter.converter
+      ~CustomFormatter.format
+      ~CustomFormatter.formatException
+      ~CustomFormatter.formatMessage
+      ~CustomFormatter.formatStack
+      ~CustomFormatter.formatTime
+      ~CustomFormatter.usesTime
+   
+   
+
+   
+   
+   .. rubric:: Attributes
+
+   .. autosummary::
+   
+      ~CustomFormatter.default_msec_format
+      ~CustomFormatter.default_time_format
+   
+   
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.logger.add_coloured_handler.rst b/docs/source/_autosummary/semantic_router.utils.logger.add_coloured_handler.rst
new file mode 100644
index 00000000..f2ba4922
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.logger.add_coloured_handler.rst
@@ -0,0 +1,6 @@
+semantic\_router.utils.logger.add\_coloured\_handler
+====================================================
+
+.. currentmodule:: semantic_router.utils.logger
+
+.. autofunction:: add_coloured_handler
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.logger.rst b/docs/source/_autosummary/semantic_router.utils.logger.rst
new file mode 100644
index 00000000..f6c6c175
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.logger.rst
@@ -0,0 +1,39 @@
+semantic\_router.utils.logger
+=============================
+
+.. automodule:: semantic_router.utils.logger
+  
+   
+   
+   
+
+   
+   
+   .. rubric:: Functions
+
+   .. autosummary::
+      :toctree:
+   
+      add_coloured_handler
+      setup_custom_logger
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   
+      CustomFormatter
+   
+   
+
+   
+   
+   
+
+
+
diff --git a/docs/source/_autosummary/semantic_router.utils.logger.setup_custom_logger.rst b/docs/source/_autosummary/semantic_router.utils.logger.setup_custom_logger.rst
new file mode 100644
index 00000000..fdb58cae
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.logger.setup_custom_logger.rst
@@ -0,0 +1,6 @@
+semantic\_router.utils.logger.setup\_custom\_logger
+===================================================
+
+.. currentmodule:: semantic_router.utils.logger
+
+.. autofunction:: setup_custom_logger
\ No newline at end of file
diff --git a/docs/source/_autosummary/semantic_router.utils.rst b/docs/source/_autosummary/semantic_router.utils.rst
new file mode 100644
index 00000000..826b2770
--- /dev/null
+++ b/docs/source/_autosummary/semantic_router.utils.rst
@@ -0,0 +1,35 @@
+semantic\_router.utils
+======================
+
+.. automodule:: semantic_router.utils
+  
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+   
+   
+   
+
+
+
+.. rubric:: Modules
+
+.. autosummary::
+   :toctree:
+   :template: custom-module-template.rst
+   :recursive:
+
+   semantic_router.utils.defaults
+   semantic_router.utils.function_call
+   semantic_router.utils.llm
+   semantic_router.utils.logger
+
diff --git a/docs/source/_templates/custom-class-template.rst b/docs/source/_templates/custom-class-template.rst
new file mode 100644
index 00000000..16ebb2f3
--- /dev/null
+++ b/docs/source/_templates/custom-class-template.rst
@@ -0,0 +1,32 @@
+{{ fullname | escape | underline}}
+
+.. currentmodule:: {{ module }}
+
+.. autoclass:: {{ objname }}
+   :members:
+   :show-inheritance:
+   :inherited-members:
+
+   {% block methods %}
+   .. automethod:: __init__
+
+   {% if methods %}
+   .. rubric:: {{ _('Methods') }}
+
+   .. autosummary::
+   {% for item in methods %}
+      ~{{ name }}.{{ item }}
+   {%- endfor %}
+   {% endif %}
+   {% endblock %}
+
+   {% block attributes %}
+   {% if attributes %}
+   .. rubric:: {{ _('Attributes') }}
+
+   .. autosummary::
+   {% for item in attributes %}
+      ~{{ name }}.{{ item }}
+   {%- endfor %}
+   {% endif %}
+   {% endblock %}
\ No newline at end of file
diff --git a/docs/source/_templates/custom-module-template.rst b/docs/source/_templates/custom-module-template.rst
new file mode 100644
index 00000000..ef2c09a5
--- /dev/null
+++ b/docs/source/_templates/custom-module-template.rst
@@ -0,0 +1,66 @@
+{{ fullname | escape | underline}}
+
+.. automodule:: {{ fullname }}
+  
+   {% block attributes %}
+   {% if attributes %}
+   .. rubric:: Module Attributes
+
+   .. autosummary::
+      :toctree:
+   {% for item in attributes %}
+      {{ item }}
+   {%- endfor %}
+   {% endif %}
+   {% endblock %}
+
+   {% block functions %}
+   {% if functions %}
+   .. rubric:: {{ _('Functions') }}
+
+   .. autosummary::
+      :toctree:
+   {% for item in functions %}
+      {{ item }}
+   {%- endfor %}
+   {% endif %}
+   {% endblock %}
+
+   {% block classes %}
+   {% if classes %}
+   .. rubric:: {{ _('Classes') }}
+
+   .. autosummary::
+      :toctree:
+      :template: custom-class-template.rst
+   {% for item in classes %}
+      {{ item }}
+   {%- endfor %}
+   {% endif %}
+   {% endblock %}
+
+   {% block exceptions %}
+   {% if exceptions %}
+   .. rubric:: {{ _('Exceptions') }}
+
+   .. autosummary::
+      :toctree:
+   {% for item in exceptions %}
+      {{ item }}
+   {%- endfor %}
+   {% endif %}
+   {% endblock %}
+
+{% block modules %}
+{% if modules %}
+.. rubric:: Modules
+
+.. autosummary::
+   :toctree:
+   :template: custom-module-template.rst
+   :recursive:
+{% for item in modules %}
+   {{ item }}
+{%- endfor %}
+{% endif %}
+{% endblock %}
\ No newline at end of file
diff --git a/docs/source/api.rst b/docs/source/api.rst
index 6d3c5e19..7ddaf33c 100644
--- a/docs/source/api.rst
+++ b/docs/source/api.rst
@@ -2,6 +2,8 @@ API
 ===
 
 .. autosummary::
-   :toctree: generated
+   :toctree: _autosummary
+   :template: custom-module-template.rst
+   :recursive:
 
    semantic_router
\ No newline at end of file
diff --git a/docs/source/conf.py b/docs/source/conf.py
index badb608c..fd1f2329 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -18,8 +18,10 @@ release = "0.0.55"
 
 extensions = ["sphinx.ext.autodoc", "sphinx.ext.autosummary", "sphinxawesome_theme"]
 
-# templates_path = ["_templates"]
+templates_path = ["_templates"]
 exclude_patterns: List[str] = []
+autosummary_generate = True
+numpydoc_show_class_members = False
 
 
 # -- Options for HTML output -------------------------------------------------
diff --git a/docs/source/generated/semantic_router.rst b/docs/source/generated/semantic_router.rst
index 72d99d31..111d035b 100644
--- a/docs/source/generated/semantic_router.rst
+++ b/docs/source/generated/semantic_router.rst
@@ -1,4 +1,4 @@
-semantic\_router
+semantic\_router
 ================
 
 .. automodule:: semantic_router
-- 
GitLab