Skip to content

Commit

Permalink
Switched example to vector function
Browse files Browse the repository at this point in the history
  • Loading branch information
ankane committed Dec 13, 2023
1 parent 5a7bc48 commit d84438c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
3 changes: 2 additions & 1 deletion src/knex/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const knex = require('knex');
const { fromSql, toSql, sqlType } = require('../utils');
const { vector } = require('..');

knex.SchemaBuilder.extend('enableExtension', function(name) {
return this.raw('CREATE EXTENSION IF NOT EXISTS ??', [name]);
Expand All @@ -22,4 +23,4 @@ knex.QueryBuilder.extend('cosineDistance', function(column, value) {
return this.client.raw('?? <=> ?', [column, toSql(value)]);
});

module.exports = {fromSql, toSql};
module.exports = {vector, fromSql, toSql};
3 changes: 1 addition & 2 deletions src/objection/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
require('../knex');
const { vector } = require('..');
const { vector } = require('../knex');
const { raw } = require('objection');

function l2Distance(column, value) {
Expand Down
14 changes: 7 additions & 7 deletions tests/knex/index.test.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Knex from 'knex';
import pgvector from 'pgvector/knex';
import { vector } from 'pgvector/knex';

test('example', async () => {
const knex = Knex({
Expand All @@ -15,9 +15,9 @@ test('example', async () => {
});

const newItems = [
{embedding: pgvector.toSql([1, 1, 1])},
{embedding: pgvector.toSql([2, 2, 2])},
{embedding: pgvector.toSql([1, 1, 2])}
{embedding: vector([1, 1, 1])},
{embedding: vector([2, 2, 2])},
{embedding: vector([1, 1, 2])}
];
await knex('knex_items').insert(newItems);

Expand All @@ -26,9 +26,9 @@ test('example', async () => {
.orderBy(knex.l2Distance('embedding', [1, 1, 1]))
.limit(5);
expect(items.map(v => v.id)).toStrictEqual([1, 3, 2]);
expect(pgvector.fromSql(items[0].embedding)).toStrictEqual([1, 1, 1]);
expect(pgvector.fromSql(items[1].embedding)).toStrictEqual([1, 1, 2]);
expect(pgvector.fromSql(items[2].embedding)).toStrictEqual([2, 2, 2]);
expect(vector(items[0].embedding).toArray()).toStrictEqual([1, 1, 1]);
expect(vector(items[1].embedding).toArray()).toStrictEqual([1, 1, 2]);
expect(vector(items[2].embedding).toArray()).toStrictEqual([2, 2, 2]);

// max inner product
items = await knex('knex_items')
Expand Down

0 comments on commit d84438c

Please sign in to comment.