relevance js sdk
1.0.0
使用NPM安裝:
npm i @relevanceai/dataset
通過在cloud.relevanceai.com中創建一個帳戶開始開始 - 選擇矢量數據庫入門選項。設置後,您可以獲取API鍵並使用以下片段。
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' } ) ) ; 首先,在運行代碼之前,請在外殼中設置環境變量。
將相關設置設置為您的項目名稱。
將相關性_api_key設置為您的API鍵。有關更多信息,請在此處查看文檔:授權文檔
這是一個模板,用於在Linux環境中復制和粘貼:
export RELEVANCE_PROJECT= # ########
export RELEVANCE_API_KEY= # ########SDK在撥打API調用時將使用這些變量。然後,您可以這樣初始化客戶:
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')