diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 243f0ccab265dab72295db1e1516dd9f1256a9ad..d2e69363330c0b90a7cbff5d01fc218922e6a270 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -17,7 +17,7 @@ build: # Build documentation in the "docs/" directory with Sphinx sphinx: - configuration: docs/conf.py + configuration: ./docs/source/conf.py # Optionally build your docs in additional formats such as PDF and ePub # formats: diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 3f6cbcf2da3368dbcb9f61567b26789cf90aac75..c366757386dc6f23238e705abd8b4c34da298789 100644 Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 384c04db99c12c799ed45c98736d367b61b50035..12ffe681303949e996a75f9c261cf0cee90f06e7 100644 Binary files a/docs/build/doctrees/index.doctree and b/docs/build/doctrees/index.doctree differ diff --git a/docs/build/doctrees/quickstart.doctree b/docs/build/doctrees/quickstart.doctree new file mode 100644 index 0000000000000000000000000000000000000000..237d6b52bf65676c3a4070c43b3efda329e1d1d3 Binary files /dev/null and b/docs/build/doctrees/quickstart.doctree differ diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 761199b2e6b5369f7af757c0c93915e33ce964c6..5fb6279de50d1a2a59b42de088033cc26ed69143 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: b045aa0ea82ed36b5de0726e6cfa8149 +config: 6d2df66aa6f93c86aae075c298bca014 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt index 1fb0f6bc6216d65e5ad233862c9395ce8fda103e..0d07a3efeba6f02ffe236879c12cc05c58ae25db 100644 --- a/docs/build/html/_sources/index.rst.txt +++ b/docs/build/html/_sources/index.rst.txt @@ -6,12 +6,17 @@ Semantic Router documentation ============================= -Add your content using ``reStructuredText`` syntax. See the -`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_ -documentation for details. +Semantic Router is a superfast decision-making layer for your LLMs and agents. Rather than waiting for slow LLM generations to make tool-use decisions, we use the magic of semantic vector space to make those decisions — *routing* our requests using *semantic* meaning. +## Integrations + +The *encoders* of semantic router include easy-to-use integrations with `Cohere <https://github.com/aurelio-labs/semantic-router/blob/main/semantic_router/encoders/cohere.py>`_, `OpenAI <https://github.com/aurelio-labs/semantic-router/blob/main/docs/encoders/openai-embed-3.ipynb>`_, `Hugging Face <https://github.com/aurelio-labs/semantic-router/blob/main/docs/encoders/huggingface.ipynb>`_, `FastEmbed <https://github.com/aurelio-labs/semantic-router/blob/main/docs/encoders/fastembed.ipynb>`_, and `more <https://github.com/aurelio-labs/semantic-router/tree/main/semantic_router/encoders>`_ — we even support `multi-modality <https://github.com/aurelio-labs/semantic-router/blob/main/docs/07-multi-modal.ipynb>`_!. + +Our utterance vector space also integrates with `Pinecone <https://github.com/aurelio-labs/semantic-router/blob/main/docs/indexes/pinecone.ipynb>`_ and `Qdrant <https://github.com/aurelio-labs/semantic-router/blob/main/docs/indexes/qdrant.ipynb>`_! .. toctree:: :maxdepth: 2 :caption: Contents: + quickstart + diff --git a/docs/build/html/_sources/quickstart.rst.txt b/docs/build/html/_sources/quickstart.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..b37655476afcedb7fc40e5cb1252f6d642c1551b --- /dev/null +++ b/docs/build/html/_sources/quickstart.rst.txt @@ -0,0 +1,98 @@ +Quickstart +========== + +To get started with *semantic-router* we install it like so:: + + pip install -qU semantic-router + +.. warning:: + If wanting to use a fully local version of semantic router you can use ``HuggingFaceEncoder`` and ``LlamaCppLLM`` (``pip install -qU "semantic-router[local]"``, see `here <https://github.com/aurelio-labs/semantic-router/blob/main/docs/05-local-execution.ipynb>`_). To use the ``HybridRouteLayer`` you must ``pip install -qU "semantic-router[hybrid]"``. + +We begin by defining a set of ``Route`` objects. These are the decision paths that the semantic router can decide to use, let's try two simple routes for now — one for talk on *politics* and another for *chitchat*: + +.. code-block:: python + + from semantic_router import Route + + # we could use this as a guide for our chatbot to avoid political conversations + politics = Route( + name="politics", + utterances=[ + "isn't politics the best thing ever", + "why don't you tell me about your political opinions", + "don't you just love the president", + "they're going to destroy this country!", + "they will save the country!", + ], + ) + + # this could be used as an indicator to our chatbot to switch to a more + # conversational prompt + chitchat = Route( + name="chitchat", + utterances=[ + "how's the weather today?", + "how are things going?", + "lovely weather today", + "the weather is horrendous", + "let's go to the chippy", + ], + ) + + # we place both of our decisions together into single list + routes = [politics, chitchat] + +We have our routes ready, now we initialize an embedding / encoder model. We currently support a ``CohereEncoder`` and ``OpenAIEncoder`` — more encoders will be added soon. To initialize them we do: + +.. code-block:: python + + import os + from semantic_router.encoders import CohereEncoder, OpenAIEncoder + + # for Cohere + os.environ["COHERE_API_KEY"] = "<YOUR_API_KEY>" + encoder = CohereEncoder() + + # or for OpenAI + os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>" + encoder = OpenAIEncoder() + +With our ``routes`` and ``encoder`` defined we now create a ``RouteLayer``. The route layer handles our semantic decision making. + +.. code-block:: python + + from semantic_router.layer import RouteLayer + + rl = RouteLayer(encoder=encoder, routes=routes) + +We can now use our route layer to make super fast decisions based on user queries. Let's try with two queries that should trigger our route decisions: + +.. code-block:: python + + rl("don't you love politics?").name + +.. code-block:: + + [Out]: 'politics' + +Correct decision, let's try another: + +.. code-block:: python + + rl("how's the weather today?").name + +.. code-block:: + + [Out]: 'chitchat' + +We get both decisions correct! Now lets try sending an unrelated query: + +.. code-block:: python + + rl("I'm interested in learning about llama 2").name + +.. code-block:: + + [Out]: + +In this case, no decision could be made as we had no matches — so our route layer returned ``None``! \ No newline at end of file diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index 329c75f236a45522777747ba179df3cd5b9bd655..9d5cb1a192716bbc501328957f02c902dd54ad7e 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -53,6 +53,10 @@ <h3>Navigation</h3> +<p class="caption" role="heading"><span class="caption-text">Contents:</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li> +</ul> <div class="relations"> <h3>Related Topics</h3> diff --git a/docs/build/html/index.html b/docs/build/html/index.html index ed99b194c756188448ad3a6651be607e2a5ad061..5d5caccb984712f25f26fe41c78d736ee650eca6 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -13,6 +13,7 @@ <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="next" title="Quickstart" href="quickstart.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -32,10 +33,15 @@ <section id="semantic-router-documentation"> <h1>Semantic Router documentation<a class="headerlink" href="#semantic-router-documentation" title="Link to this heading">¶</a></h1> -<p>Add your content using <code class="docutils literal notranslate"><span class="pre">reStructuredText</span></code> syntax. See the -<a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html">reStructuredText</a> -documentation for details.</p> +<p>Semantic Router is a superfast decision-making layer for your LLMs and agents. Rather than waiting for slow LLM generations to make tool-use decisions, we use the magic of semantic vector space to make those decisions — <em>routing</em> our requests using <em>semantic</em> meaning.</p> +<p>## Integrations</p> +<p>The <em>encoders</em> of semantic router include easy-to-use integrations with <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/semantic_router/encoders/cohere.py">Cohere</a>, <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/docs/encoders/openai-embed-3.ipynb">OpenAI</a>, <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/docs/encoders/huggingface.ipynb">Hugging Face</a>, <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/docs/encoders/fastembed.ipynb">FastEmbed</a>, and <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/tree/main/semantic_router/encoders">more</a> — we even support <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/docs/07-multi-modal.ipynb">multi-modality</a>!.</p> +<p>Our utterance vector space also integrates with <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/docs/indexes/pinecone.ipynb">Pinecone</a> and <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/docs/indexes/qdrant.ipynb">Qdrant</a>!</p> <div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">Contents:</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li> +</ul> </div> </section> @@ -56,11 +62,16 @@ documentation for details.</p> <h3>Navigation</h3> +<p class="caption" role="heading"><span class="caption-text">Contents:</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li> +</ul> <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="#">Documentation overview</a><ul> + <li>Next: <a href="quickstart.html" title="next chapter">Quickstart</a></li> </ul></li> </ul> </div> diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 0db59178f18b0761f032469c90f768ca2a8057b2..798dd58fe0ce62d7106f395bb896e6563936a5bb 100644 Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.inv differ diff --git a/docs/build/html/quickstart.html b/docs/build/html/quickstart.html new file mode 100644 index 0000000000000000000000000000000000000000..d2ab1b516515bcf8c9178172222a4156777d6f6f --- /dev/null +++ b/docs/build/html/quickstart.html @@ -0,0 +1,187 @@ +<!DOCTYPE html> + +<html lang="en" data-content_root="./"> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <title>Quickstart — Semantic Router 0.0.55 documentation</title> + <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d1102ebc" /> + <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=12dfc556" /> + <script src="_static/documentation_options.js?v=b87b3bc5"></script> + <script src="_static/doctools.js?v=9a2dae69"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="search.html" /> + <link rel="prev" title="Semantic Router documentation" href="index.html" /> + + <link rel="stylesheet" href="_static/custom.css" type="text/css" /> + + + + + + </head><body> + + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + + + <div class="body" role="main"> + + <section id="quickstart"> +<h1>Quickstart<a class="headerlink" href="#quickstart" title="Link to this heading">¶</a></h1> +<p>To get started with <em>semantic-router</em> we install it like so:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">qU</span> <span class="n">semantic</span><span class="o">-</span><span class="n">router</span> +</pre></div> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>If wanting to use a fully local version of semantic router you can use <code class="docutils literal notranslate"><span class="pre">HuggingFaceEncoder</span></code> and <code class="docutils literal notranslate"><span class="pre">LlamaCppLLM</span></code> (<code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-qU</span> <span class="pre">"semantic-router[local]"</span></code>, see <a class="reference external" href="https://github.com/aurelio-labs/semantic-router/blob/main/docs/05-local-execution.ipynb">here</a>). To use the <code class="docutils literal notranslate"><span class="pre">HybridRouteLayer</span></code> you must <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-qU</span> <span class="pre">"semantic-router[hybrid]"</span></code>.</p> +</div> +<p>We begin by defining a set of <code class="docutils literal notranslate"><span class="pre">Route</span></code> objects. These are the decision paths that the semantic router can decide to use, let’s try two simple routes for now — one for talk on <em>politics</em> and another for <em>chitchat</em>:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">semantic_router</span> <span class="kn">import</span> <span class="n">Route</span> + +<span class="c1"># we could use this as a guide for our chatbot to avoid political conversations</span> +<span class="n">politics</span> <span class="o">=</span> <span class="n">Route</span><span class="p">(</span> + <span class="n">name</span><span class="o">=</span><span class="s2">"politics"</span><span class="p">,</span> + <span class="n">utterances</span><span class="o">=</span><span class="p">[</span> + <span class="s2">"isn't politics the best thing ever"</span><span class="p">,</span> + <span class="s2">"why don't you tell me about your political opinions"</span><span class="p">,</span> + <span class="s2">"don't you just love the president"</span><span class="p">,</span> + <span class="s2">"they're going to destroy this country!"</span><span class="p">,</span> + <span class="s2">"they will save the country!"</span><span class="p">,</span> + <span class="p">],</span> +<span class="p">)</span> + +<span class="c1"># this could be used as an indicator to our chatbot to switch to a more</span> +<span class="c1"># conversational prompt</span> +<span class="n">chitchat</span> <span class="o">=</span> <span class="n">Route</span><span class="p">(</span> + <span class="n">name</span><span class="o">=</span><span class="s2">"chitchat"</span><span class="p">,</span> + <span class="n">utterances</span><span class="o">=</span><span class="p">[</span> + <span class="s2">"how's the weather today?"</span><span class="p">,</span> + <span class="s2">"how are things going?"</span><span class="p">,</span> + <span class="s2">"lovely weather today"</span><span class="p">,</span> + <span class="s2">"the weather is horrendous"</span><span class="p">,</span> + <span class="s2">"let's go to the chippy"</span><span class="p">,</span> + <span class="p">],</span> +<span class="p">)</span> + +<span class="c1"># we place both of our decisions together into single list</span> +<span class="n">routes</span> <span class="o">=</span> <span class="p">[</span><span class="n">politics</span><span class="p">,</span> <span class="n">chitchat</span><span class="p">]</span> +</pre></div> +</div> +<p>We have our routes ready, now we initialize an embedding / encoder model. We currently support a <code class="docutils literal notranslate"><span class="pre">CohereEncoder</span></code> and <code class="docutils literal notranslate"><span class="pre">OpenAIEncoder</span></code> — more encoders will be added soon. To initialize them we do:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span> +<span class="kn">from</span> <span class="nn">semantic_router.encoders</span> <span class="kn">import</span> <span class="n">CohereEncoder</span><span class="p">,</span> <span class="n">OpenAIEncoder</span> + +<span class="c1"># for Cohere</span> +<span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"COHERE_API_KEY"</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"<YOUR_API_KEY>"</span> +<span class="n">encoder</span> <span class="o">=</span> <span class="n">CohereEncoder</span><span class="p">()</span> + +<span class="c1"># or for OpenAI</span> +<span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"OPENAI_API_KEY"</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"<YOUR_API_KEY>"</span> +<span class="n">encoder</span> <span class="o">=</span> <span class="n">OpenAIEncoder</span><span class="p">()</span> +</pre></div> +</div> +<p>With our <code class="docutils literal notranslate"><span class="pre">routes</span></code> and <code class="docutils literal notranslate"><span class="pre">encoder</span></code> defined we now create a <code class="docutils literal notranslate"><span class="pre">RouteLayer</span></code>. The route layer handles our semantic decision making.</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">semantic_router.layer</span> <span class="kn">import</span> <span class="n">RouteLayer</span> + +<span class="n">rl</span> <span class="o">=</span> <span class="n">RouteLayer</span><span class="p">(</span><span class="n">encoder</span><span class="o">=</span><span class="n">encoder</span><span class="p">,</span> <span class="n">routes</span><span class="o">=</span><span class="n">routes</span><span class="p">)</span> +</pre></div> +</div> +<p>We can now use our route layer to make super fast decisions based on user queries. Let’s try with two queries that should trigger our route decisions:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rl</span><span class="p">(</span><span class="s2">"don't you love politics?"</span><span class="p">)</span><span class="o">.</span><span class="n">name</span> +</pre></div> +</div> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">Out</span><span class="p">]:</span> <span class="s1">'politics'</span> +</pre></div> +</div> +<p>Correct decision, let’s try another:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rl</span><span class="p">(</span><span class="s2">"how's the weather today?"</span><span class="p">)</span><span class="o">.</span><span class="n">name</span> +</pre></div> +</div> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">Out</span><span class="p">]:</span> <span class="s1">'chitchat'</span> +</pre></div> +</div> +<p>We get both decisions correct! Now lets try sending an unrelated query:</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rl</span><span class="p">(</span><span class="s2">"I'm interested in learning about llama 2"</span><span class="p">)</span><span class="o">.</span><span class="n">name</span> +</pre></div> +</div> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">Out</span><span class="p">]:</span> +</pre></div> +</div> +<p>In this case, no decision could be made as we had no matches — so our route layer returned <code class="docutils literal notranslate"><span class="pre">None</span></code>!</p> +</section> + + + </div> + + </div> + </div> + <div class="sphinxsidebar" role="navigation" aria-label="Main"> + <div class="sphinxsidebarwrapper"> +<h1 class="logo"><a href="index.html">Semantic Router</a></h1> + + + + + + + + +<h3>Navigation</h3> +<p class="caption" role="heading"><span class="caption-text">Contents:</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Quickstart</a></li> +</ul> + +<div class="relations"> +<h3>Related Topics</h3> +<ul> + <li><a href="index.html">Documentation overview</a><ul> + <li>Previous: <a href="index.html" title="previous chapter">Semantic Router documentation</a></li> + </ul></li> +</ul> +</div> +<search id="searchbox" style="display: none" role="search"> + <h3 id="searchlabel">Quick search</h3> + <div class="searchformwrapper"> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/> + <input type="submit" value="Go" /> + </form> + </div> +</search> +<script>document.getElementById('searchbox').style.display = "block"</script> + + + + + + + + + </div> + </div> + <div class="clearer"></div> + </div> + <div class="footer"> + ©2024, Aurelio AI. + + | + Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a> + & <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a> + + | + <a href="_sources/quickstart.rst.txt" + rel="nofollow">Page source</a> + </div> + + + + + </body> +</html> \ No newline at end of file diff --git a/docs/build/html/search.html b/docs/build/html/search.html index 723964c26a6b64abf1be42e0cc00259a7c96e8a4..19511ba746f32d3ba0567197713ef588183ffcd8 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -80,6 +80,10 @@ <h3>Navigation</h3> +<p class="caption" role="heading"><span class="caption-text">Contents:</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li> +</ul> <div class="relations"> <h3>Related Topics</h3> diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index d37a819ce7a73ae35c8ab750cd1a9f8ff24bb700..e81afba0e0d9e19467f3d3a7219e021216b53099 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Semantic Router documentation": [[0, null]]}, "docnames": ["index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"add": 0, "content": 0, "detail": 0, "restructuredtext": 0, "see": 0, "syntax": 0, "us": 0, "your": 0}, "titles": ["Semantic Router documentation"], "titleterms": {"document": 0, "router": 0, "semant": 0}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Contents:": [[0, null]], "Quickstart": [[1, null]], "Semantic Router documentation": [[0, null]]}, "docnames": ["index", "quickstart"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["index.rst", "quickstart.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": 1, "2": 1, "If": 1, "In": 1, "The": [0, 1], "These": 1, "To": 1, "With": 1, "about": 1, "ad": 1, "add": [], "agent": 0, "also": 0, "an": 1, "anoth": 1, "ar": 1, "avoid": 1, "base": 1, "begin": 1, "best": 1, "both": 1, "can": 1, "case": 1, "chatbot": 1, "chippi": 1, "chitchat": 1, "coher": [0, 1], "cohere_api_kei": 1, "cohereencod": 1, "content": [], "convers": 1, "correct": 1, "could": 1, "countri": 1, "creat": 1, "current": 1, "decid": 1, "decis": [0, 1], "defin": 1, "destroi": 1, "detail": [], "do": 1, "don": 1, "easi": 0, "embed": 1, "encod": [0, 1], "environ": 1, "even": 0, "ever": 1, "face": 0, "fast": 1, "fastemb": 0, "from": 1, "fulli": 1, "gener": 0, "get": 1, "go": 1, "guid": 1, "had": 1, "handl": 1, "have": 1, "here": 1, "horrend": 1, "how": 1, "hug": 0, "huggingfaceencod": 1, "hybrid": 1, "hybridroutelay": 1, "i": [0, 1], "import": 1, "includ": 0, "indic": 1, "initi": 1, "instal": 1, "integr": 0, "interest": 1, "isn": 1, "just": 1, "layer": [0, 1], "learn": 1, "let": 1, "like": 1, "list": 1, "llama": 1, "llamacppllm": 1, "llm": 0, "local": 1, "love": 1, "m": 1, "made": 1, "magic": 0, "make": [0, 1], "match": 1, "me": 1, "mean": 0, "modal": 0, "model": 1, "more": [0, 1], "multi": 0, "must": 1, "name": 1, "none": 1, "now": 1, "o": 1, "object": 1, "one": 1, "openai": [0, 1], "openai_api_kei": 1, "openaiencod": 1, "opinion": 1, "our": [0, 1], "out": 1, "path": 1, "pinecon": 0, "pip": 1, "place": 1, "polit": 1, "presid": 1, "prompt": 1, "qdrant": 0, "qu": 1, "queri": 1, "quickstart": 0, "rather": 0, "re": 1, "readi": 1, "request": 0, "restructuredtext": [], "return": 1, "rl": 1, "rout": [0, 1], "routelay": 1, "router": 1, "save": 1, "see": 1, "semant": 1, "semantic_rout": 1, "send": 1, "set": 1, "should": 1, "simpl": 1, "singl": 1, "slow": 0, "so": 1, "soon": 1, "space": 0, "start": 1, "super": 1, "superfast": 0, "support": [0, 1], "switch": 1, "syntax": [], "t": 1, "talk": 1, "tell": 1, "than": 0, "thei": 1, "them": 1, "thi": 1, "thing": 1, "those": 0, "todai": 1, "togeth": 1, "tool": 0, "trigger": 1, "try": 1, "two": 1, "unrel": 1, "us": [0, 1], "user": 1, "utter": [0, 1], "vector": 0, "version": 1, "wait": 0, "want": 1, "we": [0, 1], "weather": 1, "why": 1, "you": 1, "your": [0, 1], "your_api_kei": 1}, "titles": ["Semantic Router documentation", "Quickstart"], "titleterms": {"content": 0, "document": 0, "quickstart": 1, "router": 0, "semant": 0}}) \ No newline at end of file