11"""All builtin functions."""
2- from typing import Annotated
2+ from typing import Annotated , Any
33
44import json
55import sentence_transformers
@@ -13,8 +13,16 @@ class SplitRecursively(op.FunctionSpec):
1313 language : str | None = None
1414
1515class SentenceTransformerEmbed (op .FunctionSpec ):
16- """Run the sentence transformer"""
16+ """
17+ `SentenceTransformerEmbed` embeds a text into a vector space using the [SentenceTransformer](https://huggingface.co/sentence-transformers) library.
18+
19+ Args:
20+
21+ model: The name of the SentenceTransformer model to use.
22+ args: Additional arguments to pass to the SentenceTransformer constructor. e.g. {"trust_remote_code": True}
23+ """
1724 model : str
25+ args : dict [str , Any ] | None = None
1826
1927@op .executor_class (gpu = True , cache = True , behavior_version = 1 )
2028class SentenceTransformerEmbedExecutor :
@@ -24,7 +32,8 @@ class SentenceTransformerEmbedExecutor:
2432 _model : sentence_transformers .SentenceTransformer
2533
2634 def analyze (self , text = None ):
27- self ._model = sentence_transformers .SentenceTransformer (self .spec .model , 3 )
35+ args = self .spec .args or {}
36+ self ._model = sentence_transformers .SentenceTransformer (self .spec .model , ** args )
2837 dim = self ._model .get_sentence_embedding_dimension ()
2938 return Annotated [list [Float32 ], Vector (dim = dim ), TypeAttr ("cocoindex.io/vector_origin_text" , json .loads (text .analyzed_value ))]
3039
0 commit comments