relevance js sdk
1.0.0
Installieren Sie mit NPM mit:
npm i @relevanceai/dataset
Erstellen Sie mit dem Erstellen eines Kontos in Cloud.relevanceAi.com - Wählen Sie die Option Vector Database Onboarding aus. Sobald Sie eingerichtet sind, können Sie Ihre API -Taste abrufen und den folgenden Snippet verwenden.
import { Client , QueryBuilder } from "@relevanceai/dataset" ;
const discovery = new Client ( {
project : '' ,
api_key : '' ,
endpoint : ''
} ) ;
const dataset = discovery . dataset ( '1000-movies' ) ;
const movies = [ { title : 'Lord of the Rings: The Fellowship of the Ring' , grenre : 'action' , budget : 100 } , ... ]
await dataset . insertDocuments ( movies , [ { model_name : 'text-embedding-ada-002' , field : 'title' } ] ) ;
const { results } = await dataset . search ( QueryBuilder ( ) . vector ( 'title_vector_' , { query : 'LOTR' , model : 'text-embeddings-ada-002' } ) ) ; Setzen Sie zunächst Umgebungsvariablen in Ihrer Shell, bevor Sie Ihren Code ausführen.
Setzen Sie Relevance_Project in Ihren Projektnamen.
Setzen Sie die Relevanz_API_Key auf Ihre API -Taste. Weitere Informationen finden Sie in den Dokumenten: Autorisierungsdokumente
Hier ist eine Vorlage zum Kopieren und Einfügen für Linux -Umgebungen:
export RELEVANCE_PROJECT= # ########
export RELEVANCE_API_KEY= # ########Das SDK verwendet diese Variablen, wenn sie API -Anrufe tätigen. Sie können dann Ihren Kunden wie folgt initialisieren:
import { Client } from "@relevanceai/dataset" ;
const client = new Client ( { } ) ; import { Client } from "@relevanceai/dataset" ;
const client = new Client ( {
project : '########' ,
api_key : '########' ,
} ) ; import { QueryBuilder , Client , BulkInsertOutput } from "@relevanceai/dataset" ; const discovery = new Client ( { ... } ) ;
const dataset = discovery . dataset ( 'tshirts-prod' ) ;
// Here we create some demo data. Replace this with your real data
const fakeVector = [ ] ;
for ( let i = 0 ; i < 768 ; i ++ ) fakeVector . push ( 1 ) ;
const tshirtsData = [ ] ;
for ( let i = 0 ; i < 10000 ; i ++ ) {
tshirtsData . push ( { _id : `tshirt- ${ i } 1` , color : 'red' , price : i / 1000 , 'title-fake_vector_' : fakeVector } ) ;
tshirtsData . push ( { _id : `tshirt- ${ i } 2` , color : 'blue' , price : i / 1000 } ) ;
tshirtsData . push ( { _id : `tshirt- ${ i } 3` , color : 'orange' , price : i / 1000 } ) ;
}
const res = await dataset . insertDocuments ( tshirtsData , { batchSize : 10000 } ) ; { "inserted" : 30000 , "failed_documents" : [ ] } const builder = QueryBuilder ( ) ;
builder . query ( 'red' ) . text ( ) . vector ( 'title-fake_vector_' , 0.5 ) . minimumRelevance ( 0.1 ) ;
// .text() searches all fields. alternatively, use .text(field1).text(field2)... to search specific fields
const searchResults = await dataset . search ( builder ) ; const filters = QueryBuilder ( ) ;
filters . match ( 'color' , [ 'blue' , 'red' ] ) . range ( 'price' , { lessThan : 50 } ) ;
const filteredItems = await dataset . search ( filters ) ; {
results : [
{
color : 'red' ,
price : 0 ,
insert_date_ : '2021-11-16T03:14:28.509Z' ,
_id : 'tshirt-01' ,
_relevance : 0
}
. . .
] ,
resultsSize : 10200 ,
aggregations : { } ,
aggregates : { } ,
aggregateStats : { }
} ## Call raw api methods directly
```javascript
const discovery = new Client({ ... });
const dataset = discovery.dataset('tshirts-prod');
const {body} = await dataset.apiClient.FastSearch({filters:[{match:{key:'_id',value:`tshirt-01`}}]});
expect((body.results[0] as any).color).toBe('red')