@lancedb/lancedb β’ Docs
@lancedb/lancedb / embedding / EmbeddingFunction
Class: abstract
EmbeddingFunction<T, M>
An embedding function that automatically creates vector representation for a given column.
Extended by
Type Parameters
β’ T = any
β’ M extends FunctionOptions
= FunctionOptions
Constructors
new EmbeddingFunction()
Returns
EmbeddingFunction
<T
, M
>
Methods
computeQueryEmbeddings()
Compute the embeddings for a single query
Parameters
- data:
T
Returns
Promise
<number
[] | Float32Array
| Float64Array
>
computeSourceEmbeddings()
Creates a vector representation for the given values.
Parameters
- data:
T
[]
Returns
Promise
<number
[][] | Float32Array
[] | Float64Array
[]>
embeddingDataType()
The datatype of the embeddings
Returns
Float
<Floats
>
init()?
Returns
Promise
<void
>
ndims()
The number of dimensions of the embeddings
Returns
undefined
| number
sourceField()
sourceField(optionsOrDatatype): [DataType<Type, any>, Map<string, EmbeddingFunction<any, FunctionOptions>>]
sourceField is used in combination with LanceSchema
to provide a declarative data model
Parameters
- optionsOrDatatype:
DataType
<Type
,any
> |Partial
<FieldOptions
<DataType
<Type
,any
>>> The options for the field or the datatype
Returns
[DataType
<Type
, any
>, Map
<string
, EmbeddingFunction
<any
, FunctionOptions
>>]
See
lancedb.LanceSchema
toJSON()
Convert the embedding function to a JSON object It is used to serialize the embedding function to the schema It's important that any object returned by this method contains all the necessary information to recreate the embedding function
It should return the same object that was passed to the constructor If it does not, the embedding function will not be able to be recreated, or could be recreated incorrectly
Returns
Partial
<M
>
Example
class MyEmbeddingFunction extends EmbeddingFunction {
constructor(options: {model: string, timeout: number}) {
super();
this.model = options.model;
this.timeout = options.timeout;
}
toJSON() {
return {
model: this.model,
timeout: this.timeout,
};
}
vectorField()
vectorField(optionsOrDatatype?): [DataType<Type, any>, Map<string, EmbeddingFunction<any, FunctionOptions>>]
vectorField is used in combination with LanceSchema
to provide a declarative data model
Parameters
- optionsOrDatatype?:
DataType
<Type
,any
> |Partial
<FieldOptions
<DataType
<Type
,any
>>>
Returns
[DataType
<Type
, any
>, Map
<string
, EmbeddingFunction
<any
, FunctionOptions
>>]
See
lancedb.LanceSchema