Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pgvector-gleam

pgvector examples for Gleam

Supports pog

Build Status

Getting Started

Follow the instructions for your database library:

pog

Enable the extension

letassertOk(_)=pog.query("CREATE EXTENSION IF NOT EXISTS vector")|>pog.execute(db)

Create a table

letassertOk(_)=pog.query("CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3))")|>pog.execute(db)

Insert vectors

letassertOk(_)=pog.query("INSERT INTO items (embedding) VALUES ($1::text::vector), ($2::text::vector)")|>pog.parameter(pog.text("[1,2,3]"))|>pog.parameter(pog.text("[4,5,6]"))|>pog.execute(db)

Get the nearest neighbors

letassertOk(response)=pog.query("SELECT id FROM items ORDER BY embedding <-> $1::text::vector LIMIT 5")|>pog.parameter(pog.text("[3,1,2]"))|>pog.returning(decode.at([0],decode.int))|>pog.execute(db)

Add an approximate index

letassertOk(_)=pog.query("CREATE INDEX ON items USING hnsw (embedding vector_l2_ops)")|>pog.execute(db)

Use vector_ip_ops for inner product and vector_cosine_ops for cosine distance

See a full example

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/pgvector/pgvector-gleam.git
cd pgvector-gleam
createdb pgvector_gleam_test
gleam run

About

pgvector examples for Gleam

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages