@@ -182,6 +182,113 @@ Postgrex.query!(pid, "CREATE INDEX ON items USING ivfflat (embedding vector_l2_o
182182
183183Use ` 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