forked from phoenix/litellm-mirror
(docs) use s3 Cache on litellm proxy
This commit is contained in:
parent
f9139e05e8
commit
30c6d164d2
2 changed files with 67 additions and 32 deletions
|
@ -9,8 +9,13 @@ LiteLLM supports:
|
|||
- Redis Cache
|
||||
- s3 Bucket Cache
|
||||
|
||||
## Quick Start
|
||||
## Quick Start - Redis, s3 Cache
|
||||
<Tabs>
|
||||
|
||||
<TabItem value="redis" label="redis cache">
|
||||
|
||||
Caching can be enabled by adding the `cache` key in the `config.yaml`
|
||||
|
||||
### Step 1: Add `cache` to the config.yaml
|
||||
```yaml
|
||||
model_list:
|
||||
|
@ -48,7 +53,37 @@ REDIS_<redis-kwarg-name> = ""
|
|||
```shell
|
||||
$ litellm --config /path/to/config.yaml
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="s3" label="s3 cache">
|
||||
|
||||
### Step 1: Add `cache` to the config.yaml
|
||||
```yaml
|
||||
model_list:
|
||||
- model_name: gpt-3.5-turbo
|
||||
litellm_params:
|
||||
model: gpt-3.5-turbo
|
||||
- model_name: text-embedding-ada-002
|
||||
litellm_params:
|
||||
model: text-embedding-ada-002
|
||||
|
||||
litellm_settings:
|
||||
set_verbose: True
|
||||
cache: True # set cache responses to True
|
||||
cache_params: # set cache params for s3
|
||||
type: s3
|
||||
s3_bucket_name: cache-bucket-litellm # AWS Bucket Name for S3
|
||||
s3_region_name: us-west-2 # AWS Region Name for S3
|
||||
s3_aws_access_key_id: your_access_key # AWS Access Key ID for S3
|
||||
s3_aws_secret_access_key: your_secret_key # AWS Secret Access Key for S3
|
||||
```
|
||||
|
||||
### Step 2: Run proxy with config
|
||||
```shell
|
||||
$ litellm --config /path/to/config.yaml
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
## Using Caching - /chat/completions
|
||||
|
|
|
@ -544,11 +544,17 @@ def load_router_config(router: Optional[litellm.Router], config_file_path: str):
|
|||
print(f"{blue_color_code}\nSetting Cache on Proxy") # noqa
|
||||
from litellm.caching import Cache
|
||||
|
||||
if isinstance(value, dict):
|
||||
cache_type = value.get("type", "redis")
|
||||
else:
|
||||
cache_type = "redis" # default to using redis on cache
|
||||
cache_responses = True
|
||||
cache_params = {}
|
||||
if "cache_params" in litellm_settings:
|
||||
cache_params_in_config = litellm_settings["cache_params"]
|
||||
# overwrie cache_params with cache_params_in_config
|
||||
cache_params.update(cache_params_in_config)
|
||||
|
||||
cache_type = cache_params.get("type", "redis")
|
||||
|
||||
print_verbose(f"passed cache type={cache_type}")
|
||||
|
||||
if cache_type == "redis":
|
||||
cache_host = litellm.get_secret("REDIS_HOST", None)
|
||||
cache_port = litellm.get_secret("REDIS_PORT", None)
|
||||
cache_password = litellm.get_secret("REDIS_PASSWORD", None)
|
||||
|
@ -559,12 +565,6 @@ def load_router_config(router: Optional[litellm.Router], config_file_path: str):
|
|||
"port": cache_port,
|
||||
"password": cache_password,
|
||||
}
|
||||
|
||||
if "cache_params" in litellm_settings:
|
||||
cache_params_in_config = litellm_settings["cache_params"]
|
||||
# overwrie cache_params with cache_params_in_config
|
||||
cache_params.update(cache_params_in_config)
|
||||
|
||||
# Assuming cache_type, cache_host, cache_port, and cache_password are strings
|
||||
print( # noqa
|
||||
f"{blue_color_code}Cache Type:{reset_color_code} {cache_type}"
|
||||
|
@ -583,7 +583,7 @@ def load_router_config(router: Optional[litellm.Router], config_file_path: str):
|
|||
## to pass a complete url, or set ssl=True, etc. just set it as `os.environ[REDIS_URL] = <your-redis-url>`, _redis.py checks for REDIS specific environment variables
|
||||
litellm.cache = Cache(**cache_params)
|
||||
print( # noqa
|
||||
f"{blue_color_code}Set Cache on LiteLLM Proxy: {litellm.cache.cache}{reset_color_code} {cache_password}"
|
||||
f"{blue_color_code}Set Cache on LiteLLM Proxy: {vars(litellm.cache.cache)}{reset_color_code}"
|
||||
)
|
||||
elif key == "callbacks":
|
||||
litellm.callbacks = [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue