From ad7e856a02b3c634ec6514ecca752f70b38d7fd0 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Mon, 12 Feb 2024 11:36:52 -0800 Subject: [PATCH 01/12] docs(pii_masking.md): add pii masking to proxy docs --- docs/my-website/docs/proxy/pii_masking.md | 30 ++++++++++++++++++++ docs/my-website/img/presidio_screenshot.png | Bin 0 -> 209727 bytes docs/my-website/sidebars.js | 1 + 3 files changed, 31 insertions(+) create mode 100644 docs/my-website/docs/proxy/pii_masking.md create mode 100644 docs/my-website/img/presidio_screenshot.png diff --git a/docs/my-website/docs/proxy/pii_masking.md b/docs/my-website/docs/proxy/pii_masking.md new file mode 100644 index 000000000..b107567d7 --- /dev/null +++ b/docs/my-website/docs/proxy/pii_masking.md @@ -0,0 +1,30 @@ +import Image from '@theme/IdealImage'; + +# PII Masking + +LiteLLM supports [Microsoft Presidio](https://github.com/microsoft/presidio/) for PII masking. + +## Step 1. Add env + +```bash +export PRESIDIO_ANALYZER_API_BASE="http://localhost:5002" +export PRESIDIO_ANONYMIZER_API_BASE="http://localhost:5001" +``` + +## Step 2. Set it as a callback in config.yaml + +```yaml +litellm_settings: + litellm.callbacks = ["presidio"] +``` + +## Start proxy + +``` +litellm --config /path/to/config.yaml +``` + + +This will mask the input going to the llm provider + + \ No newline at end of file diff --git a/docs/my-website/img/presidio_screenshot.png b/docs/my-website/img/presidio_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..b535b2790bec4a8fe76b7f04c8ceb830c29caf8e GIT binary patch literal 209727 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

