Skip to content

Commit 549ab75

Browse files
committed
Added reference section to readme [skip ci]
1 parent 631ea38 commit 549ab75

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

README.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,113 @@ Postgrex.query!(pid, "CREATE INDEX ON items USING ivfflat (embedding vector_l2_o
182182

183183
Use `vector_ip_ops` for inner product and `vector_cosine_ops` for cosine distance
184184

185+
## Reference
186+
187+
### Vectors
188+
189+
Create a vector from a list
190+
191+
```elixir
192+
vec = Pgvector.new([1, 2, 3])
193+
```
194+
195+
Or an Nx tensor
196+
197+
```elixir
198+
vec = Nx.tensor([1.0, 2.0, 3.0]) |> Pgvector.new()
199+
```
200+
201+
Get a list
202+
203+
```elixir
204+
list = vec |> Pgvector.to_list()
205+
```
206+
207+
Get an Nx tensor
208+
209+
```elixir
210+
tensor = vec |> Pgvector.to_tensor()
211+
```
212+
213+
### Half Vectors
214+
215+
Create a half vector from a list
216+
217+
```elixir
218+
vec = Pgvector.HalfVector.new([1, 2, 3])
219+
```
220+
221+
Or an Nx tensor
222+
223+
```elixir
224+
vec = Nx.tensor([1.0, 2.0, 3.0], type: :f16) |> Pgvector.HalfVector.new()
225+
```
226+
227+
Get a list
228+
229+
```elixir
230+
list = vec |> Pgvector.to_list()
231+
```
232+
233+
Get an Nx tensor
234+
235+
```elixir
236+
tensor = vec |> Pgvector.to_tensor()
237+
```
238+
239+
### Sparse Vectors
240+
241+
Create a sparse vector from a list
242+
243+
```elixir
244+
vec = Pgvector.SparseVector.new([1, 2, 3])
245+
```
246+
247+
Or an Nx tensor
248+
249+
```elixir
250+
vec = Nx.tensor([1.0, 2.0, 3.0]) |> Pgvector.SparseVector.new()
251+
```
252+
253+
Or a map of non-zero elements
254+
255+
```elixir
256+
elements = %{0 => 1.0, 2 => 2.0, 4 => 3.0}
257+
vec = Pgvector.SparseVector.new(elements, 6)
258+
```
259+
260+
Note: Indices start at 0
261+
262+
Get the number of dimensions
263+
264+
```elixir
265+
dim = vec |> Pgvector.SparseVector.dimensions()
266+
```
267+
268+
Get the indices of non-zero elements
269+
270+
```elixir
271+
indices = vec |> Pgvector.SparseVector.indices()
272+
```
273+
274+
Get the values of non-zero elements
275+
276+
```elixir
277+
values = vec |> Pgvector.SparseVector.values()
278+
```
279+
280+
Get a list
281+
282+
```elixir
283+
list = vec |> Pgvector.to_list()
284+
```
285+
286+
Get an Nx tensor
287+
288+
```elixir
289+
tensor = vec |> Pgvector.to_tensor()
290+
```
291+
185292
## Upgrading
186293

187294
### 0.3.0

0 commit comments

Comments
 (0)