{"id":27005675,"url":"https://github.com/relevanceai/relevance-js-sdk","last_synced_at":"2025-04-04T07:17:06.408Z","repository":{"id":46043248,"uuid":"421602206","full_name":"RelevanceAI/relevance-js-sdk","owner":"RelevanceAI","description":"Vector Database by Relevance AI. Fast and simple with support for chaining.","archived":false,"fork":false,"pushed_at":"2023-12-13T00:10:01.000Z","size":1927,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-29T14:04:28.635Z","etag":null,"topics":["embeddings","javascript","nodejs","vector-database","vectors"],"latest_commit_sha":null,"homepage":"https://relevanceai.com/vector-database","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RelevanceAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-10-26T22:28:25.000Z","updated_at":"2024-07-16T15:58:37.000Z","dependencies_parsed_at":"2023-12-13T01:26:33.945Z","dependency_job_id":"08215a83-2be7-40c8-b4a6-539d2edbeb6b","html_url":"https://github.com/RelevanceAI/relevance-js-sdk","commit_stats":{"total_commits":203,"total_committers":6,"mean_commits":"33.833333333333336","dds":"0.28078817733990147","last_synced_commit":"e687e07762876a7c0cb4ae37943a8607f14922b7"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RelevanceAI%2Frelevance-js-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RelevanceAI%2Frelevance-js-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RelevanceAI%2Frelevance-js-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RelevanceAI%2Frelevance-js-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RelevanceAI","download_url":"https://codeload.github.com/RelevanceAI/relevance-js-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247135126,"owners_count":20889421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embeddings","javascript","nodejs","vector-database","vectors"],"created_at":"2025-04-04T07:17:05.241Z","updated_at":"2025-04-04T07:17:06.403Z","avatar_url":"https://github.com/RelevanceAI.png","language":"TypeScript","readme":"# relevance-js-sdk\nInstall with npm using:\n```\nnpm i @relevanceai/dataset\n```\n## Features\n- Node and Browser support\n- Typescript definitions for almost all [relevanceai.com](https://relevanceai.com/) apis\n- Insert millions of documents with one function call\n- Our SearchBuilder makes searching, filtering, and aggregating your data simple\n# Getting started\nGet started by creating an account in [cloud.relevanceai.com](https://cloud.relevanceai.com) - select the Vector Database onboarding option. Once set up you can fetch your API key and use the below snippet.\n\n```javascript\nimport {Client,QueryBuilder} from \"@relevanceai/dataset\";\n\nconst discovery = new Client({\n  project: '',\n  api_key: '',\n  endpoint: ''\n});\nconst dataset = discovery.dataset('1000-movies');\n\nconst movies = [{ title: 'Lord of the Rings: The Fellowship of the Ring', grenre: 'action', budget: 100 }, ...]\nawait dataset.insertDocuments(movies, [{ model_name: 'text-embedding-ada-002', field: 'title' }]);\n\nconst {results} = await dataset.search(QueryBuilder().vector('title_vector_', { query: 'LOTR', model: 'text-embeddings-ada-002' }));\n```\n## Set up your credentials\n### Option 1 - Use environment variables\nFirst, set environment variables in your shell before you run your code. \n\nset RELEVANCE_PROJECT to your project name.\n\nset RELEVANCE_API_KEY to your api key.\nfor more information, view the docs here: [Authorization docs](https://discovery.relevanceai.com/reference/api-usage)\n\nHeres a template to copy and paste in for linux environments:\n```bash\nexport RELEVANCE_PROJECT=#########\nexport RELEVANCE_API_KEY=#########\n```\nThe SDK will use these variables when making api calls. You can then initialise your client like this:\n```javascript\nimport {Client} from \"@relevanceai/dataset\";\nconst client = new Client({});\n```\n### Option 2 - Passing them in code.\n```javascript\nimport {Client} from \"@relevanceai/dataset\";\nconst client = new Client({\n  project:'########',\n  api_key:'########',\n});\n```\n# Examples\n### You can import builders and type definitions like this\n```javascript\nimport {QueryBuilder,Client,BulkInsertOutput} from \"@relevanceai/dataset\";\n```\n## Insert millions of items with one function call\n```javascript\nconst discovery = new Client({ ... });\nconst dataset = discovery.dataset('tshirts-prod');\n // Here we create some demo data. Replace this with your real data\nconst fakeVector = [];\nfor (let i = 0; i \u003c 768; i++) fakeVector.push(1);\nconst tshirtsData = [];\nfor (let i = 0; i \u003c 10000; i++) {\n  tshirtsData.push({_id:`tshirt-${i}1`,color:'red',price:i/1000,'title-fake_vector_':fakeVector});\n  tshirtsData.push({_id:`tshirt-${i}2`,color:'blue',price:i/1000});\n  tshirtsData.push({_id:`tshirt-${i}3`,color:'orange',price:i/1000});\n}\nconst res = await dataset.insertDocuments(tshirtsData,{batchSize:10000});\n```\n### insertDocuments will output:\n```javascript\n{\"inserted\":30000,\"failed_documents\":[]}\n```\n## Text Search and Vector Search\n```javascript\nconst builder = QueryBuilder();\nbuilder.query('red').text().vector('title-fake_vector_',0.5).minimumRelevance(0.1);\n// .text() searches all fields. alternatively, use .text(field1).text(field2)... to search specific fields\nconst searchResults = await dataset.search(builder);\n```\n## Filter and retrieve items\n```javascript\nconst filters = QueryBuilder();\nfilters.match('color',['blue','red']).range('price',{lessThan:50});\nconst filteredItems = await dataset.search(filters);\n```\n### search will output:\n```javascript\n{\n  results: [\n    {\n      color: 'red',\n      price: 0,\n      insert_date_: '2021-11-16T03:14:28.509Z',\n      _id: 'tshirt-01',\n      _relevance: 0\n    }\n    ...\n  ],\n  resultsSize: 10200,\n  aggregations: {},\n  aggregates: {},\n  aggregateStats: {}\n}\n```\n\n\n```\n## Call raw api methods directly\n```javascript\nconst discovery = new Client({ ... });\nconst dataset = discovery.dataset('tshirts-prod');\nconst {body} = await dataset.apiClient.FastSearch({filters:[{match:{key:'_id',value:`tshirt-01`}}]});\nexpect((body.results[0] as any).color).toBe('red')\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelevanceai%2Frelevance-js-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frelevanceai%2Frelevance-js-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelevanceai%2Frelevance-js-sdk/lists"}