&tI^i5x?7lYyZmr&LO}ybFeTZW<7R6jg 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 Date: Mon, 12 Feb 2024 17:25:57 -0800 Subject: [PATCH 02/12] feat(sagemaker.py): initial commit of working sagemaker with aioboto3 --- litellm/llms/sagemaker.py | 141 +++++++++++++++++++++++---------- litellm/main.py | 2 + litellm/tests/test_async_fn.py | 16 ++++ 3 files changed, 117 insertions(+), 42 deletions(-) diff --git a/litellm/llms/sagemaker.py b/litellm/llms/sagemaker.py index 78aafe7f7..cd107df21 100644 --- a/litellm/llms/sagemaker.py +++ b/litellm/llms/sagemaker.py @@ -1,4 +1,4 @@ -import os, types +import os, types, traceback from enum import Enum import json import requests @@ -127,6 +127,7 @@ def completion( optional_params=None, litellm_params=None, logger_fn=None, + acompletion: bool = False, ): import boto3 @@ -213,11 +214,19 @@ def completion( ) return response["Body"] - + elif acompletion == True: + _data = {"inputs": prompt, "parameters": inference_params} + return async_completion( + optional_params=optional_params, + encoding=encoding, + model_response=model_response, + model=model, + logging_obj=logging_obj, + data=_data, + ) data = json.dumps({"inputs": prompt, "parameters": inference_params}).encode( "utf-8" ) - ## LOGGING request_str = f""" response = client.invoke_endpoint( @@ -302,45 +311,93 @@ def completion( return model_response -# async def acompletion( -# client: Any, -# model_response: ModelResponse, -# model: str, -# logging_obj: Any, -# data: dict, -# hf_model_name: str, -# ): -# """ -# Use boto3 create_invocation_async endpoint -# """ -# ## LOGGING -# request_str = f""" -# response = client.invoke_endpoint( -# EndpointName={model}, -# ContentType="application/json", -# Body={data}, -# CustomAttributes="accept_eula=true", -# ) -# """ # type: ignore -# logging_obj.pre_call( -# input=data["prompt"], -# api_key="", -# additional_args={ -# "complete_input_dict": data, -# "request_str": request_str, -# "hf_model_name": hf_model_name, -# }, -# ) -# ## COMPLETION CALL -# try: -# response = client.invoke_endpoint( -# EndpointName=model, -# ContentType="application/json", -# Body=data, -# CustomAttributes="accept_eula=true", -# ) -# except Exception as e: -# raise SagemakerError(status_code=500, message=f"{str(e)}") +async def async_completion( + optional_params, + encoding, + model_response: ModelResponse, + model: str, + logging_obj: Any, + data: dict, +): + """ + Use aioboto3 + """ + import aioboto3 + + session = aioboto3.Session() + async with session.client("sagemaker-runtime", region_name="us-west-2") as client: + ## LOGGING + request_str = f""" + response = client.invoke_endpoint( + EndpointName={model}, + ContentType="application/json", + Body={data}, + CustomAttributes="accept_eula=true", + ) + """ # type: ignore + logging_obj.pre_call( + input=data["inputs"], + api_key="", + additional_args={ + "complete_input_dict": data, + "request_str": request_str, + }, + ) + encoded_data = json.dumps(data).encode("utf-8") + try: + response = await client.invoke_endpoint( + EndpointName=model, + ContentType="application/json", + Body=encoded_data, + CustomAttributes="accept_eula=true", + ) + except Exception as e: + raise SagemakerError(status_code=500, message=f"{str(e)}") + response = await response["Body"].read() + response = response.decode("utf8") + ## LOGGING + logging_obj.post_call( + input=data["inputs"], + api_key="", + original_response=response, + additional_args={"complete_input_dict": data}, + ) + ## RESPONSE OBJECT + completion_response = json.loads(response) + try: + completion_response_choices = completion_response[0] + completion_output = "" + if "generation" in completion_response_choices: + completion_output += completion_response_choices["generation"] + elif "generated_text" in completion_response_choices: + completion_output += completion_response_choices["generated_text"] + + # check if the prompt template is part of output, if so - filter it out + if completion_output.startswith(data["inputs"]) and "" in data["inputs"]: + completion_output = completion_output.replace(data["inputs"], "", 1) + + model_response["choices"][0]["message"]["content"] = completion_output + except: + raise SagemakerError( + message=f"LiteLLM Error: Unable to parse sagemaker RAW RESPONSE {json.dumps(completion_response)}", + status_code=500, + ) + + ## CALCULATING USAGE - baseten charges on time, not tokens - have some mapping of cost here. + prompt_tokens = len(encoding.encode(data["inputs"])) + completion_tokens = len( + encoding.encode(model_response["choices"][0]["message"].get("content", "")) + ) + + model_response["created"] = int(time.time()) + model_response["model"] = model + usage = Usage( + prompt_tokens=prompt_tokens, + completion_tokens=completion_tokens, + total_tokens=prompt_tokens + completion_tokens, + ) + model_response.usage = usage + return model_response def embedding( diff --git a/litellm/main.py b/litellm/main.py index a7990ecfb..31dd4324c 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -264,6 +264,7 @@ async def acompletion( or custom_llm_provider == "ollama" or custom_llm_provider == "ollama_chat" or custom_llm_provider == "vertex_ai" + or custom_llm_provider == "sagemaker" or custom_llm_provider in litellm.openai_compatible_providers ): # currently implemented aiohttp calls for just azure, openai, hf, ollama, vertex ai soon all. init_response = await loop.run_in_executor(None, func_with_context) @@ -1553,6 +1554,7 @@ def completion( logger_fn=logger_fn, encoding=encoding, logging_obj=logging, + acompletion=acompletion, ) if ( "stream" in optional_params and optional_params["stream"] == True diff --git a/litellm/tests/test_async_fn.py b/litellm/tests/test_async_fn.py index fa32ce331..816ef1509 100644 --- a/litellm/tests/test_async_fn.py +++ b/litellm/tests/test_async_fn.py @@ -201,6 +201,22 @@ async def test_hf_completion_tgi(): # test_get_cloudflare_response_streaming() +@pytest.mark.asyncio +async def test_completion_sagemaker(): + # litellm.set_verbose=True + try: + response = await acompletion( + model="sagemaker/berri-benchmarking-Llama-2-70b-chat-hf-4", + messages=[{"content": "Hello, how are you?", "role": "user"}], + ) + # Add any assertions here to check the response + print(response) + except litellm.Timeout as e: + pass + except Exception as e: + pytest.fail(f"Error occurred: {e}") + + def test_get_response_streaming(): import asyncio From b1bc30ee16584f5b499f1da68b5a67866ea23638 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Mon, 12 Feb 2024 21:18:34 -0800 Subject: [PATCH 03/12] feat(sagemaker.py): aioboto3 streaming support --- litellm/llms/sagemaker.py | 85 ++++++++++++++++++++++++++++----- litellm/main.py | 2 +- litellm/tests/test_streaming.py | 4 +- litellm/utils.py | 2 + 4 files changed, 80 insertions(+), 13 deletions(-) diff --git a/litellm/llms/sagemaker.py b/litellm/llms/sagemaker.py index cd107df21..e91913584 100644 --- a/litellm/llms/sagemaker.py +++ b/litellm/llms/sagemaker.py @@ -30,8 +30,11 @@ import json class TokenIterator: - def __init__(self, stream): - self.byte_iterator = iter(stream) + def __init__(self, stream, acompletion: bool): + if acompletion == False: + self.byte_iterator = iter(stream) + elif acompletion == True: + self.byte_iterator = stream self.buffer = io.BytesIO() self.read_pos = 0 self.end_of_data = False @@ -64,6 +67,34 @@ class TokenIterator: self.end_of_data = True return "data: [DONE]" + def __aiter__(self): + return self + + async def __anext__(self): + try: + while True: + self.buffer.seek(self.read_pos) + line = self.buffer.readline() + if line and line[-1] == ord("\n"): + response_obj = {"text": "", "is_finished": False} + self.read_pos += len(line) + 1 + full_line = line[:-1].decode("utf-8") + line_data = json.loads(full_line.lstrip("data:").rstrip("/n")) + if line_data.get("generated_text", None) is not None: + self.end_of_data = True + response_obj["is_finished"] = True + response_obj["text"] = line_data["token"]["text"] + return response_obj + chunk = await anext(self.byte_iterator) + self.buffer.seek(0, io.SEEK_END) + self.buffer.write(chunk["PayloadPart"]["Bytes"]) + except StopAsyncIteration as e: + if self.end_of_data == True: + raise e # Re-raise StopIteration + else: + self.end_of_data = True + return "data: [DONE]" + class SagemakerConfig: """ @@ -197,15 +228,16 @@ def completion( data = json.dumps( {"inputs": prompt, "parameters": inference_params, "stream": True} ).encode("utf-8") - ## LOGGING - request_str = f""" - response = client.invoke_endpoint_with_response_stream( - EndpointName={model}, - ContentType="application/json", - Body={data}, - CustomAttributes="accept_eula=true", - ) - """ # type: ignore + if acompletion == True: + response = async_streaming( + optional_params=optional_params, + encoding=encoding, + model_response=model_response, + model=model, + logging_obj=logging_obj, + data=data, + ) + return response response = client.invoke_endpoint_with_response_stream( EndpointName=model, ContentType="application/json", @@ -311,6 +343,37 @@ def completion( return model_response +async def async_streaming( + optional_params, + encoding, + model_response: ModelResponse, + model: str, + logging_obj: Any, + data, +): + """ + Use aioboto3 + """ + import aioboto3 + + session = aioboto3.Session() + async with session.client("sagemaker-runtime", region_name="us-west-2") as client: + try: + response = await client.invoke_endpoint_with_response_stream( + EndpointName=model, + ContentType="application/json", + Body=data, + CustomAttributes="accept_eula=true", + ) + except Exception as e: + raise SagemakerError(status_code=500, message=f"{str(e)}") + response = response["Body"] + # filtered_response = TokenIterator(stream=response, acompletion=True) + async for chunk in response: + yield chunk + # return + + async def async_completion( optional_params, encoding, diff --git a/litellm/main.py b/litellm/main.py index 31dd4324c..2d27dc6b9 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -1562,7 +1562,7 @@ def completion( print_verbose(f"ENTERS SAGEMAKER CUSTOMSTREAMWRAPPER") from .llms.sagemaker import TokenIterator - tokenIterator = TokenIterator(model_response) + tokenIterator = TokenIterator(model_response, acompletion=acompletion) response = CustomStreamWrapper( completion_stream=tokenIterator, model=model, diff --git a/litellm/tests/test_streaming.py b/litellm/tests/test_streaming.py index 28a9f9902..a5497b539 100644 --- a/litellm/tests/test_streaming.py +++ b/litellm/tests/test_streaming.py @@ -876,7 +876,6 @@ async def test_sagemaker_streaming_async(): temperature=0.7, stream=True, ) - # Add any assertions here to check the response print(response) complete_response = "" @@ -900,6 +899,9 @@ async def test_sagemaker_streaming_async(): pytest.fail(f"An exception occurred - {str(e)}") +asyncio.run(test_sagemaker_streaming_async()) + + def test_completion_sagemaker_stream(): try: response = completion( diff --git a/litellm/utils.py b/litellm/utils.py index ac26e0864..b67025a49 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -8691,6 +8691,8 @@ class CustomStreamWrapper: or self.custom_llm_provider == "ollama" or self.custom_llm_provider == "ollama_chat" or self.custom_llm_provider == "vertex_ai" + or self.custom_llm_provider == "sagemaker" + or self.custom_llm_provider in litellm.openai_compatible_endpoints ): print_verbose( f"value of async completion stream: {self.completion_stream}" From 2f815705ca565a9f78be6d8d0d965dd91c65ab12 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Mon, 12 Feb 2024 22:13:35 -0800 Subject: [PATCH 04/12] fix(sagemaker.py): use __anext__ --- litellm/llms/sagemaker.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/litellm/llms/sagemaker.py b/litellm/llms/sagemaker.py index e91913584..b8ebc05bb 100644 --- a/litellm/llms/sagemaker.py +++ b/litellm/llms/sagemaker.py @@ -85,7 +85,7 @@ class TokenIterator: response_obj["is_finished"] = True response_obj["text"] = line_data["token"]["text"] return response_obj - chunk = await anext(self.byte_iterator) + chunk = await self.byte_iterator.__anext__() self.buffer.seek(0, io.SEEK_END) self.buffer.write(chunk["PayloadPart"]["Bytes"]) except StopAsyncIteration as e: @@ -368,10 +368,8 @@ async def async_streaming( except Exception as e: raise SagemakerError(status_code=500, message=f"{str(e)}") response = response["Body"] - # filtered_response = TokenIterator(stream=response, acompletion=True) async for chunk in response: yield chunk - # return async def async_completion( From 18f5540146a6c6e6d6a00c231a7f83443baabce6 Mon Sep 17 00:00:00 2001 From: Krish Dholakia Date: Mon, 12 Feb 2024 22:21:11 -0800 Subject: [PATCH 05/12] Updated config.yml --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index c1224159a..e540628db 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -124,6 +124,7 @@ jobs: pip install "google-generativeai>=0.3.2" pip install "google-cloud-aiplatform>=1.38.0" pip install "boto3>=1.28.57" + pip install "aioboto3>=12.3.0" pip install langchain pip install "langfuse>=2.0.0" pip install numpydoc From 81bbabdbcfd40dd9f005c5eb7e766d436c13c23b Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Mon, 12 Feb 2024 22:26:40 -0800 Subject: [PATCH 06/12] refactor(main.py): trigger rebuild --- litellm/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/litellm/main.py b/litellm/main.py index 2d27dc6b9..7de82c9ab 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -10,7 +10,6 @@ import os, openai, sys, json, inspect, uuid, datetime, threading from typing import Any, Literal, Union from functools import partial - import dotenv, traceback, random, asyncio, time, contextvars from copy import deepcopy import httpx From 90214a8ca99ca2800113000829611baf748d609b Mon Sep 17 00:00:00 2001 From: Krish Dholakia Date: Mon, 12 Feb 2024 22:31:22 -0800 Subject: [PATCH 07/12] Updated config.yml --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index e540628db..a24ae1d8e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,6 +31,7 @@ jobs: pip install "google-generativeai>=0.3.2" pip install "google-cloud-aiplatform>=1.38.0" pip install "boto3>=1.28.57" + pip install "aioboto3>=12.3.0" pip install langchain pip install "langfuse>=2.0.0" pip install numpydoc From 3b1cef3e96083bfb9584cbb5961dc9cb25b68158 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Mon, 12 Feb 2024 22:32:22 -0800 Subject: [PATCH 08/12] refactor(main.py): trigger rebuild --- litellm/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/litellm/main.py b/litellm/main.py index 7de82c9ab..2d27dc6b9 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -10,6 +10,7 @@ import os, openai, sys, json, inspect, uuid, datetime, threading from typing import Any, Literal, Union from functools import partial + import dotenv, traceback, random, asyncio, time, contextvars from copy import deepcopy import httpx From 3ef391800a8ce415e6fe07cafb46e9a7c1a9216d Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Tue, 13 Feb 2024 21:41:09 -0800 Subject: [PATCH 09/12] fix(sagemaker.py): fix token iterator default flag --- litellm/llms/sagemaker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/litellm/llms/sagemaker.py b/litellm/llms/sagemaker.py index b8ebc05bb..aa29b509d 100644 --- a/litellm/llms/sagemaker.py +++ b/litellm/llms/sagemaker.py @@ -30,7 +30,7 @@ import json class TokenIterator: - def __init__(self, stream, acompletion: bool): + def __init__(self, stream, acompletion: bool = False): if acompletion == False: self.byte_iterator = iter(stream) elif acompletion == True: From f9ab7e7b1425fa5cb2b7147eb652743b978824ac Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Tue, 13 Feb 2024 22:59:07 -0800 Subject: [PATCH 10/12] fix: fix bugs --- litellm/integrations/langfuse.py | 4 ++-- litellm/proxy/proxy_server.py | 33 +++++++++----------------------- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/litellm/integrations/langfuse.py b/litellm/integrations/langfuse.py index 5a57d1359..b548f22bc 100644 --- a/litellm/integrations/langfuse.py +++ b/litellm/integrations/langfuse.py @@ -231,7 +231,7 @@ class LangFuseLogger: print_verbose(f"Langfuse Layer Logging - logging to langfuse v2 ") if supports_tags: - metadata_tags = metadata["tags"] + metadata_tags = metadata.get("tags", []) tags = metadata_tags generation_name = metadata.get("generation_name", None) @@ -278,7 +278,7 @@ class LangFuseLogger: "prompt_tokens": response_obj["usage"]["prompt_tokens"], "completion_tokens": response_obj["usage"]["completion_tokens"], "total_cost": cost if supports_costs else None, - } + } generation_params = { "name": generation_name, "id": metadata.get("generation_id", generation_id), diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 4927f3db4..43a80bf2f 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -166,9 +166,9 @@ class ProxyException(Exception): async def openai_exception_handler(request: Request, exc: ProxyException): # NOTE: DO NOT MODIFY THIS, its crucial to map to Openai exceptions return JSONResponse( - status_code=int(exc.code) - if exc.code - else status.HTTP_500_INTERNAL_SERVER_ERROR, + status_code=( + int(exc.code) if exc.code else status.HTTP_500_INTERNAL_SERVER_ERROR + ), content={ "error": { "message": exc.message, @@ -1885,24 +1885,7 @@ async def async_data_generator(response, user_api_key_dict): def select_data_generator(response, user_api_key_dict): - try: - # since boto3 - sagemaker does not support async calls, we should use a sync data_generator - if hasattr( - response, "custom_llm_provider" - ) and response.custom_llm_provider in ["sagemaker"]: - return data_generator( - response=response, - ) - else: - # default to async_data_generator - return async_data_generator( - response=response, user_api_key_dict=user_api_key_dict - ) - except: - # worst case - use async_data_generator - return async_data_generator( - response=response, user_api_key_dict=user_api_key_dict - ) + return async_data_generator(response=response, user_api_key_dict=user_api_key_dict) def get_litellm_model_info(model: dict = {}): @@ -4483,9 +4466,11 @@ async def get_routes(): "path": getattr(route, "path", None), "methods": getattr(route, "methods", None), "name": getattr(route, "name", None), - "endpoint": getattr(route, "endpoint", None).__name__ - if getattr(route, "endpoint", None) - else None, + "endpoint": ( + getattr(route, "endpoint", None).__name__ + if getattr(route, "endpoint", None) + else None + ), } routes.append(route_info) From f6efa7596eae43529034e87de58bc52dc2b0ce9e Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Wed, 14 Feb 2024 21:11:08 -0800 Subject: [PATCH 11/12] build(requirements.txt): adding aioboto3 --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 55c5f1456..902bd1e0e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -30,4 +30,5 @@ click==8.1.7 # for proxy cli jinja2==3.1.2 # for prompt templates certifi>=2023.7.22 # [TODO] clean up aiohttp==3.9.0 # for network calls +aioboto3==12.3.0 # for async sagemaker calls #### \ No newline at end of file From 1d8b0dd2bb83e3f0100d46f5cf052a7ed598541b Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Wed, 14 Feb 2024 21:15:37 -0800 Subject: [PATCH 12/12] build(requirements.txt): update boto3 version --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 902bd1e0e..ec8e77ce8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ backoff==2.2.1 # server dep pyyaml>=6.0.1 # server dep uvicorn==0.22.0 # server dep gunicorn==21.2.0 # server dep -boto3==1.28.58 # aws bedrock/sagemaker calls +boto3==1.34.34 # aws bedrock/sagemaker calls redis==5.0.0 # caching numpy==1.24.3 # semantic caching prisma==0.11.0 # for db