mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 11:14:04 +00:00
use helper to forward headers from request
This commit is contained in:
parent
d1b8c4e08d
commit
bd1f323297
2 changed files with 33 additions and 6 deletions
|
@ -239,6 +239,26 @@ async def chat_completion_pass_through_endpoint(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def forward_headers_from_request(
|
||||||
|
request: Request,
|
||||||
|
headers: dict,
|
||||||
|
forward_headers: Optional[bool] = False,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Helper to forward headers from original request
|
||||||
|
"""
|
||||||
|
if forward_headers is True:
|
||||||
|
request_headers = dict(request.headers)
|
||||||
|
|
||||||
|
# Header We Should NOT forward
|
||||||
|
request_headers.pop("content-length", None)
|
||||||
|
request_headers.pop("host", None)
|
||||||
|
|
||||||
|
# Combine request headers with custom headers
|
||||||
|
headers = {**request_headers, **headers}
|
||||||
|
return headers
|
||||||
|
|
||||||
|
|
||||||
async def pass_through_request(
|
async def pass_through_request(
|
||||||
request: Request,
|
request: Request,
|
||||||
target: str,
|
target: str,
|
||||||
|
@ -255,6 +275,9 @@ async def pass_through_request(
|
||||||
|
|
||||||
url = httpx.URL(target)
|
url = httpx.URL(target)
|
||||||
headers = custom_headers
|
headers = custom_headers
|
||||||
|
headers = forward_headers_from_request(
|
||||||
|
request=request, headers=headers, forward_headers=forward_headers
|
||||||
|
)
|
||||||
|
|
||||||
request_body = await request.body()
|
request_body = await request.body()
|
||||||
body_str = request_body.decode()
|
body_str = request_body.decode()
|
||||||
|
@ -263,10 +286,6 @@ async def pass_through_request(
|
||||||
except:
|
except:
|
||||||
_parsed_body = json.loads(body_str)
|
_parsed_body = json.loads(body_str)
|
||||||
|
|
||||||
if forward_headers is True:
|
|
||||||
request_headers = dict(request.headers)
|
|
||||||
headers = {**headers, **request_headers}
|
|
||||||
|
|
||||||
verbose_proxy_logger.debug(
|
verbose_proxy_logger.debug(
|
||||||
"Pass through endpoint sending request to \nURL {}\nheaders: {}\nbody: {}\n".format(
|
"Pass through endpoint sending request to \nURL {}\nheaders: {}\nbody: {}\n".format(
|
||||||
url, headers, _parsed_body
|
url, headers, _parsed_body
|
||||||
|
@ -443,8 +462,9 @@ async def initialize_pass_through_endpoints(pass_through_endpoints: list):
|
||||||
if _target is None:
|
if _target is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
verbose_proxy_logger.debug("adding pass through endpoint: %s", _path)
|
verbose_proxy_logger.debug(
|
||||||
|
"adding pass through endpoint: %s, dependencies: %s", _path, _dependencies
|
||||||
|
)
|
||||||
app.add_api_route(
|
app.add_api_route(
|
||||||
path=_path,
|
path=_path,
|
||||||
endpoint=create_pass_through_route(
|
endpoint=create_pass_through_route(
|
||||||
|
|
|
@ -40,6 +40,13 @@ files_settings:
|
||||||
|
|
||||||
general_settings:
|
general_settings:
|
||||||
master_key: sk-1234
|
master_key: sk-1234
|
||||||
|
pass_through_endpoints:
|
||||||
|
- path: "/v1/rerank" # route you want to add to LiteLLM Proxy Server
|
||||||
|
target: "https://api.cohere.com/v1/rerank" # URL this route should forward requests to
|
||||||
|
headers: # headers to forward to this URL
|
||||||
|
content-type: application/json # (Optional) Extra Headers to pass to this endpoint
|
||||||
|
accept: application/json
|
||||||
|
forward_headers: True
|
||||||
|
|
||||||
|
|
||||||
litellm_settings:
|
litellm_settings:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue