Перейти к основному содержанию

Documentation Index

Fetch the complete documentation index at: https://speshu.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Weaviate — open-source vector database для семантического поиска и RAG. Она хранит объекты вместе с векторами, поддерживает фильтры, hybrid search и интеграции с embedding/generative моделями. О Weaviate говорят потому, что RAG быстро упирается в хранение и поиск. Недостаточно просто получить embeddings: нужно индексировать документы, фильтровать по metadata, обновлять данные и быстро находить релевантные chunks. В статье разберём, как работает Weaviate и как использовать embeddings SpeShu.AI в режиме bring your own vectors.

Что такое weaviate

Weaviate — это база данных для vector search. В ней данные хранятся в collections. Каждый объект может иметь properties и vector. При поиске вы передаёте query vector, а Weaviate возвращает похожие объекты. Инструмент нужен для RAG, semantic search, recommendation, duplicate detection, AI-поиска по документам и hybrid retrieval. Weaviate можно запускать локально, self-hosted или использовать managed вариант.

Как работает weaviate

Пайплайн RAG с Weaviate выглядит так:
  • разбить документы на chunks;
  • создать embeddings;
  • сохранить chunk, metadata и vector в collection;
  • на запрос пользователя создать query embedding;
  • выполнить near_vector поиск;
  • передать найденный контекст в LLM.
Weaviate также умеет использовать встроенные vectorizer-модули. Но для SpeShu.AI проще и прозрачнее режим BYOV: вы сами создаёте embeddings через /embeddings и сохраняете vectors.

Что умеет weaviate

  • хранить vectors и metadata;
  • искать по semantic similarity;
  • делать hybrid search;
  • фильтровать результаты;
  • работать с collections;
  • поддерживать разные vectorizer/generative integrations;
  • масштабироваться как отдельная vector database.
Мини-кейсы: RAG по базе знаний, поиск похожих товаров, поиск по тикетам поддержки, дедупликация документов, semantic search по статьям.

weaviate на практике

Пример ниже создаёт embeddings через SpeShu.AI и кладёт vectors в локальный Weaviate.
import os
from openai import OpenAI
import weaviate
import weaviate.classes.config as wc

openai = OpenAI(
    base_url="https://speshu.ai/api/v1",
    api_key=os.environ["SPESHU_AI_API_KEY"],
)

texts = [
    "SpeShu.AI предоставляет доступ к LLM через совместимые API.",
    "Weaviate хранит векторы и metadata для семантического поиска.",
]

embeddings = openai.embeddings.create(
    model="text-embedding-3-large",
    input=texts,
).data

client = weaviate.connect_to_local()

try:
    if client.collections.exists("Article"):
        client.collections.delete("Article")

    articles = client.collections.create(
        name="Article",
        properties=[wc.Property(name="text", data_type=wc.DataType.TEXT)],
        vector_config=wc.Configure.Vectors.self_provided(),
    )

    for text, item in zip(texts, embeddings):
        articles.data.insert(properties={"text": text}, vector=item.embedding)

    query_vector = openai.embeddings.create(
        model="text-embedding-3-large",
        input="Как хранить документы для RAG?",
    ).data[0].embedding

    result = articles.query.near_vector(near_vector=query_vector, limit=2)
    for obj in result.objects:
        print(obj.properties["text"])
finally:
    client.close()
В production добавьте tenant/org metadata, фильтры доступа и обновление vectors при изменении документов.

Преимущества и недостатки weaviate

Плюсы:
  • полноценная vector database;
  • collections и metadata;
  • hybrid search;
  • self-hosted и managed варианты;
  • подходит для production RAG.
Минусы:
  • требует отдельной инфраструктуры;
  • нужно проектировать schema и metadata;
  • маленькому прототипу может хватить Chroma или in-memory store.

weaviate vs альтернативы

Weaviate vs Qdrant: оба сильные vector DB. Qdrant часто выбирают за простой API и performance-focused подход. Weaviate хорош коллекциями, модулями и hybrid-возможностями. Weaviate vs Chroma: Chroma проще для локального прототипа. Weaviate серьёзнее как отдельная база. Weaviate vs LlamaIndex: LlamaIndex — framework, Weaviate — storage/search слой.

Кому подойдёт weaviate

Weaviate подойдёт backend-командам, AI-стартапам, компаниям с большим объёмом документов, e-commerce, поддержке и внутренним knowledge base. Если RAG должен жить дольше одного демо, выбирайте полноценную vector database.

Как попробовать weaviate через SpeShu.AI

SpeShu.AI создаёт embeddings и отвечает LLM-частью:
  • не нужен VPN;
  • не нужна зарубежная карта;
  • совместимые endpoint’ы для embeddings и chat;
  • доступ к разным моделям;
  • быстрый старт через speshu.ai/profile.
Для embeddings используйте endpoint embeddings, для ответа — Chat Completions.

Заключение

Weaviate стоит использовать, когда semantic search становится частью продукта. Главный инсайт: vector database — это не просто место для embeddings, а слой доступа, фильтрации и качества retrieval.

Подключить API

Запустите интеграцию через SpeShu.AI: единый доступ к AI-моделям, без VPN и зарубежной карты