You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+56-1Lines changed: 56 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,12 @@
1
1
# Arcmind Vector DB
2
2
3
+
Arcmind Vector DB is a high-performance, flexible, and ergonomic vector similarity search database for the [Internet Computer](https://internetcomputer.org). It is designed to be a general-purpose vector similarity search database that can be used for a wide range of AI-powered applications, including recommendation systems, search engines, [Retrieval Augmented Generation](https://arxiv.org/abs/2005.11401) (RAG), and long-term memory of Autonomous AI agents like [ArcMind AI](https://github.com/arcmindai/arcmindai).
4
+
5
+
## Architecture
6
+
7
+
Sequence Flow Diagram
8
+

9
+
3
10
## Prerequisites
4
11
5
12
- Install Rust Toolchain using Rustup
@@ -22,10 +29,48 @@ If you want to test your project locally, you can use the following commands:
22
29
dfx start --background
23
30
24
31
# Deploys controller and brain canisters to the local replica
32
+
# Setup the environment variable: CONTROLLER_PRINCIPAL using using > dfx identity get-principal
33
+
25
34
./scripts/provision.sh
26
35
```
27
36
28
-
The provision script will deploy a `controller` canister and a `brain` canister which is owned solely by the `controller`
37
+
The provision script will deploy a `arcmindvectordb` canister.
38
+
39
+
## API
40
+
41
+
See [Candid](/src/arcmindvectordb/arcmindvectordb.did) for the full API.
42
+
43
+
## Interacting with the canisters
44
+
45
+
Sample shell scripts are provided to interact with the canisters in the [interact](/interact/) directory.
46
+
Sample embeddings content and their embedding vectors are provided in the [embeddings](/embeddings/) directory.
47
+
48
+
### Add a vector to the VectorStore
49
+
50
+
Open and Edit:
51
+
52
+
```bash
53
+
./interact/add_vector.sh
54
+
```
55
+
56
+
Try adding multiple vectors of different topics to the VectorStore.
57
+
58
+
### Search the VectorStore
59
+
60
+
Then search for similar vectors by using one of the vectors you added as input.
61
+
It should return the same vector as the most similar vector and other similar vectors of the same topic.
62
+
See how it can understand the semantic meanings of the vectors with many dimensions.
63
+
64
+
Open and Edit:
65
+
66
+
```bash
67
+
./interact/search_vector.sh
68
+
```
69
+
70
+
Note that the same embedding model must be used for adding and searching vectors.
71
+
It is recommended that you use the same embedding model in a single VectorStore for consistent results.
72
+
73
+
The embeddings in /embeddings/ are generated using the [OpenAI text-embedding-ada-002](https://platform.openai.com/docs/guides/embeddings/embedding-models) model with its [Embedding API](https://platform.openai.com/docs/api-reference/embeddings)
0 commit comments