-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #197 from CerebriumAI/kyle/CER-3498-scaling-endpoints
[CER-3498] Scaling, Endpoints, Storage, Collaboration, Navigation changes
- Loading branch information
Showing
16 changed files
with
341 additions
and
308 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
--- | ||
title: "Custom Web Servers" | ||
description: "Run ASGI/WSGI python apps on Cerebrium" | ||
--- | ||
|
||
While Cerebrium's default runtime works well for most app needs, teams sometimes need more control over their web server implementation. Using ASGI or WSGI servers through Cerebrium's custom runtime feature enables capabilities like custom authentication, dynamic batching, frontend dashboards, public endpoints, and websockets. | ||
|
||
## Setting Up Custom Servers | ||
|
||
Here's a simple FastAPI server implementation that shows how custom servers work in Cerebrium: | ||
|
||
```python | ||
from fastapi import FastAPI | ||
|
||
app = FastAPI() | ||
|
||
@app.post("/hello") | ||
def hello(): | ||
return {"message": "Hello Cerebrium!"} | ||
|
||
@app.get("/health") | ||
def health(): | ||
return "Ok" | ||
``` | ||
|
||
Configure this server in `cerebrium.toml` by adding a custom runtime section: | ||
|
||
```toml | ||
[cerebrium.runtime.custom] | ||
port = 5000 | ||
entrypoint = ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000"] | ||
healthcheck_endpoint = "/health" | ||
|
||
[cerebrium.dependencies.pip] | ||
pydantic = "latest" | ||
numpy = "latest" | ||
loguru = "latest" | ||
fastapi = "latest" | ||
``` | ||
|
||
The configuration requires three key parameters: | ||
|
||
- `entrypoint`: The command that starts your server | ||
- `port`: The port your server listens on | ||
- `healthcheck_endpoint`: The endpoint that confirms server health | ||
|
||
<Info> | ||
For ASGI applications like FastAPI, include the appropriate server package | ||
(like `uvicorn`) in your dependencies. After deployment, your endpoints become | ||
available at `https://api.cortex.cerebrium.ai/v4/{project - id}/{app - name} | ||
/your/endpoint`. | ||
</Info> | ||
|
||
Our [FastAPI Server Example](https://github.com/CerebriumAI/examples) provides a complete implementation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
--- | ||
title: "Inference API" | ||
title: "Rest API" | ||
description: "" | ||
--- | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
--- | ||
title: Collaborating on Cerebrium | ||
description: Learn how to manage your team on the platform | ||
--- | ||
|
||
## Managing Team Members | ||
|
||
The Users section in the Cerebrium dashboard provides tools for managing project access and collaboration. From this central location, project administrators can invite team members and control their access levels through role assignments. | ||
|
||
## Adding Team Members | ||
|
||
To add new members to a project: | ||
|
||
1. Navigate to the Users section in the dashboard sidebar | ||
2. Select "Invite New User" in the top right corner | ||
3. Enter the new member's email address | ||
4. Choose their role (Member or Billing) | ||
5. Select "Send Invitation" | ||
|
||
The platform sends an email invitation automatically and tracks its status in the Users table. | ||
|
||
## Access Roles | ||
|
||
Each team member receives a specific role that defines their project access. The Member role enables teams to deploy applications and monitor their performance. For financial management, the Billing role grants additional access to payment settings and usage reporting. | ||
|
||
## Managing Access | ||
|
||
The Users table displays member details, including names, email addresses, roles, and when they joined the project. From this view, administrators can: | ||
|
||
1. Monitor invitation status for pending members | ||
2. Track when members joined the project | ||
3. View current roles and access levels | ||
4. Adjust roles as team needs change | ||
5. Resend invitations when needed | ||
|
||
Once members accept their invitations, they gain immediate access based on their assigned roles and can access their authorised project(s) from the dashboards. |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.