Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
fcaa5df
feat: add embedding module with configuration and client
ArnabChatterjee20k May 22, 2026
4599430
feat: update embedding configuration and enhance embedding client fun…
ArnabChatterjee20k May 22, 2026
396ece4
refactor: rename EmbedOutcome to EmbeddingResult for consistency in e…
ArnabChatterjee20k May 22, 2026
dea5e94
feat: add embedding endpoint with request handling and response seria…
ArnabChatterjee20k May 22, 2026
207be4e
feat: implement next_index function for round-robin model acquisition…
ArnabChatterjee20k May 22, 2026
d196e8d
feat: add initial Docker setup with Dockerfile, docker-compose, CI wo…
ArnabChatterjee20k May 22, 2026
cbd0d1c
Merge remote-tracking branch 'origin/master' into embedder
ArnabChatterjee20k May 22, 2026
70bf5dc
updaetd dockerfile
ArnabChatterjee20k May 22, 2026
141afde
fix: improve error handling and memory pool size calculation in Embed…
ArnabChatterjee20k May 22, 2026
161d433
fix: add missing g++ installation in Dockerfile builder stage
ArnabChatterjee20k May 22, 2026
29dcd99
Initial plan
Copilot May 22, 2026
b6ccb7c
fix: configure default cache path in Dockerfile runtime image
Copilot May 22, 2026
70bd4b9
fix: scope models directory ownership change in Dockerfile
Copilot May 22, 2026
1ee5f4c
fix: align Docker images to trixie for ORT/glibc compatibility
Copilot May 22, 2026
d961e2c
Merge pull request #2 from appwrite/copilot/sub-pr-1
ArnabChatterjee20k May 26, 2026
5ec5abd
triggering greptile
ArnabChatterjee20k May 26, 2026
b051f46
Merge remote-tracking branch 'origin/embedder' into embedder
ArnabChatterjee20k May 26, 2026
2e1a3d3
updated the env
ArnabChatterjee20k May 26, 2026
9882616
feat: implement multi-model support in EmbeddingClient and update con…
ArnabChatterjee20k May 26, 2026
7f94b67
fix: update CI branch from main to master and add graceful shutdown t…
ArnabChatterjee20k May 27, 2026
b1ff789
feat: add total_duration field to EmbeddingResult and EmbedResponse f…
ArnabChatterjee20k May 27, 2026
69c377c
feat: introduce EmbedError for improved error handling in embedding p…
ArnabChatterjee20k May 27, 2026
7f38801
feat: add warmup binary for build-time model caching and update Docke…
ArnabChatterjee20k May 27, 2026
20d814d
updated
ArnabChatterjee20k May 27, 2026
2646f22
feat: enhance warmup inference error handling and add dimension for E…
ArnabChatterjee20k May 27, 2026
2a23ec2
feat: add publish workflow for DockerHub deployment
ArnabChatterjee20k May 27, 2026
21500a3
Merge pull request #3 from appwrite/model-warmup
abnegate May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
target
.git
.github
.env
.env.*
*.md
Dockerfile
.dockerignore
docker-compose.yml
tests
models
3 changes: 3 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
EMBEDDING_MODELS=nomic,bge-small
EMBEDDING_CACHE_DIR=./models
EMBEDDING_POOL_SIZE=1
55 changes: 55 additions & 0 deletions .github/workflows/ci.yml
Comment thread
abnegate marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: CI

on:
push:
branches: [master]
pull_request:
Comment thread
greptile-apps[bot] marked this conversation as resolved.

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings

jobs:
test:
name: fmt + clippy + test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
components: rustfmt, clippy

- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1

- name: cargo fmt
run: cargo fmt --all -- --check

- name: cargo clippy
run: cargo clippy --all-targets -- -D warnings

# Compiles the integration tests in tests/ but runs only the non-ignored
# ones; e2e tests are #[ignore]'d so CI does not download ONNX models.
- name: cargo test
run: cargo test --all-targets

docker:
name: docker build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0

- name: Build image
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
push: false
tags: embedding:ci
cache-from: type=gha
cache-to: type=gha,mode=max
45 changes: 45 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Build and Deploy to DockerHub

on:
push:
tags:
- '*'

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up QEMU
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0

- name: Login to Docker Hub
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6.1.0
with:
images: appwrite/embedding
tags: |
type=semver,pattern={{major}}.{{minor}}.{{patch}}
type=match,pattern=.*RC.*,group=0

- name: Build and push
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
with:
context: .
platforms: linux/amd64,linux/arm64
build-args: |
VERSION=${{ steps.meta.outputs.version }}
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/target
.fastembed_cache/
Loading