Fluvio#
InfinyOn Fluvio - открытая платформа, написанная на языке программирования Rust для высокоскоростной обработки данных в реальном времени. Она облачная по природе и предназначена для работы с любым типом инфраструктуры, от аппаратного обеспечения до контейнерных платформ.
Использование совместно с Vector DB#
С помощью коннектора Fluvio можно передавать записи из тем Fluvio в коллекции Vector DB, используя гарантии доставки и высокую пропускную способность Fluvio.
Предварительные условия#
Установка Fluvio. Можно обратиться к руководству быстрого старта Fluvio за инструкциями.
Сервер Vector DB для подключения. Можно настроить локальный экземпляр.
Загрузка коннектора#
Выполните следующие команды после настройки Fluvio.
cdk hub download qdrant/qdrant-sink@0.1.0
Пример конфигурации#
config.yaml:
apiVersion: 0.1.0
meta:
version: 0.1.0
name: my-qdrant-connector
type: qdrant-sink
topic: topic-name
secrets:
- name: QDRANT_API_KEY
qdrant:
url: https://xyz-example.eu-central.aws.cloud.qdrant.io:6334
api_key: "${{ secrets.QDRANT_API_KEY }}"
secrets.txt:
QDRANT_API_KEY=<SOME_API_KEY>
Запуск#
cdk deploy start --ipkg qdrant-qdrant-sink-0.1.0.ipkg -c config.yaml --secrets secrets.txt
Генерация сообщений#
Теперь можно выполнить следующее, чтобы создать сообщения, которые будут записаны в Vector DB.
fluvio produce topic-name
Форматы сообщений#
Этот коннектор приемника поддерживает сообщения с плотными/разреженными/многомерными векторами.
Безымянный/вектор по умолчанию#
Справка: Создание коллекции с вектором по умолчанию.
{
"collection_name": "{collection_name}",
"id": 1,
"vectors": [
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8
],
"payload": {
"name": "fluvio",
"description": "Solution for distributed stream processing",
"url": "https://www.fluvio.io/"
}
}
Именованные многомерные векторы#
Справка: Создание коллекции с несколькими векторами.
{
"collection_name": "{collection_name}",
"id": 1,
"vectors": {
"some-dense": [
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8
],
"some-other-dense": [
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8
]
},
"payload": {
"name": "fluvio",
"description": "Solution for distributed stream processing",
"url": "https://www.fluvio.io/"
}
}
Разреженные векторы#
Справка: Создание коллекции с разреженными векторами.
{
"collection_name": "{collection_name}",
"id": 1,
"vectors": {
"some-sparse": {
"indices": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"values": [
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8,
0.9,
1.0
]
}
},
"payload": {
"name": "fluvio",
"description": "Solution for distributed stream processing",
"url": "https://www.fluvio.io/"
}
}
Многомерный вектор#
{
"collection_name": "{collection_name}",
"id": 1,
"vectors": {
"some-multi": [
[
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8,
0.9,
1.0
],
[
1.0,
0.9,
0.8,
0.5,
0.4,
0.8,
0.6,
0.4,
0.2,
0.1
]
]
},
"payload": {
"name": "fluvio",
"description": "Solution for distributed stream processing",
"url": "https://www.fluvio.io/"
}
}
Комбинация именованных плотных и разреженных векторов#
Справка:
{
"collection_name": "{collection_name}",
"id": "a10435b5-2a58-427a-a3a0-a5d845b147b7",
"vectors": {
"some-other-dense": [
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8
],
"some-sparse": {
"indices": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"values": [
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8,
0.9,
1.0
]
}
},
"payload": {
"name": "fluvio",
"description": "Solution for distributed stream processing",
"url": "https://www.fluvio.io/"
}
}