mirror of
https://github.com/qdrant/landing_page.git
synced 2026-09-28 15:38:33 +02:00
docs: Added Semantic Router integration (#733)
* docs: Semantic Router * docs: spark.md shard_key_selector option
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
---
|
||||
title: Semantic-Router
|
||||
weight: 2700
|
||||
---
|
||||
|
||||
# Semantic-Router
|
||||
|
||||
[Semantic-Router](https://www.aurelio.ai/semantic-router/) is a library to build decision-making layers for your LLMs and agents. It uses vector embeddings to make tool-use decisions rather than LLM generations, routing our requests using semantic meaning.
|
||||
|
||||
Qdrant is available as a supported index in Semantic-Router for you to ingest route data and perform retrievals.
|
||||
|
||||
## Installation
|
||||
|
||||
To use Semantic-Router with Qdrant, install the `qdrant` extra:
|
||||
|
||||
```console
|
||||
pip install semantic-router[qdrant]
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Set up `QdrantIndex` with the appropriate configurations:
|
||||
|
||||
```python
|
||||
from semantic_router.index import QdrantIndex
|
||||
|
||||
qdrant_index = QdrantIndex(
|
||||
url="https://xyz-example.eu-central.aws.cloud.qdrant.io", api_key="<your-api-key>"
|
||||
)
|
||||
```
|
||||
|
||||
Once the Qdrant index is set up with the appropriate configurations, we can pass it to the `RouteLayer`.
|
||||
|
||||
```python
|
||||
from semantic_router.layer import RouteLayer
|
||||
|
||||
RouteLayer(encoder=some_encoder, routes=some_routes, index=qdrant_index)
|
||||
```
|
||||
|
||||
## Complete Example
|
||||
|
||||
<details>
|
||||
|
||||
<summary><b>Click to expand</b></summary>
|
||||
|
||||
```python
|
||||
import os
|
||||
|
||||
from semantic_router import Route
|
||||
from semantic_router.encoders import OpenAIEncoder
|
||||
from semantic_router.index import QdrantIndex
|
||||
from semantic_router.layer import RouteLayer
|
||||
|
||||
# we could use this as a guide for our chatbot to avoid political conversations
|
||||
politics = Route(
|
||||
name="politics value",
|
||||
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]
|
||||
|
||||
os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
|
||||
encoder = OpenAIEncoder()
|
||||
|
||||
rl = RouteLayer(
|
||||
encoder=encoder,
|
||||
routes=routes,
|
||||
index=QdrantIndex(location=":memory:"),
|
||||
)
|
||||
|
||||
print(rl("What have you been upto?").name)
|
||||
```
|
||||
|
||||
This returns:
|
||||
|
||||
```console
|
||||
[Out]: 'chitchat'
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 📚 Further Reading
|
||||
|
||||
- Semantic-Router [Documentation](https://github.com/aurelio-labs/semantic-router/tree/main/docs)
|
||||
- Semantic-Router [Video Course](https://www.aurelio.ai/course/semantic-router)
|
||||
@@ -244,5 +244,6 @@ Qdrant supports all the Spark data types, and the appropriate data types are map
|
||||
| `sparse_vector_index_fields` | Comma-separated names of columns holding the sparse vector indices. | `ArrayType(IntegerType)` | ❌ |
|
||||
| `sparse_vector_value_fields` | Comma-separated names of columns holding the sparse vector values. | `ArrayType(FloatType)` | ❌ |
|
||||
| `sparse_vector_names` | Comma-separated names of the sparse vectors in the collection. | - | ❌ |
|
||||
| `shard_key_selector` | Comma-separated names of custom shard keys to use during upsert. | - | ❌ |
|
||||
|
||||
For more information, be sure to check out the [Qdrant-Spark GitHub repository](https://github.com/qdrant/qdrant-spark). The Apache Spark guide is available [here](https://spark.apache.org/docs/latest/quick-start.html). Happy data processing!
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 611 KiB |
Reference in New Issue
Block a user