baked-vector 0.1.0__tar.gz
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.
- baked_vector-0.1.0/PKG-INFO +225 -0
- baked_vector-0.1.0/README.md +206 -0
- baked_vector-0.1.0/baked/__init__.py +25 -0
- baked_vector-0.1.0/baked/chunking.py +281 -0
- baked_vector-0.1.0/baked/embed.py +166 -0
- baked_vector-0.1.0/baked/evals/__init__.py +42 -0
- baked_vector-0.1.0/baked/evals/harness.py +138 -0
- baked_vector-0.1.0/baked/evals/synthetic.py +148 -0
- baked_vector-0.1.0/baked/store.py +194 -0
- baked_vector-0.1.0/baked_vector.egg-info/PKG-INFO +225 -0
- baked_vector-0.1.0/baked_vector.egg-info/SOURCES.txt +17 -0
- baked_vector-0.1.0/baked_vector.egg-info/dependency_links.txt +1 -0
- baked_vector-0.1.0/baked_vector.egg-info/requires.txt +15 -0
- baked_vector-0.1.0/baked_vector.egg-info/top_level.txt +1 -0
- baked_vector-0.1.0/pyproject.toml +27 -0
- baked_vector-0.1.0/setup.cfg +4 -0
- baked_vector-0.1.0/tests/test_chunking.py +147 -0
- baked_vector-0.1.0/tests/test_eval.py +140 -0
- baked_vector-0.1.0/tests/test_store.py +247 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: baked-vector
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Zero-dependency vector store for small-scale embedding search.
|
|
5
|
+
License: MIT
|
|
6
|
+
Project-URL: Repository, https://github.com/sunnytuladhar/baked-vector
|
|
7
|
+
Requires-Python: >=3.11
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Provides-Extra: st
|
|
10
|
+
Requires-Dist: sentence-transformers>=3.0; extra == "st"
|
|
11
|
+
Provides-Extra: openai
|
|
12
|
+
Requires-Dist: openai>=1.0; extra == "openai"
|
|
13
|
+
Provides-Extra: bedrock
|
|
14
|
+
Requires-Dist: boto3>=1.34; extra == "bedrock"
|
|
15
|
+
Provides-Extra: google
|
|
16
|
+
Requires-Dist: google-generativeai>=0.8; extra == "google"
|
|
17
|
+
Provides-Extra: anthropic
|
|
18
|
+
Requires-Dist: anthropic>=0.40; extra == "anthropic"
|
|
19
|
+
|
|
20
|
+
# baked-vector
|
|
21
|
+
|
|
22
|
+
Zero-dependency vector store for small-scale embedding search. No numpy, no server, no setup — just a binary file and a JSON file baked into your project.
|
|
23
|
+
|
|
24
|
+
Designed for under 10,000 vectors. Bring your own embeddings.
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install baked-vector
|
|
30
|
+
# or
|
|
31
|
+
uv add baked-vector
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
import baked
|
|
38
|
+
|
|
39
|
+
store = baked.VectorStore("mydata")
|
|
40
|
+
|
|
41
|
+
# add vectors with arbitrary metadata
|
|
42
|
+
store.add(embedding, {"source": "doc1.pdf", "page": 3, "text": "..."})
|
|
43
|
+
store.save()
|
|
44
|
+
|
|
45
|
+
# reload from disk automatically
|
|
46
|
+
store = baked.VectorStore("mydata")
|
|
47
|
+
|
|
48
|
+
# search
|
|
49
|
+
results = store.search(query_embedding, top_k=5)
|
|
50
|
+
# [(metadata_dict, score), ...]
|
|
51
|
+
|
|
52
|
+
# filter by metadata
|
|
53
|
+
results = store.search(query_embedding, top_k=5, filter={"source": "doc1.pdf"})
|
|
54
|
+
|
|
55
|
+
# range search — all results with score >= threshold
|
|
56
|
+
results = store.search(query_embedding, radius=0.85)
|
|
57
|
+
|
|
58
|
+
# batch search
|
|
59
|
+
results = store.search_many([vec1, vec2], top_k=5)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## API
|
|
63
|
+
|
|
64
|
+
### `VectorStore(path)`
|
|
65
|
+
|
|
66
|
+
Loads from `<path>.vecs` and `<path>.json` if they exist, otherwise starts empty.
|
|
67
|
+
|
|
68
|
+
| Method | Description |
|
|
69
|
+
|--------|-------------|
|
|
70
|
+
| `add(embedding, metadata)` | Add a vector. Returns its id. |
|
|
71
|
+
| `remove(id)` | Soft-delete. Takes effect on next `save()`. |
|
|
72
|
+
| `save()` | Flush to disk, compacting deleted entries. |
|
|
73
|
+
| `search(query, top_k, radius, filter)` | Find similar vectors. |
|
|
74
|
+
| `search_many(queries, top_k, radius, filter)` | Batch search. |
|
|
75
|
+
| `len(store)` | Number of active vectors. |
|
|
76
|
+
|
|
77
|
+
### Search parameters
|
|
78
|
+
|
|
79
|
+
- `top_k` — return top N results (default: 5)
|
|
80
|
+
- `radius` — return all results with score ≥ threshold (overrides `top_k`)
|
|
81
|
+
- `filter` — dict of key-value pairs that must match the metadata exactly
|
|
82
|
+
|
|
83
|
+
Scores are cosine similarity in range [-1, 1]. Higher = more similar.
|
|
84
|
+
|
|
85
|
+
## Storage format
|
|
86
|
+
|
|
87
|
+
Two files:
|
|
88
|
+
|
|
89
|
+
- `<path>.vecs` — binary packed floats. 8-byte header (dim, count), then N × dim × 4 bytes.
|
|
90
|
+
- `<path>.json` — JSON array of metadata dicts, one per vector.
|
|
91
|
+
|
|
92
|
+
Vectors are L2-normalized at insert time. IDs are positional and shift after `save()` following a `remove()`.
|
|
93
|
+
|
|
94
|
+
## Performance
|
|
95
|
+
|
|
96
|
+
Pure Python, brute-force scan. Rough query times:
|
|
97
|
+
|
|
98
|
+
| Vectors | 384-dim | 768-dim | 1536-dim |
|
|
99
|
+
|---------|---------|---------|----------|
|
|
100
|
+
| 1k | <0.1s | <0.1s | ~0.1s |
|
|
101
|
+
| 5k | ~0.1s | ~0.3s | ~0.5s |
|
|
102
|
+
| 10k | ~0.3s | ~0.6s | ~1–2s |
|
|
103
|
+
|
|
104
|
+
## EmbeddingStore
|
|
105
|
+
|
|
106
|
+
`EmbeddingStore` wraps `VectorStore` and handles embedding automatically. Install an extra for your provider, pass the adapter, and work with text directly.
|
|
107
|
+
|
|
108
|
+
```python
|
|
109
|
+
import baked
|
|
110
|
+
|
|
111
|
+
embed = baked.openai_embedder() # see adapters below
|
|
112
|
+
store = baked.EmbeddingStore("mydata", embedder=embed)
|
|
113
|
+
|
|
114
|
+
store.add("Wealth is not money...", {"title": "How to Make Wealth"})
|
|
115
|
+
store.save()
|
|
116
|
+
|
|
117
|
+
results = store.search("how startups create value", top_k=3)
|
|
118
|
+
# [({"text": "...", "title": "..."}, score), ...]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`EmbeddingStore` exposes the same `add`, `remove`, `save`, `search`, and `len` interface as `VectorStore`, but takes `str` instead of `list[float]`. The original text is stored in metadata under `"text"` automatically.
|
|
122
|
+
|
|
123
|
+
### Adapters
|
|
124
|
+
|
|
125
|
+
| Provider | Function | Install extra |
|
|
126
|
+
|----------|----------|---------------|
|
|
127
|
+
| OpenAI | `openai_embedder(model, api_key)` | `baked-vector[openai]` |
|
|
128
|
+
| Azure OpenAI | `azure_openai_embedder(deployment, endpoint, api_key, api_version)` | `baked-vector[openai]` |
|
|
129
|
+
| AWS Bedrock | `bedrock_embedder(model_id, region_name)` | `baked-vector[bedrock]` |
|
|
130
|
+
| Google | `google_embedder(model, api_key)` | `baked-vector[google]` |
|
|
131
|
+
| Local (sentence-transformers) | `sentence_transformer_embedder(model_name)` | `baked-vector[st]` |
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
pip install baked-vector[openai]
|
|
135
|
+
pip install baked-vector[bedrock]
|
|
136
|
+
pip install baked-vector[google]
|
|
137
|
+
pip install baked-vector[st]
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Defaults: OpenAI → `text-embedding-3-small`, Bedrock → `amazon.titan-embed-text-v2:0`, Google → `models/text-embedding-004`, local → `all-MiniLM-L6-v2`.
|
|
141
|
+
|
|
142
|
+
You can also pass any `(str) -> list[float]` callable as `embedder` — no adapter required.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Providers (manual)
|
|
147
|
+
|
|
148
|
+
baked-vector stores and searches vectors — bring embeddings from any provider.
|
|
149
|
+
|
|
150
|
+
### OpenAI
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
from openai import OpenAI
|
|
154
|
+
|
|
155
|
+
client = OpenAI()
|
|
156
|
+
|
|
157
|
+
def embed(text: str) -> list[float]:
|
|
158
|
+
resp = client.embeddings.create(model="text-embedding-3-small", input=text)
|
|
159
|
+
return resp.data[0].embedding
|
|
160
|
+
|
|
161
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
162
|
+
results = store.search(embed("hi there"), top_k=5)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### AWS Bedrock (Titan)
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
import json
|
|
169
|
+
import boto3
|
|
170
|
+
|
|
171
|
+
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
|
|
172
|
+
|
|
173
|
+
def embed(text: str) -> list[float]:
|
|
174
|
+
resp = bedrock.invoke_model(
|
|
175
|
+
modelId="amazon.titan-embed-text-v2:0",
|
|
176
|
+
body=json.dumps({"inputText": text, "dimensions": 512}),
|
|
177
|
+
)
|
|
178
|
+
return json.loads(resp["body"].read())["embedding"]
|
|
179
|
+
|
|
180
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
181
|
+
results = store.search(embed("hi there"), top_k=5)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Azure OpenAI
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
from openai import AzureOpenAI
|
|
188
|
+
|
|
189
|
+
client = AzureOpenAI(
|
|
190
|
+
api_key="YOUR_KEY",
|
|
191
|
+
api_version="2024-02-01",
|
|
192
|
+
azure_endpoint="https://YOUR_RESOURCE.openai.azure.com",
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
def embed(text: str) -> list[float]:
|
|
196
|
+
resp = client.embeddings.create(model="YOUR_DEPLOYMENT_NAME", input=text)
|
|
197
|
+
return resp.data[0].embedding
|
|
198
|
+
|
|
199
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
200
|
+
results = store.search(embed("hi there"), top_k=5)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Cohere
|
|
204
|
+
|
|
205
|
+
```python
|
|
206
|
+
import cohere
|
|
207
|
+
|
|
208
|
+
co = cohere.Client("YOUR_API_KEY")
|
|
209
|
+
|
|
210
|
+
def embed(text: str) -> list[float]:
|
|
211
|
+
resp = co.embed(texts=[text], model="embed-english-v3.0", input_type="search_document")
|
|
212
|
+
return resp.embeddings[0]
|
|
213
|
+
|
|
214
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
215
|
+
|
|
216
|
+
# use input_type="search_query" for query embeddings
|
|
217
|
+
results = store.search(
|
|
218
|
+
co.embed(texts=["hi there"], model="embed-english-v3.0", input_type="search_query").embeddings[0],
|
|
219
|
+
top_k=5,
|
|
220
|
+
)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## License
|
|
224
|
+
|
|
225
|
+
MIT
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# baked-vector
|
|
2
|
+
|
|
3
|
+
Zero-dependency vector store for small-scale embedding search. No numpy, no server, no setup — just a binary file and a JSON file baked into your project.
|
|
4
|
+
|
|
5
|
+
Designed for under 10,000 vectors. Bring your own embeddings.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install baked-vector
|
|
11
|
+
# or
|
|
12
|
+
uv add baked-vector
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
import baked
|
|
19
|
+
|
|
20
|
+
store = baked.VectorStore("mydata")
|
|
21
|
+
|
|
22
|
+
# add vectors with arbitrary metadata
|
|
23
|
+
store.add(embedding, {"source": "doc1.pdf", "page": 3, "text": "..."})
|
|
24
|
+
store.save()
|
|
25
|
+
|
|
26
|
+
# reload from disk automatically
|
|
27
|
+
store = baked.VectorStore("mydata")
|
|
28
|
+
|
|
29
|
+
# search
|
|
30
|
+
results = store.search(query_embedding, top_k=5)
|
|
31
|
+
# [(metadata_dict, score), ...]
|
|
32
|
+
|
|
33
|
+
# filter by metadata
|
|
34
|
+
results = store.search(query_embedding, top_k=5, filter={"source": "doc1.pdf"})
|
|
35
|
+
|
|
36
|
+
# range search — all results with score >= threshold
|
|
37
|
+
results = store.search(query_embedding, radius=0.85)
|
|
38
|
+
|
|
39
|
+
# batch search
|
|
40
|
+
results = store.search_many([vec1, vec2], top_k=5)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## API
|
|
44
|
+
|
|
45
|
+
### `VectorStore(path)`
|
|
46
|
+
|
|
47
|
+
Loads from `<path>.vecs` and `<path>.json` if they exist, otherwise starts empty.
|
|
48
|
+
|
|
49
|
+
| Method | Description |
|
|
50
|
+
|--------|-------------|
|
|
51
|
+
| `add(embedding, metadata)` | Add a vector. Returns its id. |
|
|
52
|
+
| `remove(id)` | Soft-delete. Takes effect on next `save()`. |
|
|
53
|
+
| `save()` | Flush to disk, compacting deleted entries. |
|
|
54
|
+
| `search(query, top_k, radius, filter)` | Find similar vectors. |
|
|
55
|
+
| `search_many(queries, top_k, radius, filter)` | Batch search. |
|
|
56
|
+
| `len(store)` | Number of active vectors. |
|
|
57
|
+
|
|
58
|
+
### Search parameters
|
|
59
|
+
|
|
60
|
+
- `top_k` — return top N results (default: 5)
|
|
61
|
+
- `radius` — return all results with score ≥ threshold (overrides `top_k`)
|
|
62
|
+
- `filter` — dict of key-value pairs that must match the metadata exactly
|
|
63
|
+
|
|
64
|
+
Scores are cosine similarity in range [-1, 1]. Higher = more similar.
|
|
65
|
+
|
|
66
|
+
## Storage format
|
|
67
|
+
|
|
68
|
+
Two files:
|
|
69
|
+
|
|
70
|
+
- `<path>.vecs` — binary packed floats. 8-byte header (dim, count), then N × dim × 4 bytes.
|
|
71
|
+
- `<path>.json` — JSON array of metadata dicts, one per vector.
|
|
72
|
+
|
|
73
|
+
Vectors are L2-normalized at insert time. IDs are positional and shift after `save()` following a `remove()`.
|
|
74
|
+
|
|
75
|
+
## Performance
|
|
76
|
+
|
|
77
|
+
Pure Python, brute-force scan. Rough query times:
|
|
78
|
+
|
|
79
|
+
| Vectors | 384-dim | 768-dim | 1536-dim |
|
|
80
|
+
|---------|---------|---------|----------|
|
|
81
|
+
| 1k | <0.1s | <0.1s | ~0.1s |
|
|
82
|
+
| 5k | ~0.1s | ~0.3s | ~0.5s |
|
|
83
|
+
| 10k | ~0.3s | ~0.6s | ~1–2s |
|
|
84
|
+
|
|
85
|
+
## EmbeddingStore
|
|
86
|
+
|
|
87
|
+
`EmbeddingStore` wraps `VectorStore` and handles embedding automatically. Install an extra for your provider, pass the adapter, and work with text directly.
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
import baked
|
|
91
|
+
|
|
92
|
+
embed = baked.openai_embedder() # see adapters below
|
|
93
|
+
store = baked.EmbeddingStore("mydata", embedder=embed)
|
|
94
|
+
|
|
95
|
+
store.add("Wealth is not money...", {"title": "How to Make Wealth"})
|
|
96
|
+
store.save()
|
|
97
|
+
|
|
98
|
+
results = store.search("how startups create value", top_k=3)
|
|
99
|
+
# [({"text": "...", "title": "..."}, score), ...]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`EmbeddingStore` exposes the same `add`, `remove`, `save`, `search`, and `len` interface as `VectorStore`, but takes `str` instead of `list[float]`. The original text is stored in metadata under `"text"` automatically.
|
|
103
|
+
|
|
104
|
+
### Adapters
|
|
105
|
+
|
|
106
|
+
| Provider | Function | Install extra |
|
|
107
|
+
|----------|----------|---------------|
|
|
108
|
+
| OpenAI | `openai_embedder(model, api_key)` | `baked-vector[openai]` |
|
|
109
|
+
| Azure OpenAI | `azure_openai_embedder(deployment, endpoint, api_key, api_version)` | `baked-vector[openai]` |
|
|
110
|
+
| AWS Bedrock | `bedrock_embedder(model_id, region_name)` | `baked-vector[bedrock]` |
|
|
111
|
+
| Google | `google_embedder(model, api_key)` | `baked-vector[google]` |
|
|
112
|
+
| Local (sentence-transformers) | `sentence_transformer_embedder(model_name)` | `baked-vector[st]` |
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
pip install baked-vector[openai]
|
|
116
|
+
pip install baked-vector[bedrock]
|
|
117
|
+
pip install baked-vector[google]
|
|
118
|
+
pip install baked-vector[st]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Defaults: OpenAI → `text-embedding-3-small`, Bedrock → `amazon.titan-embed-text-v2:0`, Google → `models/text-embedding-004`, local → `all-MiniLM-L6-v2`.
|
|
122
|
+
|
|
123
|
+
You can also pass any `(str) -> list[float]` callable as `embedder` — no adapter required.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Providers (manual)
|
|
128
|
+
|
|
129
|
+
baked-vector stores and searches vectors — bring embeddings from any provider.
|
|
130
|
+
|
|
131
|
+
### OpenAI
|
|
132
|
+
|
|
133
|
+
```python
|
|
134
|
+
from openai import OpenAI
|
|
135
|
+
|
|
136
|
+
client = OpenAI()
|
|
137
|
+
|
|
138
|
+
def embed(text: str) -> list[float]:
|
|
139
|
+
resp = client.embeddings.create(model="text-embedding-3-small", input=text)
|
|
140
|
+
return resp.data[0].embedding
|
|
141
|
+
|
|
142
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
143
|
+
results = store.search(embed("hi there"), top_k=5)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### AWS Bedrock (Titan)
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
import json
|
|
150
|
+
import boto3
|
|
151
|
+
|
|
152
|
+
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
|
|
153
|
+
|
|
154
|
+
def embed(text: str) -> list[float]:
|
|
155
|
+
resp = bedrock.invoke_model(
|
|
156
|
+
modelId="amazon.titan-embed-text-v2:0",
|
|
157
|
+
body=json.dumps({"inputText": text, "dimensions": 512}),
|
|
158
|
+
)
|
|
159
|
+
return json.loads(resp["body"].read())["embedding"]
|
|
160
|
+
|
|
161
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
162
|
+
results = store.search(embed("hi there"), top_k=5)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Azure OpenAI
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
from openai import AzureOpenAI
|
|
169
|
+
|
|
170
|
+
client = AzureOpenAI(
|
|
171
|
+
api_key="YOUR_KEY",
|
|
172
|
+
api_version="2024-02-01",
|
|
173
|
+
azure_endpoint="https://YOUR_RESOURCE.openai.azure.com",
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
def embed(text: str) -> list[float]:
|
|
177
|
+
resp = client.embeddings.create(model="YOUR_DEPLOYMENT_NAME", input=text)
|
|
178
|
+
return resp.data[0].embedding
|
|
179
|
+
|
|
180
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
181
|
+
results = store.search(embed("hi there"), top_k=5)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Cohere
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
import cohere
|
|
188
|
+
|
|
189
|
+
co = cohere.Client("YOUR_API_KEY")
|
|
190
|
+
|
|
191
|
+
def embed(text: str) -> list[float]:
|
|
192
|
+
resp = co.embed(texts=[text], model="embed-english-v3.0", input_type="search_document")
|
|
193
|
+
return resp.embeddings[0]
|
|
194
|
+
|
|
195
|
+
store.add(embed("hello world"), {"text": "hello world"})
|
|
196
|
+
|
|
197
|
+
# use input_type="search_query" for query embeddings
|
|
198
|
+
results = store.search(
|
|
199
|
+
co.embed(texts=["hi there"], model="embed-english-v3.0", input_type="search_query").embeddings[0],
|
|
200
|
+
top_k=5,
|
|
201
|
+
)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## License
|
|
205
|
+
|
|
206
|
+
MIT
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from .store import VectorStore
|
|
2
|
+
from .embed import (
|
|
3
|
+
EmbeddingStore,
|
|
4
|
+
sentence_transformer_embedder,
|
|
5
|
+
openai_embedder,
|
|
6
|
+
azure_openai_embedder,
|
|
7
|
+
bedrock_embedder,
|
|
8
|
+
google_embedder,
|
|
9
|
+
)
|
|
10
|
+
from .chunking import chunk_fixed, chunk_sentences, chunk_paragraphs, chunk_recursive
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"VectorStore",
|
|
14
|
+
"EmbeddingStore",
|
|
15
|
+
"sentence_transformer_embedder",
|
|
16
|
+
"openai_embedder",
|
|
17
|
+
"azure_openai_embedder",
|
|
18
|
+
"bedrock_embedder",
|
|
19
|
+
"google_embedder",
|
|
20
|
+
"chunk_fixed",
|
|
21
|
+
"chunk_sentences",
|
|
22
|
+
"chunk_paragraphs",
|
|
23
|
+
"chunk_recursive",
|
|
24
|
+
]
|
|
25
|
+
__version__ = "0.1.0"
|