forked from ehsanghaffar/vector-store-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Todo
65 lines (33 loc) · 2.21 KB
/
Todo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Project Roadmap & Tasks List 📊👣
## 1. Project Setup 🛠️
- [x] **Task 1:** Setup a virtual environment for project to manage dependencies.
- [x] **Task 2:** Install FastAPI and Uvicorn (ASGI server) using pip.
- [x] **Task 3:** Install Chroma or any other vector database client library project will use.
## 2. Designing the API 🎨
- [ ] **Task 1:** Define the endpoints we'll need. Consider the following:
- [x] An endpoint for uploading files or text to be vectorized.
- [ ] An endpoint to search through the stored vectors using similarity search.
- [ ] An endpoint to list or retrieve specific vectors or their metadata.
- [ ] **Task 2:** Plan out the request and response models for endpoints using Pydantic models.
## 3. Implementing Endpoints 🛠️👨💻
- [x] **Task 1:** Implement the file/text upload endpoint.
- [x] Parse the input data.
- [x] Embed the input into a vector form (you might need an external library or service for embedding, such as TensorFlow for images or Hugging Face's transformers for text).
- [x] Store the vector in Chroma with relevant metadata.
- [ ] **Task 2:** Implement the search endpoint.
- [ ] Accept a query as input and convert it into a vector.
- [ ] Perform a similarity search in Chroma.
- [ ] Return the closest matches.
- [ ] **Task 3:** Implement auxiliary endpoints as needed (for listing, updating, or deleting vectors).
## 4. Vector Database Integration 🗂️↔️🚀
- [x] **Task 1:** Choose a suitable vector database (Chroma, in this case).
- [x] **Task 2:** Implement data storage logic for vectors.
- [x] **Task 3:** Implement retrieval and search logic using Chroma's search capabilities.
## 5. Testing 🧪
- [ ] **Task 1:** Write unit tests for your API endpoints to ensure they're functioning as expected.
- [ ] **Task 2:** Test vector storage and retrieval functionality in Chroma.
- [ ] **Task 3:** Perform end[]to[]end tests of the entire API.
## 6. Documentation & Deployment 📄✈️
- [ ] **Task 1:** Document API using FastAPI’s built[]in Swagger UI.
- [ ] **Task 2:** Prepare the project for deployment (consider using Docker for containerization).
- [ ] **Task 3:** Deploy API (options include Heroku, AWS, or GCP).