diff --git a/.gitignore b/.gitignore
index 7af67c9..54107f3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,4 +21,5 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
-.tmp
\ No newline at end of file
+.tmp
+.idea/
diff --git a/docs/embeddings.md b/docs/embeddings.md
index 680efb5..981eb3d 100644
--- a/docs/embeddings.md
+++ b/docs/embeddings.md
@@ -10,17 +10,18 @@ Chroma provides lightweight wrappers around popular embedding providers, making
-| | Python | JS |
-|--------------|-----------|---------------|
-| [OpenAI](/embeddings/openai) | ✅ | ✅ |
-| [Google Generative AI](/embeddings/google-gemini) | ✅ | ✅ |
-| [Cohere](/embeddings/cohere) | ✅ | ✅ |
-| [Google PaLM](/embeddings/google-palm) | ✅ | ➖ |
-| [Hugging Face](/embeddings/hugging-face) | ✅ | ➖ |
-| [Instructor](/embeddings/instructor) | ✅ | ➖ |
-| [Hugging Face Embedding Server](/embeddings/hugging-face-embedding-server) | ✅ | ✅ |
-| [Jina AI](/embeddings/jinaai) | ✅ | ✅ |
-| [Roboflow](/embeddings/roboflow-api) | ✅ | ➖ |
+| | Python | JS |
+|----------------------------------------------------------------------------|--------|----|
+| [OpenAI](/embeddings/openai) | ✅ | ✅ |
+| [Google Generative AI](/embeddings/google-gemini) | ✅ | ✅ |
+| [Cohere](/embeddings/cohere) | ✅ | ✅ |
+| [Google PaLM](/embeddings/google-palm) | ✅ | ➖ |
+| [Hugging Face](/embeddings/hugging-face) | ✅ | ➖ |
+| [Instructor](/embeddings/instructor) | ✅ | ➖ |
+| [Hugging Face Embedding Server](/embeddings/hugging-face-embedding-server) | ✅ | ✅ |
+| [Jina AI](/embeddings/jinaai) | ✅ | ✅ |
+| [Roboflow](/embeddings/roboflow-api) | ✅ | ➖ |
+| [Cloudflare Workers AI](/embeddings/cloudflare) | ✅ | ✅ |
We welcome pull requests to add new Embedding Functions to the community.
diff --git a/docs/embeddings/cloudflare.md b/docs/embeddings/cloudflare.md
new file mode 100644
index 0000000..a96f640
--- /dev/null
+++ b/docs/embeddings/cloudflare.md
@@ -0,0 +1,59 @@
+---
+---
+
+# Cloudflare Workers AI
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+Select a language
+
+
+
+
+
+
+Chroma provides a convenient wrapper around Cloudflare Workers AI REST API. This embedding function runs remotely on a Cloudflare Workers AI. It requires an API key and an account Id or gateway endpoint. You can get an API key by signing up for an account at [Cloudflare Workers AI](https://cloudflare.com/).
+
+Visit the [Cloudflare Workers AI documentation](https://developers.cloudflare.com/workers-ai/) for more information on getting started.
+
+:::note
+Currently cloudflare embeddings endpoints allow batches of maximum 100 documents in a single request. The EF has a hard limit of 100 documents per request, and will raise an error if you try to pass more than 100 documents.
+:::
+
+
+
+
+```python
+import chromadb.utils.embedding_functions as embedding_functions
+cf_ef = embedding_functions.CloudflareWorkersAIEmbeddingFunction(
+ api_key = "YOUR_API_KEY",
+ account_id = "YOUR_ACCOUNT_ID", # or gateway_endpoint
+ model_name = "@cf/baai/bge-base-en-v1.5",
+ )
+cf_ef(input=["This is my first text to embed", "This is my second document"])
+```
+
+You can pass in an optional `model_name` argument, which lets you choose which Cloudflare Workers AI [model](https://developers.cloudflare.com/workers-ai/models/#text-embeddings) to use. By default, Chroma uses `@cf/baai/bge-base-en-v1.5`.
+
+
+
+
+```javascript
+// const {CloudflareWorkersAIEmbeddingFunction} = require('chromadb'); //CJS import
+import {CloudflareWorkersAIEmbeddingFunction} from "chromadb"; //ESM import
+const embedder = new CloudflareWorkersAIEmbeddingFunction({
+ apiToken: 'YOUR_API_KEY',
+ accountId: "YOUR_ACCOUNT_ID", // or gatewayEndpoint
+ model: '@cf/baai/bge-base-en-v1.5',
+});
+
+// use directly
+const embeddings = embedder.generate(['document1', 'document2']);
+
+// pass documents to query for .add and .query
+const collection = await client.createCollection({name: "name", embeddingFunction: embedder})
+const collectionGet = await client.getCollection({name:"name", embeddingFunction: embedder})
+```
+
+
diff --git a/sidebars.js b/sidebars.js
index 0f613ab..457ddda 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -95,6 +95,7 @@ const sidebars = {
'embeddings/roboflow-api',
'embeddings/hugging-face-embedding-server',
'embeddings/jinaai',
+ 'embeddings/cloudflare',
],
},
],