mirror of
https://github.com/vale981/ray
synced 2025-03-10 21:36:39 -04:00
105 lines
3.8 KiB
Markdown
105 lines
3.8 KiB
Markdown
![]() |
(serve-migration)=
|
||
|
|
||
|
# Serve 1.x to 2.x API Migration Guide
|
||
|
|
||
|
This section is to help you migrate the deployment API from 1.x to 2.x.
|
||
|
|
||
|
## What has been changed?
|
||
|
|
||
|
In Ray Serve 2.0, we released a [new deployment API](converting-to-ray-serve-deployment). The 1.x deployment API can still be used, but it will be deprecated in the future version.
|
||
|
|
||
|
|
||
|
## Migrating the 1.x Deployment
|
||
|
|
||
|
### Migrating handle pass between deployments
|
||
|
In the 1.x deployment, we usually pass handle of deployment to chain the deployments.
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __raw_handle_graph_start__
|
||
|
:end-before: __raw_handle_graph_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
With the 2.0 deployment API, you can use the following code to update the above one.
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __graph_with_new_api_start__
|
||
|
:end-before: __graph_with_new_api_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
:::{note}
|
||
|
- `get_handle` can be replaced by `bind()` function to fulfill same functionality.
|
||
|
- `serve.run` will return the entry point deployment handle for your whole chained deployments.
|
||
|
:::
|
||
|
|
||
|
### Migrating a single deployment to the new deployment API
|
||
|
|
||
|
In the 1.x deployment API, we usually have the following code for deployment.
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __single_deployment_old_api_start__
|
||
|
:end-before: __single_deployment_old_api_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
With the 2.0 deployment API, you can use the following code to update the above one.
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __single_deployment_new_api_start__
|
||
|
:end-before: __single_deployment_new_api_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
|
||
|
### Migrate Multiple deployment to new deployment API
|
||
|
|
||
|
When you have multiple deployments, here is the normal code for 1.x API
|
||
|
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __multi_deployments_old_api_start__
|
||
|
:end-before: __multi_deployments_old_api_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
With the 2.0 deployment API, you can use the following code to update the above one.
|
||
|
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __multi_deployments_new_api_start__
|
||
|
:end-before: __multi_deployments_new_api_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
|
||
|
:::{note}
|
||
|
- `predict` method is defined inside `DAGDriver` class as an entry point to fulfil requests
|
||
|
- Similar to `predict` method, `predict_with_route` method is defined inside `DAGDriver` class as an entry point to fulfil requests.
|
||
|
- `DAGDriver` is a special class to handle multi entry points for different deployments
|
||
|
- `DAGDriver.bind` can accept dictionary and each key is represented as entry point route path.
|
||
|
- `predict_with_route` accepts a route path as the first argument to select which model to use.
|
||
|
- In the example, you can also use an HTTP request to fulfill your request. Different models will bind with different route paths based on the user inputs; e.g. http://localhost:8000/model1 and http://localhost:8000/model2
|
||
|
:::
|
||
|
|
||
|
|
||
|
### Migrate deployments with route prefixes
|
||
|
|
||
|
Sometimes, you have a customized route prefix for each deployment:
|
||
|
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __customized_route_old_api_start__
|
||
|
:end-before: __customized_route_old_api_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
With the 2.0 deployment API, you can use the following code to update the above one.
|
||
|
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __customized_route_old_api_1_start__
|
||
|
:end-before: __customized_route_old_api_1_end__
|
||
|
:language: python
|
||
|
```
|
||
|
|
||
|
Or if you have multiple deployments and want to customize the HTTP route prefix for each model, you can use the following code:
|
||
|
|
||
|
```{literalinclude} ../serve/doc_code/migration_example.py
|
||
|
:start-after: __customized_route_old_api_2_start__
|
||
|
:end-before: __customized_route_old_api_2_end__
|
||
|
:language: python
|
||
|
```
|