Installer avec NPM en utilisant:
npm i @relevanceai/dataset
Commencez par la création d'un compte dans cloud.relevanceai.com - Sélectionnez l'option d'intégration de la base de données vectorielle. Une fois configuré, vous pouvez récupérer votre clé API et utiliser l'extrait ci-dessous.
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' } ) ) ; Tout d'abord, définissez des variables d'environnement dans votre shell avant d'exécuter votre code.
Définissez pertinent_project avec le nom de votre projet.
Définissez Pertinence_API_KEY vers votre clé API. Pour plus d'informations, consultez les documents ici: les documents d'autorisation
Voici un modèle pour copier et coller pour les environnements Linux:
export RELEVANCE_PROJECT= # ########
export RELEVANCE_API_KEY= # ########Le SDK utilisera ces variables lors de la réalisation d'appels d'API. Vous pouvez ensuite initialiser votre client comme ceci:
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')