docs: minor updates for js migration guides (#1451)

Co-authored-by: Will Jones <willjones127@gmail.com>
This commit is contained in:
Cory Grinstead
2024-07-22 12:26:49 -05:00
committed by GitHub
parent 2276b114c5
commit 69295548cc
51 changed files with 2353 additions and 1853 deletions

View File

@@ -0,0 +1,29 @@
[**@lancedb/lancedb**](../../README.md) • **Docs**
***
[@lancedb/lancedb](../../globals.md) / embedding
# embedding
## Index
### Classes
- [EmbeddingFunction](classes/EmbeddingFunction.md)
- [EmbeddingFunctionRegistry](classes/EmbeddingFunctionRegistry.md)
- [OpenAIEmbeddingFunction](classes/OpenAIEmbeddingFunction.md)
### Interfaces
- [EmbeddingFunctionConfig](interfaces/EmbeddingFunctionConfig.md)
### Type Aliases
- [OpenAIOptions](type-aliases/OpenAIOptions.md)
### Functions
- [LanceSchema](functions/LanceSchema.md)
- [getRegistry](functions/getRegistry.md)
- [register](functions/register.md)

View File

@@ -0,0 +1,162 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / EmbeddingFunction
# Class: `abstract` EmbeddingFunction&lt;T, M&gt;
An embedding function that automatically creates vector representation for a given column.
## Extended by
- [`OpenAIEmbeddingFunction`](OpenAIEmbeddingFunction.md)
## Type Parameters
**T** = `any`
**M** *extends* `FunctionOptions` = `FunctionOptions`
## Constructors
### new EmbeddingFunction()
> **new EmbeddingFunction**&lt;`T`, `M`&gt;(): [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`T`, `M`&gt;
#### Returns
[`EmbeddingFunction`](EmbeddingFunction.md)&lt;`T`, `M`&gt;
## Methods
### computeQueryEmbeddings()
> **computeQueryEmbeddings**(`data`): `Promise`&lt;`number`[] \| `Float32Array` \| `Float64Array`&gt;
Compute the embeddings for a single query
#### Parameters
**data**: `T`
#### Returns
`Promise`&lt;`number`[] \| `Float32Array` \| `Float64Array`&gt;
***
### computeSourceEmbeddings()
> `abstract` **computeSourceEmbeddings**(`data`): `Promise`&lt;`number`[][] \| `Float32Array`[] \| `Float64Array`[]&gt;
Creates a vector representation for the given values.
#### Parameters
**data**: `T`[]
#### Returns
`Promise`&lt;`number`[][] \| `Float32Array`[] \| `Float64Array`[]&gt;
***
### embeddingDataType()
> `abstract` **embeddingDataType**(): `Float`&lt;`Floats`&gt;
The datatype of the embeddings
#### Returns
`Float`&lt;`Floats`&gt;
***
### ndims()
> **ndims**(): `undefined` \| `number`
The number of dimensions of the embeddings
#### Returns
`undefined` \| `number`
***
### sourceField()
> **sourceField**(`optionsOrDatatype`): [`DataType`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
sourceField is used in combination with `LanceSchema` to provide a declarative data model
#### Parameters
**optionsOrDatatype**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;`FieldOptions`&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
The options for the field or the datatype
#### Returns
[`DataType`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
#### See
lancedb.LanceSchema
***
### toJSON()
> `abstract` **toJSON**(): `Partial`&lt;`M`&gt;
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`&lt;`M`&gt;
#### Example
```ts
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`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
vectorField is used in combination with `LanceSchema` to provide a declarative data model
#### Parameters
**optionsOrDatatype?**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;`FieldOptions`&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
#### Returns
[`DataType`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
#### See
lancedb.LanceSchema

View File

@@ -0,0 +1,124 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / EmbeddingFunctionRegistry
# Class: EmbeddingFunctionRegistry
This is a singleton class used to register embedding functions
and fetch them by name. It also handles serializing and deserializing.
You can implement your own embedding function by subclassing EmbeddingFunction
or TextEmbeddingFunction and registering it with the registry
## Constructors
### new EmbeddingFunctionRegistry()
> **new EmbeddingFunctionRegistry**(): [`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
#### Returns
[`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
## Methods
### functionToMetadata()
> **functionToMetadata**(`conf`): `Record`&lt;`string`, `any`&gt;
#### Parameters
**conf**: [`EmbeddingFunctionConfig`](../interfaces/EmbeddingFunctionConfig.md)
#### Returns
`Record`&lt;`string`, `any`&gt;
***
### get()
> **get**&lt;`T`, `Name`&gt;(`name`): `Name` *extends* `"openai"` ? `EmbeddingFunctionCreate`&lt;[`OpenAIEmbeddingFunction`](OpenAIEmbeddingFunction.md)&gt; : `undefined` \| `EmbeddingFunctionCreate`&lt;`T`&gt;
Fetch an embedding function by name
#### Type Parameters
**T** *extends* [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`unknown`, `FunctionOptions`&gt;
**Name** *extends* `string` = `""`
#### Parameters
**name**: `Name` *extends* `"openai"` ? `"openai"` : `string`
The name of the function
#### Returns
`Name` *extends* `"openai"` ? `EmbeddingFunctionCreate`&lt;[`OpenAIEmbeddingFunction`](OpenAIEmbeddingFunction.md)&gt; : `undefined` \| `EmbeddingFunctionCreate`&lt;`T`&gt;
***
### getTableMetadata()
> **getTableMetadata**(`functions`): `Map`&lt;`string`, `string`&gt;
#### Parameters
**functions**: [`EmbeddingFunctionConfig`](../interfaces/EmbeddingFunctionConfig.md)[]
#### Returns
`Map`&lt;`string`, `string`&gt;
***
### register()
> **register**&lt;`T`&gt;(`this`, `alias`?): (`ctor`) => `any`
Register an embedding function
#### Type Parameters
**T** *extends* `EmbeddingFunctionConstructor`&lt;[`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt; = `EmbeddingFunctionConstructor`&lt;[`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;
#### Parameters
**this**: [`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
**alias?**: `string`
#### Returns
`Function`
##### Parameters
**ctor**: `T`
##### Returns
`any`
#### Throws
Error if the function is already registered
***
### reset()
> **reset**(`this`): `void`
reset the registry to the initial state
#### Parameters
**this**: [`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
#### Returns
`void`

View File

@@ -0,0 +1,196 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / OpenAIEmbeddingFunction
# Class: OpenAIEmbeddingFunction
An embedding function that automatically creates vector representation for a given column.
## Extends
- [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`string`, `Partial`&lt;[`OpenAIOptions`](../type-aliases/OpenAIOptions.md)&gt;&gt;
## Constructors
### new OpenAIEmbeddingFunction()
> **new OpenAIEmbeddingFunction**(`options`): [`OpenAIEmbeddingFunction`](OpenAIEmbeddingFunction.md)
#### Parameters
**options**: `Partial`&lt;[`OpenAIOptions`](../type-aliases/OpenAIOptions.md)&gt; = `...`
#### Returns
[`OpenAIEmbeddingFunction`](OpenAIEmbeddingFunction.md)
#### Overrides
[`EmbeddingFunction`](EmbeddingFunction.md).[`constructor`](EmbeddingFunction.md#constructors)
## Methods
### computeQueryEmbeddings()
> **computeQueryEmbeddings**(`data`): `Promise`&lt;`number`[]&gt;
Compute the embeddings for a single query
#### Parameters
**data**: `string`
#### Returns
`Promise`&lt;`number`[]&gt;
#### Overrides
[`EmbeddingFunction`](EmbeddingFunction.md).[`computeQueryEmbeddings`](EmbeddingFunction.md#computequeryembeddings)
***
### computeSourceEmbeddings()
> **computeSourceEmbeddings**(`data`): `Promise`&lt;`number`[][]&gt;
Creates a vector representation for the given values.
#### Parameters
**data**: `string`[]
#### Returns
`Promise`&lt;`number`[][]&gt;
#### Overrides
[`EmbeddingFunction`](EmbeddingFunction.md).[`computeSourceEmbeddings`](EmbeddingFunction.md#computesourceembeddings)
***
### embeddingDataType()
> **embeddingDataType**(): `Float`&lt;`Floats`&gt;
The datatype of the embeddings
#### Returns
`Float`&lt;`Floats`&gt;
#### Overrides
[`EmbeddingFunction`](EmbeddingFunction.md).[`embeddingDataType`](EmbeddingFunction.md#embeddingdatatype)
***
### ndims()
> **ndims**(): `number`
The number of dimensions of the embeddings
#### Returns
`number`
#### Overrides
[`EmbeddingFunction`](EmbeddingFunction.md).[`ndims`](EmbeddingFunction.md#ndims)
***
### sourceField()
> **sourceField**(`optionsOrDatatype`): [`DataType`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
sourceField is used in combination with `LanceSchema` to provide a declarative data model
#### Parameters
**optionsOrDatatype**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;`FieldOptions`&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
The options for the field or the datatype
#### Returns
[`DataType`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
#### See
lancedb.LanceSchema
#### Inherited from
[`EmbeddingFunction`](EmbeddingFunction.md).[`sourceField`](EmbeddingFunction.md#sourcefield)
***
### toJSON()
> **toJSON**(): `object`
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
`object`
##### model
> **model**: `string` & `object` \| `"text-embedding-ada-002"` \| `"text-embedding-3-small"` \| `"text-embedding-3-large"`
#### Example
```ts
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,
};
}
```
#### Overrides
[`EmbeddingFunction`](EmbeddingFunction.md).[`toJSON`](EmbeddingFunction.md#tojson)
***
### vectorField()
> **vectorField**(`optionsOrDatatype`?): [`DataType`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
vectorField is used in combination with `LanceSchema` to provide a declarative data model
#### Parameters
**optionsOrDatatype?**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;`FieldOptions`&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
#### Returns
[`DataType`&lt;`Type`, `any`&gt;, `Map`&lt;`string`, [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]
#### See
lancedb.LanceSchema
#### Inherited from
[`EmbeddingFunction`](EmbeddingFunction.md).[`vectorField`](EmbeddingFunction.md#vectorfield)

View File

@@ -0,0 +1,39 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / LanceSchema
# Function: LanceSchema()
> **LanceSchema**(`fields`): `Schema`
Create a schema with embedding functions.
## Parameters
**fields**: `Record`&lt;`string`, `object` \| [`object`, `Map`&lt;`string`, [`EmbeddingFunction`](../classes/EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;]&gt;
## Returns
`Schema`
Schema
## Example
```ts
class MyEmbeddingFunction extends EmbeddingFunction {
// ...
}
const func = new MyEmbeddingFunction();
const schema = LanceSchema({
id: new Int32(),
text: func.sourceField(new Utf8()),
vector: func.vectorField(),
// optional: specify the datatype and/or dimensions
vector2: func.vectorField({ datatype: new Float32(), dims: 3}),
});
const table = await db.createTable("my_table", data, { schema });
```

View File

@@ -0,0 +1,23 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / getRegistry
# Function: getRegistry()
> **getRegistry**(): [`EmbeddingFunctionRegistry`](../classes/EmbeddingFunctionRegistry.md)
Utility function to get the global instance of the registry
## Returns
[`EmbeddingFunctionRegistry`](../classes/EmbeddingFunctionRegistry.md)
`EmbeddingFunctionRegistry` The global instance of the registry
## Example
```ts
const registry = getRegistry();
const openai = registry.get("openai").create();

View File

@@ -0,0 +1,25 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / register
# Function: register()
> **register**(`name`?): (`ctor`) => `any`
## Parameters
**name?**: `string`
## Returns
`Function`
### Parameters
**ctor**: `EmbeddingFunctionConstructor`&lt;[`EmbeddingFunction`](../classes/EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;&gt;
### Returns
`any`

View File

@@ -0,0 +1,25 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / EmbeddingFunctionConfig
# Interface: EmbeddingFunctionConfig
## Properties
### function
> **function**: [`EmbeddingFunction`](../classes/EmbeddingFunction.md)&lt;`any`, `FunctionOptions`&gt;
***
### sourceColumn
> **sourceColumn**: `string`
***
### vectorColumn?
> `optional` **vectorColumn**: `string`

View File

@@ -0,0 +1,19 @@
[**@lancedb/lancedb**](../../../README.md) • **Docs**
***
[@lancedb/lancedb](../../../globals.md) / [embedding](../README.md) / OpenAIOptions
# Type Alias: OpenAIOptions
> **OpenAIOptions**: `object`
## Type declaration
### apiKey
> **apiKey**: `string`
### model
> **model**: `EmbeddingCreateParams`\[`"model"`\]