Skip to content
Snippets Groups Projects
Unverified Commit e36c59b2 authored by James Briggs's avatar James Briggs Committed by GitHub
Browse files

Merge pull request #369 from aurelio-labs/james/readthedocs-build

fix: readthedocs build
parents ef229931 e88ed2aa
No related branches found
No related tags found
No related merge requests found
...@@ -17,7 +17,7 @@ build: ...@@ -17,7 +17,7 @@ build:
# Build documentation in the "docs/" directory with Sphinx # Build documentation in the "docs/" directory with Sphinx
sphinx: sphinx:
configuration: docs/conf.py configuration: ./docs/source/conf.py
# Optionally build your docs in additional formats such as PDF and ePub # Optionally build your docs in additional formats such as PDF and ePub
# formats: # formats:
......
No preview for this file type
No preview for this file type
File added
# Sphinx build info version 1 # 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. # 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 tags: 645f666f9bcd5a90fca523b33c5a78b7
...@@ -6,12 +6,17 @@ ...@@ -6,12 +6,17 @@
Semantic Router documentation Semantic Router documentation
============================= =============================
Add your content using ``reStructuredText`` syntax. See the 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.
`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
documentation for details.
## 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:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Contents: :caption: Contents:
quickstart
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
...@@ -53,6 +53,10 @@ ...@@ -53,6 +53,10 @@
<h3>Navigation</h3> <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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.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" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" />
...@@ -32,10 +33,15 @@ ...@@ -32,10 +33,15 @@
<section id="semantic-router-documentation"> <section id="semantic-router-documentation">
<h1>Semantic Router documentation<a class="headerlink" href="#semantic-router-documentation" title="Link to this heading"></a></h1> <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 <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>
<a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html">reStructuredText</a> <p>## Integrations</p>
documentation for details.</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"> <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> </div>
</section> </section>
...@@ -56,11 +62,16 @@ documentation for details.</p> ...@@ -56,11 +62,16 @@ documentation for details.</p>
<h3>Navigation</h3> <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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>
<ul> <ul>
<li><a href="#">Documentation overview</a><ul> <li><a href="#">Documentation overview</a><ul>
<li>Next: <a href="quickstart.html" title="next chapter">Quickstart</a></li>
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
......
No preview for this file type
<!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 &#8212; 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">&quot;semantic-router[local]&quot;</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">&quot;semantic-router[hybrid]&quot;</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">&quot;politics&quot;</span><span class="p">,</span>
<span class="n">utterances</span><span class="o">=</span><span class="p">[</span>
<span class="s2">&quot;isn&#39;t politics the best thing ever&quot;</span><span class="p">,</span>
<span class="s2">&quot;why don&#39;t you tell me about your political opinions&quot;</span><span class="p">,</span>
<span class="s2">&quot;don&#39;t you just love the president&quot;</span><span class="p">,</span>
<span class="s2">&quot;they&#39;re going to destroy this country!&quot;</span><span class="p">,</span>
<span class="s2">&quot;they will save the country!&quot;</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">&quot;chitchat&quot;</span><span class="p">,</span>
<span class="n">utterances</span><span class="o">=</span><span class="p">[</span>
<span class="s2">&quot;how&#39;s the weather today?&quot;</span><span class="p">,</span>
<span class="s2">&quot;how are things going?&quot;</span><span class="p">,</span>
<span class="s2">&quot;lovely weather today&quot;</span><span class="p">,</span>
<span class="s2">&quot;the weather is horrendous&quot;</span><span class="p">,</span>
<span class="s2">&quot;let&#39;s go to the chippy&quot;</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">&quot;COHERE_API_KEY&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;&lt;YOUR_API_KEY&gt;&quot;</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">&quot;OPENAI_API_KEY&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;&lt;YOUR_API_KEY&gt;&quot;</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">&quot;don&#39;t you love politics?&quot;</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">&#39;politics&#39;</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">&quot;how&#39;s the weather today?&quot;</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">&#39;chitchat&#39;</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">&quot;I&#39;m interested in learning about llama 2&quot;</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">
&#169;2024, Aurelio AI.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <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
...@@ -80,6 +80,10 @@ ...@@ -80,6 +80,10 @@
<h3>Navigation</h3> <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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>
......
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}}) 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 \ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment