vectra-client 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +140 -334
  3. data/docs/Gemfile +10 -0
  4. data/docs/_config.yml +20 -0
  5. data/docs/_layouts/default.html +14 -0
  6. data/docs/_layouts/home.html +33 -0
  7. data/docs/_layouts/page.html +20 -0
  8. data/docs/_site/api/overview/index.html +145 -0
  9. data/docs/_site/assets/main.css +649 -0
  10. data/docs/_site/assets/main.css.map +1 -0
  11. data/docs/_site/assets/minima-social-icons.svg +33 -0
  12. data/docs/_site/assets/style.css +295 -0
  13. data/docs/_site/community/contributing/index.html +110 -0
  14. data/docs/_site/examples/basic-usage/index.html +117 -0
  15. data/docs/_site/examples/index.html +58 -0
  16. data/docs/_site/feed.xml +1 -0
  17. data/docs/_site/guides/getting-started/index.html +106 -0
  18. data/docs/_site/guides/installation/index.html +82 -0
  19. data/docs/_site/index.html +92 -0
  20. data/docs/_site/providers/index.html +119 -0
  21. data/docs/_site/providers/pgvector/index.html +155 -0
  22. data/docs/_site/providers/pinecone/index.html +121 -0
  23. data/docs/_site/providers/qdrant/index.html +124 -0
  24. data/docs/_site/providers/weaviate/index.html +123 -0
  25. data/docs/_site/robots.txt +1 -0
  26. data/docs/_site/sitemap.xml +39 -0
  27. data/docs/api/overview.md +126 -0
  28. data/docs/assets/style.css +295 -0
  29. data/docs/community/contributing.md +89 -0
  30. data/docs/examples/basic-usage.md +102 -0
  31. data/docs/examples/index.md +32 -0
  32. data/docs/guides/getting-started.md +90 -0
  33. data/docs/guides/installation.md +67 -0
  34. data/docs/index.md +53 -0
  35. data/docs/providers/index.md +62 -0
  36. data/docs/providers/pgvector.md +95 -0
  37. data/docs/providers/pinecone.md +72 -0
  38. data/docs/providers/qdrant.md +73 -0
  39. data/docs/providers/weaviate.md +72 -0
  40. data/lib/vectra/version.rb +1 -1
  41. data/netlify.toml +12 -0
  42. metadata +39 -5
  43. data/IMPLEMENTATION_GUIDE.md +0 -686
  44. data/NEW_FEATURES_v0.2.0.md +0 -459
  45. data/RELEASE_CHECKLIST_v0.2.0.md +0 -383
  46. data/USAGE_EXAMPLES.md +0 -787
@@ -0,0 +1,121 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1">
4
+ <title>Pinecone - Vectra Documentation</title>
5
+ <link rel="stylesheet" href="/assets/style.css">
6
+ </head>
7
+
8
+ <body>
9
+ <div class="site-header">
10
+ <nav class="site-nav">
11
+ <div class="nav-container">
12
+ <a href="/" class="nav-brand">Vectra</a>
13
+ <ul class="nav-menu">
14
+ <li><a href="/guides/installation" class="nav-link">Guides</a></li>
15
+ <li><a href="/api/overview" class="nav-link">API</a></li>
16
+ <li><a href="/providers" class="nav-link">Providers</a></li>
17
+ <li><a href="/examples" class="nav-link">Examples</a></li>
18
+ <li><a href="https://github.com/stokry/vectra" target="_blank" class="nav-link">GitHub</a></li>
19
+ </ul>
20
+ </div>
21
+ </nav>
22
+ </div>
23
+
24
+ <h1 id="pinecone-provider">Pinecone Provider</h1>
25
+
26
+ <p><a href="https://www.pinecone.io/">Pinecone</a> is a managed vector database in the cloud.</p>
27
+
28
+ <h2 id="setup">Setup</h2>
29
+
30
+ <ol>
31
+ <li>Create a Pinecone account at https://www.pinecone.io/</li>
32
+ <li>Create an index and get your API key</li>
33
+ <li>Set up Vectra:</li>
34
+ </ol>
35
+
36
+ <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">client</span> <span class="o">=</span> <span class="no">Vectra</span><span class="o">::</span><span class="no">Client</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
37
+ <span class="ss">provider: :pinecone</span><span class="p">,</span>
38
+ <span class="ss">api_key: </span><span class="no">ENV</span><span class="p">[</span><span class="s1">'PINECONE_API_KEY'</span><span class="p">],</span>
39
+ <span class="ss">index_name: </span><span class="s1">'my-index'</span><span class="p">,</span>
40
+ <span class="ss">environment: </span><span class="s1">'us-west-4'</span>
41
+ <span class="p">)</span>
42
+ </code></pre></div></div>
43
+
44
+ <h2 id="features">Features</h2>
45
+
46
+ <ul>
47
+ <li>✅ Upsert vectors</li>
48
+ <li>✅ Query/search</li>
49
+ <li>✅ Delete vectors</li>
50
+ <li>✅ Fetch vectors by ID</li>
51
+ <li>✅ Index statistics</li>
52
+ <li>✅ Metadata filtering</li>
53
+ <li>✅ Namespace support</li>
54
+ </ul>
55
+
56
+ <h2 id="example">Example</h2>
57
+
58
+ <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Initialize client</span>
59
+ <span class="n">client</span> <span class="o">=</span> <span class="no">Vectra</span><span class="o">::</span><span class="no">Client</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
60
+ <span class="ss">provider: :pinecone</span><span class="p">,</span>
61
+ <span class="ss">api_key: </span><span class="no">ENV</span><span class="p">[</span><span class="s1">'PINECONE_API_KEY'</span><span class="p">],</span>
62
+ <span class="ss">environment: </span><span class="s1">'us-west-4'</span>
63
+ <span class="p">)</span>
64
+
65
+ <span class="c1"># Upsert vectors</span>
66
+ <span class="n">client</span><span class="p">.</span><span class="nf">upsert</span><span class="p">(</span>
67
+ <span class="ss">vectors: </span><span class="p">[</span>
68
+ <span class="p">{</span> <span class="ss">id: </span><span class="s1">'doc-1'</span><span class="p">,</span> <span class="ss">values: </span><span class="p">[</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">],</span> <span class="ss">metadata: </span><span class="p">{</span> <span class="ss">title: </span><span class="s1">'Page 1'</span> <span class="p">}</span> <span class="p">},</span>
69
+ <span class="p">{</span> <span class="ss">id: </span><span class="s1">'doc-2'</span><span class="p">,</span> <span class="ss">values: </span><span class="p">[</span><span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">,</span> <span class="mf">0.4</span><span class="p">],</span> <span class="ss">metadata: </span><span class="p">{</span> <span class="ss">title: </span><span class="s1">'Page 2'</span> <span class="p">}</span> <span class="p">}</span>
70
+ <span class="p">]</span>
71
+ <span class="p">)</span>
72
+
73
+ <span class="c1"># Search</span>
74
+ <span class="n">results</span> <span class="o">=</span> <span class="n">client</span><span class="p">.</span><span class="nf">query</span><span class="p">(</span><span class="ss">vector: </span><span class="p">[</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">],</span> <span class="ss">top_k: </span><span class="mi">5</span><span class="p">)</span>
75
+ <span class="n">results</span><span class="p">.</span><span class="nf">matches</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">match</span><span class="o">|</span>
76
+ <span class="nb">puts</span> <span class="s2">"</span><span class="si">#{</span><span class="n">match</span><span class="p">[</span><span class="s1">'id'</span><span class="p">]</span><span class="si">}</span><span class="s2">: </span><span class="si">#{</span><span class="n">match</span><span class="p">[</span><span class="s1">'score'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
77
+ <span class="k">end</span>
78
+ </code></pre></div></div>
79
+
80
+ <h2 id="configuration-options">Configuration Options</h2>
81
+
82
+ <table>
83
+ <thead>
84
+ <tr>
85
+ <th>Option</th>
86
+ <th>Type</th>
87
+ <th>Required</th>
88
+ <th>Description</th>
89
+ </tr>
90
+ </thead>
91
+ <tbody>
92
+ <tr>
93
+ <td><code class="language-plaintext highlighter-rouge">api_key</code></td>
94
+ <td>String</td>
95
+ <td>Yes</td>
96
+ <td>Your Pinecone API key</td>
97
+ </tr>
98
+ <tr>
99
+ <td><code class="language-plaintext highlighter-rouge">environment</code></td>
100
+ <td>String</td>
101
+ <td>Yes</td>
102
+ <td>Pinecone environment (e.g., ‘us-west-4’)</td>
103
+ </tr>
104
+ <tr>
105
+ <td><code class="language-plaintext highlighter-rouge">index_name</code></td>
106
+ <td>String</td>
107
+ <td>No</td>
108
+ <td>Index name (if not set globally)</td>
109
+ </tr>
110
+ </tbody>
111
+ </table>
112
+
113
+ <h2 id="documentation">Documentation</h2>
114
+
115
+ <ul>
116
+ <li><a href="https://docs.pinecone.io/">Pinecone Docs</a></li>
117
+ <li><a href="https://docs.pinecone.io/reference/api/">Pinecone API Reference</a></li>
118
+ </ul>
119
+
120
+
121
+ </body>
@@ -0,0 +1,124 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1">
4
+ <title>Qdrant - Vectra Documentation</title>
5
+ <link rel="stylesheet" href="/assets/style.css">
6
+ </head>
7
+
8
+ <body>
9
+ <div class="site-header">
10
+ <nav class="site-nav">
11
+ <div class="nav-container">
12
+ <a href="/" class="nav-brand">Vectra</a>
13
+ <ul class="nav-menu">
14
+ <li><a href="/guides/installation" class="nav-link">Guides</a></li>
15
+ <li><a href="/api/overview" class="nav-link">API</a></li>
16
+ <li><a href="/providers" class="nav-link">Providers</a></li>
17
+ <li><a href="/examples" class="nav-link">Examples</a></li>
18
+ <li><a href="https://github.com/stokry/vectra" target="_blank" class="nav-link">GitHub</a></li>
19
+ </ul>
20
+ </div>
21
+ </nav>
22
+ </div>
23
+
24
+ <h1 id="qdrant-provider">Qdrant Provider</h1>
25
+
26
+ <p><a href="https://qdrant.tech/">Qdrant</a> is an open-source vector search engine.</p>
27
+
28
+ <h2 id="setup">Setup</h2>
29
+
30
+ <h3 id="local-installation">Local Installation</h3>
31
+
32
+ <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run <span class="nt">-p</span> 6333:6333 qdrant/qdrant
33
+ </code></pre></div></div>
34
+
35
+ <h3 id="connect-with-vectra">Connect with Vectra</h3>
36
+
37
+ <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">client</span> <span class="o">=</span> <span class="no">Vectra</span><span class="o">::</span><span class="no">Client</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
38
+ <span class="ss">provider: :qdrant</span><span class="p">,</span>
39
+ <span class="ss">host: </span><span class="s1">'localhost'</span><span class="p">,</span>
40
+ <span class="ss">port: </span><span class="mi">6333</span><span class="p">,</span>
41
+ <span class="ss">collection_name: </span><span class="s1">'my-collection'</span>
42
+ <span class="p">)</span>
43
+ </code></pre></div></div>
44
+
45
+ <h2 id="features">Features</h2>
46
+
47
+ <ul>
48
+ <li>✅ Upsert vectors</li>
49
+ <li>✅ Query/search</li>
50
+ <li>✅ Delete vectors</li>
51
+ <li>✅ Fetch vectors by ID</li>
52
+ <li>✅ Collection management</li>
53
+ <li>✅ Metadata filtering</li>
54
+ <li>✅ Hybrid search</li>
55
+ </ul>
56
+
57
+ <h2 id="example">Example</h2>
58
+
59
+ <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Initialize client</span>
60
+ <span class="n">client</span> <span class="o">=</span> <span class="no">Vectra</span><span class="o">::</span><span class="no">Client</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
61
+ <span class="ss">provider: :qdrant</span><span class="p">,</span>
62
+ <span class="ss">host: </span><span class="s1">'localhost'</span><span class="p">,</span>
63
+ <span class="ss">port: </span><span class="mi">6333</span>
64
+ <span class="p">)</span>
65
+
66
+ <span class="c1"># Upsert vectors</span>
67
+ <span class="n">client</span><span class="p">.</span><span class="nf">upsert</span><span class="p">(</span>
68
+ <span class="ss">vectors: </span><span class="p">[</span>
69
+ <span class="p">{</span> <span class="ss">id: </span><span class="s1">'doc-1'</span><span class="p">,</span> <span class="ss">values: </span><span class="p">[</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">],</span> <span class="ss">metadata: </span><span class="p">{</span> <span class="ss">source: </span><span class="s1">'web'</span> <span class="p">}</span> <span class="p">}</span>
70
+ <span class="p">]</span>
71
+ <span class="p">)</span>
72
+
73
+ <span class="c1"># Search</span>
74
+ <span class="n">results</span> <span class="o">=</span> <span class="n">client</span><span class="p">.</span><span class="nf">query</span><span class="p">(</span><span class="ss">vector: </span><span class="p">[</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">],</span> <span class="ss">top_k: </span><span class="mi">10</span><span class="p">)</span>
75
+ </code></pre></div></div>
76
+
77
+ <h2 id="configuration-options">Configuration Options</h2>
78
+
79
+ <table>
80
+ <thead>
81
+ <tr>
82
+ <th>Option</th>
83
+ <th>Type</th>
84
+ <th>Required</th>
85
+ <th>Description</th>
86
+ </tr>
87
+ </thead>
88
+ <tbody>
89
+ <tr>
90
+ <td><code class="language-plaintext highlighter-rouge">host</code></td>
91
+ <td>String</td>
92
+ <td>Yes</td>
93
+ <td>Qdrant host address</td>
94
+ </tr>
95
+ <tr>
96
+ <td><code class="language-plaintext highlighter-rouge">port</code></td>
97
+ <td>Integer</td>
98
+ <td>Yes</td>
99
+ <td>Qdrant port (default: 6333)</td>
100
+ </tr>
101
+ <tr>
102
+ <td><code class="language-plaintext highlighter-rouge">collection_name</code></td>
103
+ <td>String</td>
104
+ <td>No</td>
105
+ <td>Collection name</td>
106
+ </tr>
107
+ <tr>
108
+ <td><code class="language-plaintext highlighter-rouge">api_key</code></td>
109
+ <td>String</td>
110
+ <td>No</td>
111
+ <td>API key if auth is enabled</td>
112
+ </tr>
113
+ </tbody>
114
+ </table>
115
+
116
+ <h2 id="documentation">Documentation</h2>
117
+
118
+ <ul>
119
+ <li><a href="https://qdrant.tech/documentation/">Qdrant Docs</a></li>
120
+ <li><a href="https://api.qdrant.tech/">Qdrant API Reference</a></li>
121
+ </ul>
122
+
123
+
124
+ </body>
@@ -0,0 +1,123 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1">
4
+ <title>Weaviate - Vectra Documentation</title>
5
+ <link rel="stylesheet" href="/assets/style.css">
6
+ </head>
7
+
8
+ <body>
9
+ <div class="site-header">
10
+ <nav class="site-nav">
11
+ <div class="nav-container">
12
+ <a href="/" class="nav-brand">Vectra</a>
13
+ <ul class="nav-menu">
14
+ <li><a href="/guides/installation" class="nav-link">Guides</a></li>
15
+ <li><a href="/api/overview" class="nav-link">API</a></li>
16
+ <li><a href="/providers" class="nav-link">Providers</a></li>
17
+ <li><a href="/examples" class="nav-link">Examples</a></li>
18
+ <li><a href="https://github.com/stokry/vectra" target="_blank" class="nav-link">GitHub</a></li>
19
+ </ul>
20
+ </div>
21
+ </nav>
22
+ </div>
23
+
24
+ <h1 id="weaviate-provider">Weaviate Provider</h1>
25
+
26
+ <p><a href="https://weaviate.io/">Weaviate</a> is an open-source vector search engine with semantic search capabilities.</p>
27
+
28
+ <h2 id="setup">Setup</h2>
29
+
30
+ <h3 id="local-installation">Local Installation</h3>
31
+
32
+ <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run <span class="nt">-p</span> 8080:8080 semitechnologies/weaviate:latest
33
+ </code></pre></div></div>
34
+
35
+ <h3 id="connect-with-vectra">Connect with Vectra</h3>
36
+
37
+ <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">client</span> <span class="o">=</span> <span class="no">Vectra</span><span class="o">::</span><span class="no">Client</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
38
+ <span class="ss">provider: :weaviate</span><span class="p">,</span>
39
+ <span class="ss">host: </span><span class="s1">'localhost'</span><span class="p">,</span>
40
+ <span class="ss">port: </span><span class="mi">8080</span><span class="p">,</span>
41
+ <span class="ss">class_name: </span><span class="s1">'Document'</span>
42
+ <span class="p">)</span>
43
+ </code></pre></div></div>
44
+
45
+ <h2 id="features">Features</h2>
46
+
47
+ <ul>
48
+ <li>✅ Upsert vectors</li>
49
+ <li>✅ Query/search</li>
50
+ <li>✅ Delete vectors</li>
51
+ <li>✅ Class management</li>
52
+ <li>✅ Metadata filtering</li>
53
+ <li>✅ Semantic search</li>
54
+ </ul>
55
+
56
+ <h2 id="example">Example</h2>
57
+
58
+ <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Initialize client</span>
59
+ <span class="n">client</span> <span class="o">=</span> <span class="no">Vectra</span><span class="o">::</span><span class="no">Client</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
60
+ <span class="ss">provider: :weaviate</span><span class="p">,</span>
61
+ <span class="ss">host: </span><span class="s1">'localhost'</span><span class="p">,</span>
62
+ <span class="ss">port: </span><span class="mi">8080</span>
63
+ <span class="p">)</span>
64
+
65
+ <span class="c1"># Upsert vectors</span>
66
+ <span class="n">client</span><span class="p">.</span><span class="nf">upsert</span><span class="p">(</span>
67
+ <span class="ss">vectors: </span><span class="p">[</span>
68
+ <span class="p">{</span> <span class="ss">id: </span><span class="s1">'doc-1'</span><span class="p">,</span> <span class="ss">values: </span><span class="p">[</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">],</span> <span class="ss">metadata: </span><span class="p">{</span> <span class="ss">category: </span><span class="s1">'news'</span> <span class="p">}</span> <span class="p">}</span>
69
+ <span class="p">]</span>
70
+ <span class="p">)</span>
71
+
72
+ <span class="c1"># Search</span>
73
+ <span class="n">results</span> <span class="o">=</span> <span class="n">client</span><span class="p">.</span><span class="nf">query</span><span class="p">(</span><span class="ss">vector: </span><span class="p">[</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">],</span> <span class="ss">top_k: </span><span class="mi">5</span><span class="p">)</span>
74
+ </code></pre></div></div>
75
+
76
+ <h2 id="configuration-options">Configuration Options</h2>
77
+
78
+ <table>
79
+ <thead>
80
+ <tr>
81
+ <th>Option</th>
82
+ <th>Type</th>
83
+ <th>Required</th>
84
+ <th>Description</th>
85
+ </tr>
86
+ </thead>
87
+ <tbody>
88
+ <tr>
89
+ <td><code class="language-plaintext highlighter-rouge">host</code></td>
90
+ <td>String</td>
91
+ <td>Yes</td>
92
+ <td>Weaviate host address</td>
93
+ </tr>
94
+ <tr>
95
+ <td><code class="language-plaintext highlighter-rouge">port</code></td>
96
+ <td>Integer</td>
97
+ <td>Yes</td>
98
+ <td>Weaviate port (default: 8080)</td>
99
+ </tr>
100
+ <tr>
101
+ <td><code class="language-plaintext highlighter-rouge">class_name</code></td>
102
+ <td>String</td>
103
+ <td>No</td>
104
+ <td>Class name for vectors</td>
105
+ </tr>
106
+ <tr>
107
+ <td><code class="language-plaintext highlighter-rouge">api_key</code></td>
108
+ <td>String</td>
109
+ <td>No</td>
110
+ <td>API key if auth is enabled</td>
111
+ </tr>
112
+ </tbody>
113
+ </table>
114
+
115
+ <h2 id="documentation">Documentation</h2>
116
+
117
+ <ul>
118
+ <li><a href="https://weaviate.io/developers">Weaviate Docs</a></li>
119
+ <li><a href="https://weaviate.io/developers/weaviate/api/rest">Weaviate API Reference</a></li>
120
+ </ul>
121
+
122
+
123
+ </body>
@@ -0,0 +1 @@
1
+ Sitemap: http://0.0.0.0:4000/sitemap.xml
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>http://0.0.0.0:4000/examples/basic-usage/</loc>
5
+ </url>
6
+ <url>
7
+ <loc>http://0.0.0.0:4000/community/contributing/</loc>
8
+ </url>
9
+ <url>
10
+ <loc>http://0.0.0.0:4000/guides/getting-started/</loc>
11
+ </url>
12
+ <url>
13
+ <loc>http://0.0.0.0:4000/examples/</loc>
14
+ </url>
15
+ <url>
16
+ <loc>http://0.0.0.0:4000/providers/</loc>
17
+ </url>
18
+ <url>
19
+ <loc>http://0.0.0.0:4000/</loc>
20
+ </url>
21
+ <url>
22
+ <loc>http://0.0.0.0:4000/guides/installation/</loc>
23
+ </url>
24
+ <url>
25
+ <loc>http://0.0.0.0:4000/api/overview/</loc>
26
+ </url>
27
+ <url>
28
+ <loc>http://0.0.0.0:4000/providers/pgvector/</loc>
29
+ </url>
30
+ <url>
31
+ <loc>http://0.0.0.0:4000/providers/pinecone/</loc>
32
+ </url>
33
+ <url>
34
+ <loc>http://0.0.0.0:4000/providers/qdrant/</loc>
35
+ </url>
36
+ <url>
37
+ <loc>http://0.0.0.0:4000/providers/weaviate/</loc>
38
+ </url>
39
+ </urlset>
@@ -0,0 +1,126 @@
1
+ ---
2
+ layout: page
3
+ title: API Overview
4
+ permalink: /api/overview/
5
+ ---
6
+
7
+ # API Reference
8
+
9
+ ## Client Initialization
10
+
11
+ ```ruby
12
+ client = Vectra::Client.new(
13
+ provider: :pinecone, # Required: :pinecone, :qdrant, :weaviate, :pgvector
14
+ api_key: 'your-api-key', # Required for cloud providers
15
+ index_name: 'my-index', # Optional, provider-dependent
16
+ host: 'localhost', # For self-hosted providers
17
+ port: 6333, # For self-hosted providers
18
+ environment: 'us-west-4' # For Pinecone
19
+ )
20
+ ```
21
+
22
+ ## Core Methods
23
+
24
+ ### `upsert(vectors:)`
25
+
26
+ Upsert vectors into the index. If a vector with the same ID exists, it will be updated.
27
+
28
+ **Parameters:**
29
+ - `vectors` (Array) - Array of vector hashes
30
+
31
+ **Vector Hash:**
32
+ ```ruby
33
+ {
34
+ id: 'unique-id', # Required
35
+ values: [0.1, 0.2, 0.3], # Required
36
+ metadata: { key: 'value' } # Optional
37
+ }
38
+ ```
39
+
40
+ **Example:**
41
+ ```ruby
42
+ client.upsert(
43
+ vectors: [
44
+ { id: '1', values: [0.1, 0.2], metadata: { category: 'news' } }
45
+ ]
46
+ )
47
+ ```
48
+
49
+ ### `query(vector:, top_k:, include_metadata:)`
50
+
51
+ Search for similar vectors.
52
+
53
+ **Parameters:**
54
+ - `vector` (Array) - Query vector
55
+ - `top_k` (Integer) - Number of results to return (default: 10)
56
+ - `include_metadata` (Boolean) - Include metadata in results (default: true)
57
+
58
+ **Returns:**
59
+ ```ruby
60
+ Vectra::QueryResult {
61
+ matches: [
62
+ { id: '1', score: 0.95, metadata: {...} },
63
+ ...
64
+ ],
65
+ namespace: 'default'
66
+ }
67
+ ```
68
+
69
+ **Example:**
70
+ ```ruby
71
+ results = client.query(vector: [0.1, 0.2], top_k: 5)
72
+ ```
73
+
74
+ ### `delete(ids:)`
75
+
76
+ Delete vectors by IDs.
77
+
78
+ **Parameters:**
79
+ - `ids` (Array) - Array of vector IDs to delete
80
+
81
+ **Example:**
82
+ ```ruby
83
+ client.delete(ids: ['vec-1', 'vec-2'])
84
+ ```
85
+
86
+ ### `fetch(ids:)`
87
+
88
+ Fetch vectors by IDs.
89
+
90
+ **Parameters:**
91
+ - `ids` (Array) - Array of vector IDs
92
+
93
+ **Returns:**
94
+ ```ruby
95
+ {
96
+ 'vec-1' => { values: [...], metadata: {...} },
97
+ ...
98
+ }
99
+ ```
100
+
101
+ ### `stats`
102
+
103
+ Get index statistics.
104
+
105
+ **Returns:**
106
+ ```ruby
107
+ {
108
+ 'dimension' => 1536,
109
+ 'vector_count' => 1000,
110
+ 'index_fullness' => 0.8
111
+ }
112
+ ```
113
+
114
+ ## Error Handling
115
+
116
+ ```ruby
117
+ begin
118
+ client.query(vector: [0.1, 0.2])
119
+ rescue Vectra::Error => e
120
+ puts "Vectra error: #{e.message}"
121
+ rescue => e
122
+ puts "Unexpected error: #{e.message}"
123
+ end
124
+ ```
125
+
126
+ See [Detailed API Documentation]({{ site.baseurl }}/api/methods) for more methods.