-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathindex.py
46 lines (39 loc) · 1.21 KB
/
index.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from superlinked import framework as sl
from superlinked_app import constants
class ProductSchema(sl.Schema):
id: sl.IdField
type: sl.String
category: sl.StringList
title: sl.String
description: sl.String
review_rating: sl.Float
review_count: sl.Integer
price: sl.Float
product = ProductSchema()
category_space = sl.CategoricalSimilaritySpace(
category_input=product.category,
categories=constants.CATEGORIES,
uncategorized_as_category=True,
negative_filter=-1,
)
title_space = sl.TextSimilaritySpace(
text=product.title, model="Alibaba-NLP/gte-large-en-v1.5"
)
description_space = sl.TextSimilaritySpace(
text=product.description, model="Alibaba-NLP/gte-large-en-v1.5"
)
review_rating_maximizer_space = sl.NumberSpace(
number=product.review_rating, min_value=-1.0, max_value=5.0, mode=sl.Mode.MAXIMUM
)
price_minimizer_space = sl.NumberSpace(
number=product.price, min_value=0.0, max_value=1000, mode=sl.Mode.MINIMUM
)
product_index = sl.Index(
spaces=[
title_space,
description_space,
review_rating_maximizer_space,
price_minimizer_space,
],
fields=[product.type, product.category, product.review_rating, product.price],
)