θΏ™ζ˜―indexlocζδΎ›ηš„ζœεŠ‘οΌŒδΈθ¦θΎ“ε…₯任何密码
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions docker/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,8 @@ GID='1000'
# CHROMA_ENDPOINT='http://host.docker.internal:8000'
# CHROMA_API_HEADER="X-Api-Key"
# CHROMA_API_KEY="sk-123abc"
# CHROMA_TENANT="default_tenant" # Optional: for Chroma Cloud multi-tenancy
# CHROMA_DATABASE_NAME="default_database" # Optional: for Chroma Cloud database selection

# Enable all below if you are using vector database: Pinecone.
# VECTOR_DB="pinecone"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,42 @@ export default function ChromaDBOptions({ settings }) {
/>
</div>
</div>

<div className="w-full flex items-center gap-[36px] mt-1.5">
<div className="flex flex-col w-60">
<label className="text-white text-sm font-semibold block mb-3">
Tenant
<span className="text-xs text-theme-text-secondary font-normal ml-2">
(optional, for Chroma Cloud)
</span>
</label>
<input
name="ChromaTenant"
autoComplete="off"
type="text"
defaultValue={settings?.ChromaTenant}
className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
placeholder="default_tenant"
/>
</div>

<div className="flex flex-col w-60">
<label className="text-white text-sm font-semibold block mb-3">
Database Name
<span className="text-xs text-theme-text-secondary font-normal ml-2">
(optional, for Chroma Cloud)
</span>
</label>
<input
name="ChromaDatabaseName"
autoComplete="off"
type="text"
defaultValue={settings?.ChromaDatabaseName}
className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
placeholder="default_database"
/>
</div>
</div>
</div>
);
}
2 changes: 2 additions & 0 deletions server/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,8 @@ SIG_SALT='salt' # Please generate random string at least 32 chars long.
# CHROMA_ENDPOINT='http://localhost:8000'
# CHROMA_API_HEADER="X-Api-Key"
# CHROMA_API_KEY="sk-123abc"
# CHROMA_TENANT="default_tenant" # Optional: for Chroma Cloud multi-tenancy
# CHROMA_DATABASE_NAME="default_database" # Optional: for Chroma Cloud database selection

# Enable all below if you are using vector database: Pinecone.
# VECTOR_DB="pinecone"
Expand Down
2 changes: 2 additions & 0 deletions server/models/systemSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,8 @@ const SystemSettings = {
ChromaEndpoint: process.env.CHROMA_ENDPOINT,
ChromaApiHeader: process.env.CHROMA_API_HEADER,
ChromaApiKey: !!process.env.CHROMA_API_KEY,
ChromaTenant: process.env.CHROMA_TENANT,
ChromaDatabaseName: process.env.CHROMA_DATABASE_NAME,

// Weaviate DB Keys
WeaviateEndpoint: process.env.WEAVIATE_ENDPOINT,
Expand Down
8 changes: 8 additions & 0 deletions server/utils/helpers/updateENV.js
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,14 @@ const KEY_MAPPING = {
envKey: "CHROMA_API_KEY",
checks: [],
},
ChromaTenant: {
envKey: "CHROMA_TENANT",
checks: [],
},
ChromaDatabaseName: {
envKey: "CHROMA_DATABASE_NAME",
checks: [],
},

// Weaviate Options
WeaviateEndpoint: {
Expand Down
11 changes: 11 additions & 0 deletions server/utils/vectorDbProviders/chroma/CHROMA_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,15 @@ VECTOR_DB="chroma"
CHROMA_ENDPOINT='http://localhost:8000'
# CHROMA_API_HEADER="X-Api-Key" // If you have an Auth middleware on your instance.
# CHROMA_API_KEY="sk-123abc" // If you have an Auth middleware on your instance.
# CHROMA_TENANT="default_tenant" // Optional: for Chroma Cloud multi-tenancy
# CHROMA_DATABASE_NAME="default_database" // Optional: for Chroma Cloud database selection
```

### Chroma Cloud Configuration

When using Chroma Cloud, you can configure additional parameters for multi-tenancy:

- **CHROMA_TENANT**: Specify the tenant to use (defaults to "default_tenant" if not set)
- **CHROMA_DATABASE_NAME**: Specify the database within the tenant (defaults to "default_database" if not set)

These parameters are useful for organizing data in multi-tenant Chroma Cloud deployments where you need to isolate data by tenant and database.
6 changes: 6 additions & 0 deletions server/utils/vectorDbProviders/chroma/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ const Chroma = {
},
}
: {}),
...(process.env.CHROMA_TENANT
? { tenant: process.env.CHROMA_TENANT }
: {}),
...(process.env.CHROMA_DATABASE_NAME
? { database: process.env.CHROMA_DATABASE_NAME }
: {}),
});

const isAlive = await client.heartbeat();
Expand Down