Newer
Older
from django.conf import settings
from django.db import models
from pgvector.django import HnswIndex, VectorField
from torque.models import SearchCacheDocument
class SemanticSearchCacheDocument(models.Model):
search_cache_document = models.ForeignKey(
SearchCacheDocument,
on_delete=models.CASCADE,
related_name="semantic_documents",
)
data = models.TextField()
data_embedding = VectorField(
dimensions=getattr(settings, "SEMANTIC_SEARCH_NUM_DIMENSIONS", 768),
null=True,
)
class Meta:
indexes = [
HnswIndex(
name="data_embedding_index",
fields=["data_embedding"],
m=16,
ef_construction=64,
opclasses=["vector_cosine_ops"],
),
]