From 8f155246570dfa9649cc1fdc4a0f70c06090845b Mon Sep 17 00:00:00 2001 From: Marc Klingen Date: Thu, 10 Oct 2024 19:00:45 -0700 Subject: [PATCH] docs: replace bedrock docs page with cookbook (#850) --- cookbook/_routes.json | 4 + cookbook/integration_amazon_bedrock.ipynb | 348 ++++++++++++++++++ pages/docs/integrations/amazon-bedrock.md | 219 +++++++++++ pages/docs/integrations/amazon-bedrock.mdx | 37 -- .../cookbook/integration_amazon_bedrock.md | 219 +++++++++++ .../bedrock-converse-trace.png | Bin 0 -> 117155 bytes 6 files changed, 790 insertions(+), 37 deletions(-) create mode 100644 cookbook/integration_amazon_bedrock.ipynb create mode 100644 pages/docs/integrations/amazon-bedrock.md delete mode 100644 pages/docs/integrations/amazon-bedrock.mdx create mode 100644 pages/guides/cookbook/integration_amazon_bedrock.md create mode 100644 public/images/cookbook/integration-amazon-bedrock/bedrock-converse-trace.png diff --git a/cookbook/_routes.json b/cookbook/_routes.json index 8f0f97979..de2df5121 100644 --- a/cookbook/_routes.json +++ b/cookbook/_routes.json @@ -142,5 +142,9 @@ { "notebook": "example_intent_classification_pipeline.ipynb", "docsPath": "docs/analytics/example-intent-classification" + }, + { + "notebook": "integration_amazon_bedrock.ipynb", + "docsPath": "docs/integrations/amazon-bedrock" } ] diff --git a/cookbook/integration_amazon_bedrock.ipynb b/cookbook/integration_amazon_bedrock.ipynb new file mode 100644 index 000000000..bd4a73463 --- /dev/null +++ b/cookbook/integration_amazon_bedrock.ipynb @@ -0,0 +1,348 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "OY7q37b9OY5z" + }, + "source": [ + "---\n", + "title: Observability and Metrics for Amazon Bedrock\n", + "description: Open source observability for Amazon Bedrock applications and the Bedrock SDK.\n", + "---\n", + "\n", + "# Amazon Bedrock Integration\n", + "\n", + "[**Amazon Bedrock**](https://aws.amazon.com/bedrock/) is a fully managed AWS service that lets you use foundation models and custom models to generate text, images, and audio.\n", + "\n", + "When **using Langfuse with Amazon Bedrock**, you can easily capture [detailed traces](https://langfuse.com/docs/tracing) and metrics for every request, giving you insights into the performance and behavior of your application.\n", + "\n", + "## Integration Options\n", + "\n", + "There are a few ways through which you can capture traces and metrics for Amazon Bedrock:\n", + "\n", + "1. via an application framework that is integrated with Langfuse:\n", + "\n", + " - [Langchain](https://langfuse.com/docs/integrations/langchain)\n", + " - [Llama Index](https://langfuse.com/docs/integrations/llama-index)\n", + " - [Haystack](https://langfuse.com/docs/integrations/haystack)\n", + "\n", + "2. via a Proxy such as [LiteLLM](https://langfuse.com/docs/integrations/litellm)\n", + "3. via wrapping the Bedrock SDK with the [Langfuse Decorator](https://langfuse.com/docs/sdk/python/decorators) (_see example below_)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xyhx0DZlO-nq" + }, + "source": [ + "## How to wrap Amazon Bedrock SDK (Converse API)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "id": "5r6s6RZ6odLf" + }, + "outputs": [], + "source": [ + "# install requirements\n", + "%pip install boto3 langfuse awscli --quiet" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ebl_A9fyuBsK" + }, + "source": [ + "### Authenticate AWS Session\n", + "\n", + "Sign in with your AWS Role that has access to Amazon Bedrock." + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "id": "Gv3syLHVvKGZ" + }, + "outputs": [], + "source": [ + "AWS_ACCESS_KEY_ID=\"***\"\n", + "AWS_SECRET_ACCESS_KEY=\"***\"\n", + "AWS_SESSION_TOKEN=\"***\"\n", + "\n", + "import boto3\n", + "\n", + "# used to access Bedrock configuration\n", + "bedrock = boto3.client(\n", + " service_name=\"bedrock\",\n", + " region_name=\"eu-west-1\",\n", + " aws_access_key_id=AWS_ACCESS_KEY_ID,\n", + " aws_secret_access_key=AWS_SECRET_ACCESS_KEY,\n", + " aws_session_token=AWS_SESSION_TOKEN\n", + ")\n", + "\n", + "# used to invoke the Bedrock Converse API\n", + "bedrock_runtime = boto3.client(\n", + " service_name=\"bedrock-runtime\",\n", + " region_name=\"eu-west-1\",\n", + " aws_access_key_id=AWS_ACCESS_KEY_ID,\n", + " aws_secret_access_key=AWS_SECRET_ACCESS_KEY,\n", + " aws_session_token=AWS_SESSION_TOKEN\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "-WI3Resu4eqE", + "outputId": "6004b21f-b05f-4c20-b465-40b081b9d947" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "EU Anthropic Claude 3 Sonnet - eu.anthropic.claude-3-sonnet-20240229-v1:0\n", + "EU Anthropic Claude 3 Haiku - eu.anthropic.claude-3-haiku-20240307-v1:0\n", + "EU Anthropic Claude 3.5 Sonnet - eu.anthropic.claude-3-5-sonnet-20240620-v1:0\n", + "EU Meta Llama 3.2 3B Instruct - eu.meta.llama3-2-3b-instruct-v1:0\n", + "EU Meta Llama 3.2 1B Instruct - eu.meta.llama3-2-1b-instruct-v1:0\n" + ] + } + ], + "source": [ + "# Check which models are available in your account\n", + "models = bedrock.list_inference_profiles()\n", + "for model in models[\"inferenceProfileSummaries\"]:\n", + " print(model[\"inferenceProfileName\"] + \" - \" + model[\"inferenceProfileId\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0Te0Xfs6Enll" + }, + "source": [ + "### Set Langfuse Credentials" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "id": "hv_Zj31HEkqv" + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "# Get keys for your project from the project settings page\n", + "# https://cloud.langfuse.com\n", + "os.environ[\"LANGFUSE_PUBLIC_KEY\"] = \"\"\n", + "os.environ[\"LANGFUSE_SECRET_KEY\"] = \"\"\n", + "os.environ[\"LANGFUSE_HOST\"] = \"https://cloud.langfuse.com\" # πŸ‡ͺπŸ‡Ί EU region\n", + "# os.environ[\"LANGFUSE_HOST\"] = \"https://us.cloud.langfuse.com\" # πŸ‡ΊπŸ‡Έ US region\n", + "\n", + "# Your openai key\n", + "os.environ[\"OPENAI_API_KEY\"] = \"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GZXzAeJL5sCB" + }, + "source": [ + "### Wrap Bedrock SDK" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "id": "U9KeL8J5ETGn" + }, + "outputs": [], + "source": [ + "from langfuse.decorators import observe, langfuse_context\n", + "from botocore.exceptions import ClientError\n", + "\n", + "@observe(as_type=\"generation\", name=\"Bedrock Converse\")\n", + "def wrapped_bedrock_converse(**kwargs):\n", + " # 1. extract model metadata\n", + " kwargs_clone = kwargs.copy()\n", + " input = kwargs_clone.pop('messages', None)\n", + " modelId = kwargs_clone.pop('modelId', None)\n", + " model_parameters = {\n", + " **kwargs_clone.pop('inferenceConfig', {}),\n", + " **kwargs_clone.pop('additionalModelRequestFields', {})\n", + " }\n", + " langfuse_context.update_current_observation(\n", + " input=input,\n", + " model=modelId,\n", + " model_parameters=model_parameters,\n", + " metadata=kwargs_clone\n", + " )\n", + "\n", + " # 2. model call with error handling\n", + " try:\n", + " response = bedrock_runtime.converse(**kwargs)\n", + " except (ClientError, Exception) as e:\n", + " error_message = f\"ERROR: Can't invoke '{modelId}'. Reason: {e}\"\n", + " langfuse_context.update_current_observation(level=\"ERROR\", status_message=error_message)\n", + " print(error_message)\n", + " return\n", + "\n", + " # 3. extract response metadata\n", + " response_text = response[\"output\"][\"message\"][\"content\"][0][\"text\"]\n", + " langfuse_context.update_current_observation(\n", + " output=response_text,\n", + " usage={\n", + " \"input\": response[\"usage\"][\"inputTokens\"],\n", + " \"output\": response[\"usage\"][\"outputTokens\"],\n", + " \"total\": response[\"usage\"][\"totalTokens\"]\n", + " },\n", + " metadata={\n", + " \"ResponseMetadata\": response[\"ResponseMetadata\"],\n", + " }\n", + " )\n", + "\n", + " return response_text" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SAa-Sp2BK4H5" + }, + "source": [ + "### Run Example" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "zBTNm3iOLd8v", + "outputId": "d39d0b74-e011-47d1-cf8a-a21211fb9de9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Anthropic\n", + "Understood. I'll continue to act as Alex, the AI personal finance advisor from SmartFinance Advisors, maintaining that character throughout our interaction. I'll provide financial advice and guidance based on the user's questions and needs. If I'm unsure about something, I'll ask for clarification as instructed. How may I assist you with your financial matters today?\n", + "\n", + "Llama3-2\n", + "Hello again! I'm glad you're excited about receiving my advice. How can I assist you with your financial goals today? Are you looking to create a budget, paying off debt, saving for a specific goal, or something else entirely?\n", + "\n" + ] + } + ], + "source": [ + "# Converesation according to AWS spec including prompting + history\n", + "user_message = \"\"\"You will be acting as an AI personal finance advisor named Alex, created by the company SmartFinance Advisors. Your goal is to provide financial advice and guidance to users. You will be replying to users who are on the SmartFinance Advisors site and who will be confused if you don't respond in the character of Alex.\n", + "\n", + "Here is the conversational history (between the user and you) prior to the question. It could be empty if there is no history:\n", + "\n", + "User: Hi Alex, I'm really looking forward to your advice!\n", + "Alex: Hello! I'm Alex, your AI personal finance advisor from SmartFinance Advisors. How can I assist you with your financial goals today?\n", + "\n", + "\n", + "Here are some important rules for the interaction:\n", + "- Always stay in character, as Alex, an AI from SmartFinance Advisors.\n", + "- If you are unsure how to respond, say \"I'm sorry, I didn't quite catch that. Could you please rephrase your question?\"\n", + "\"\"\"\n", + "\n", + "conversation = [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": [{\"text\": user_message}],\n", + " }\n", + "]\n", + "\n", + "@observe()\n", + "def examples_bedrock_converse_api():\n", + " responses = {}\n", + "\n", + " responses[\"anthropic\"] = wrapped_bedrock_converse(\n", + " modelId=\"eu.anthropic.claude-3-5-sonnet-20240620-v1:0\",\n", + " messages=conversation,\n", + " inferenceConfig={\"maxTokens\":500,\"temperature\":1},\n", + " additionalModelRequestFields={\"top_k\":250}\n", + " )\n", + "\n", + " responses[\"llama3-2\"] = wrapped_bedrock_converse(\n", + " modelId=\"eu.meta.llama3-2-3b-instruct-v1:0\",\n", + " messages=conversation,\n", + " inferenceConfig={\"maxTokens\":500,\"temperature\":1},\n", + " )\n", + "\n", + " return responses\n", + "\n", + "res = examples_bedrock_converse_api()\n", + "\n", + "for key, value in res.items():\n", + " print(f\"{key.title()}\\n{value}\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zMOPRjKjNKiz" + }, + "source": [ + "Example trace: https://cloud.langfuse.com/project/cloramnkj0002jz088vzn1ja4/traces/f01a828c-fed1-45e1-b836-cd74c331597d?observation=512a4d7f-5a6c-461e-bd8f-76f6bdcc91fd\n", + "\n", + "![Bedrock Converse API Trace](https://langfuse.com/images/cookbook/integration-amazon-bedrock/bedrock-converse-trace.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QAYGBX7iOvey" + }, + "source": [ + "## Can I monitor Amazon Bedrock cost and token usage in Langfuse?\n", + "\n", + "Yes, you can monitor cost and token usage of your Bedrock calls in Langfuse. The native integrations with LLM application frameworks and the LiteLLM proxy will automatically report token usage to Langfuse.\n", + "\n", + "If you use the Langfuse decorator or the low-level Python SDK, you can [report](https://langfuse.com/docs/model-usage-and-cost) token usage and (optionally) also cost information directly.\n", + "\n", + "You can define custom price information via the Langfuse dashboard or UI ([see docs](https://langfuse.com/docs/model-usage-and-cost)) to adjust to the exact pricing of your models on Amazon Bedrock.\n", + "\n", + "## Additional Resources\n", + "\n", + "- Metadocs, [Monitoring your Langchain app's cost using Bedrock with Langfuse](https://www.metadocs.co/2024/07/03/monitor-your-langchain-app-cost-using-bedrock-with-langfuse/), featuring Langchain integration and custom model price definitions for Bedrock models.\n", + "- [Self-hosting guide](https://langfuse.com/docs/deployment/self-host) to deploy Langfuse on AWS." + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/pages/docs/integrations/amazon-bedrock.md b/pages/docs/integrations/amazon-bedrock.md new file mode 100644 index 000000000..0cebf0230 --- /dev/null +++ b/pages/docs/integrations/amazon-bedrock.md @@ -0,0 +1,219 @@ +--- +title: Observability and Metrics for Amazon Bedrock +description: Open source observability for Amazon Bedrock applications and the Bedrock SDK. +--- + +# Amazon Bedrock Integration + +[**Amazon Bedrock**](https://aws.amazon.com/bedrock/) is a fully managed AWS service that lets you use foundation models and custom models to generate text, images, and audio. + +When **using Langfuse with Amazon Bedrock**, you can easily capture [detailed traces](https://langfuse.com/docs/tracing) and metrics for every request, giving you insights into the performance and behavior of your application. + +## Integration Options + +There are a few ways through which you can capture traces and metrics for Amazon Bedrock: + +1. via an application framework that is integrated with Langfuse: + + - [Langchain](https://langfuse.com/docs/integrations/langchain) + - [Llama Index](https://langfuse.com/docs/integrations/llama-index) + - [Haystack](https://langfuse.com/docs/integrations/haystack) + +2. via a Proxy such as [LiteLLM](https://langfuse.com/docs/integrations/litellm) +3. via wrapping the Bedrock SDK with the [Langfuse Decorator](https://langfuse.com/docs/sdk/python/decorators) (_see example below_) + +## How to wrap Amazon Bedrock SDK (Converse API) + + +```python +# install requirements +%pip install boto3 langfuse awscli --quiet +``` + +### Authenticate AWS Session + +Sign in with your AWS Role that has access to Amazon Bedrock. + + +```python +AWS_ACCESS_KEY_ID="***" +AWS_SECRET_ACCESS_KEY="***" +AWS_SESSION_TOKEN="***" + +import boto3 + +# used to access Bedrock configuration +bedrock = boto3.client( + service_name="bedrock", + region_name="eu-west-1", + aws_access_key_id=AWS_ACCESS_KEY_ID, + aws_secret_access_key=AWS_SECRET_ACCESS_KEY, + aws_session_token=AWS_SESSION_TOKEN +) + +# used to invoke the Bedrock Converse API +bedrock_runtime = boto3.client( + service_name="bedrock-runtime", + region_name="eu-west-1", + aws_access_key_id=AWS_ACCESS_KEY_ID, + aws_secret_access_key=AWS_SECRET_ACCESS_KEY, + aws_session_token=AWS_SESSION_TOKEN +) +``` + + +```python +# Check which models are available in your account +models = bedrock.list_inference_profiles() +for model in models["inferenceProfileSummaries"]: + print(model["inferenceProfileName"] + " - " + model["inferenceProfileId"]) +``` + + EU Anthropic Claude 3 Sonnet - eu.anthropic.claude-3-sonnet-20240229-v1:0 + EU Anthropic Claude 3 Haiku - eu.anthropic.claude-3-haiku-20240307-v1:0 + EU Anthropic Claude 3.5 Sonnet - eu.anthropic.claude-3-5-sonnet-20240620-v1:0 + EU Meta Llama 3.2 3B Instruct - eu.meta.llama3-2-3b-instruct-v1:0 + EU Meta Llama 3.2 1B Instruct - eu.meta.llama3-2-1b-instruct-v1:0 + + +### Set Langfuse Credentials + + +```python +import os + +# Get keys for your project from the project settings page +# https://cloud.langfuse.com +os.environ["LANGFUSE_PUBLIC_KEY"] = "" +os.environ["LANGFUSE_SECRET_KEY"] = "" +os.environ["LANGFUSE_HOST"] = "https://cloud.langfuse.com" # πŸ‡ͺπŸ‡Ί EU region +# os.environ["LANGFUSE_HOST"] = "https://us.cloud.langfuse.com" # πŸ‡ΊπŸ‡Έ US region + +# Your openai key +os.environ["OPENAI_API_KEY"] = "" +``` + +### Wrap Bedrock SDK + + +```python +from langfuse.decorators import observe, langfuse_context +from botocore.exceptions import ClientError + +@observe(as_type="generation", name="Bedrock Converse") +def wrapped_bedrock_converse(**kwargs): + # 1. extract model metadata + kwargs_clone = kwargs.copy() + input = kwargs_clone.pop('messages', None) + modelId = kwargs_clone.pop('modelId', None) + model_parameters = { + **kwargs_clone.pop('inferenceConfig', {}), + **kwargs_clone.pop('additionalModelRequestFields', {}) + } + langfuse_context.update_current_observation( + input=input, + model=modelId, + model_parameters=model_parameters, + metadata=kwargs_clone + ) + + # 2. model call with error handling + try: + response = bedrock_runtime.converse(**kwargs) + except (ClientError, Exception) as e: + error_message = f"ERROR: Can't invoke '{modelId}'. Reason: {e}" + langfuse_context.update_current_observation(level="ERROR", status_message=error_message) + print(error_message) + return + + # 3. extract response metadata + response_text = response["output"]["message"]["content"][0]["text"] + langfuse_context.update_current_observation( + output=response_text, + usage={ + "input": response["usage"]["inputTokens"], + "output": response["usage"]["outputTokens"], + "total": response["usage"]["totalTokens"] + }, + metadata={ + "ResponseMetadata": response["ResponseMetadata"], + } + ) + + return response_text +``` + +### Run Example + + +```python +# Converesation according to AWS spec including prompting + history +user_message = """You will be acting as an AI personal finance advisor named Alex, created by the company SmartFinance Advisors. Your goal is to provide financial advice and guidance to users. You will be replying to users who are on the SmartFinance Advisors site and who will be confused if you don't respond in the character of Alex. + +Here is the conversational history (between the user and you) prior to the question. It could be empty if there is no history: + +User: Hi Alex, I'm really looking forward to your advice! +Alex: Hello! I'm Alex, your AI personal finance advisor from SmartFinance Advisors. How can I assist you with your financial goals today? + + +Here are some important rules for the interaction: +- Always stay in character, as Alex, an AI from SmartFinance Advisors. +- If you are unsure how to respond, say "I'm sorry, I didn't quite catch that. Could you please rephrase your question?" +""" + +conversation = [ + { + "role": "user", + "content": [{"text": user_message}], + } +] + +@observe() +def examples_bedrock_converse_api(): + responses = {} + + responses["anthropic"] = wrapped_bedrock_converse( + modelId="eu.anthropic.claude-3-5-sonnet-20240620-v1:0", + messages=conversation, + inferenceConfig={"maxTokens":500,"temperature":1}, + additionalModelRequestFields={"top_k":250} + ) + + responses["llama3-2"] = wrapped_bedrock_converse( + modelId="eu.meta.llama3-2-3b-instruct-v1:0", + messages=conversation, + inferenceConfig={"maxTokens":500,"temperature":1}, + ) + + return responses + +res = examples_bedrock_converse_api() + +for key, value in res.items(): + print(f"{key.title()}\n{value}\n") +``` + + Anthropic + Understood. I'll continue to act as Alex, the AI personal finance advisor from SmartFinance Advisors, maintaining that character throughout our interaction. I'll provide financial advice and guidance based on the user's questions and needs. If I'm unsure about something, I'll ask for clarification as instructed. How may I assist you with your financial matters today? + + Llama3-2 + Hello again! I'm glad you're excited about receiving my advice. How can I assist you with your financial goals today? Are you looking to create a budget, paying off debt, saving for a specific goal, or something else entirely? + + + +Example trace: https://cloud.langfuse.com/project/cloramnkj0002jz088vzn1ja4/traces/f01a828c-fed1-45e1-b836-cd74c331597d?observation=512a4d7f-5a6c-461e-bd8f-76f6bdcc91fd + +![Bedrock Converse API Trace](https://langfuse.com/images/cookbook/integration-amazon-bedrock/bedrock-converse-trace.png) + +## Can I monitor Amazon Bedrock cost and token usage in Langfuse? + +Yes, you can monitor cost and token usage of your Bedrock calls in Langfuse. The native integrations with LLM application frameworks and the LiteLLM proxy will automatically report token usage to Langfuse. + +If you use the Langfuse decorator or the low-level Python SDK, you can [report](https://langfuse.com/docs/model-usage-and-cost) token usage and (optionally) also cost information directly. + +You can define custom price information via the Langfuse dashboard or UI ([see docs](https://langfuse.com/docs/model-usage-and-cost)) to adjust to the exact pricing of your models on Amazon Bedrock. + +## Additional Resources + +- Metadocs, [Monitoring your Langchain app's cost using Bedrock with Langfuse](https://www.metadocs.co/2024/07/03/monitor-your-langchain-app-cost-using-bedrock-with-langfuse/), featuring Langchain integration and custom model price definitions for Bedrock models. +- [Self-hosting guide](https://langfuse.com/docs/deployment/self-host) to deploy Langfuse on AWS. diff --git a/pages/docs/integrations/amazon-bedrock.mdx b/pages/docs/integrations/amazon-bedrock.mdx deleted file mode 100644 index 65ddc1e3a..000000000 --- a/pages/docs/integrations/amazon-bedrock.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Observability and Metrics for Amazon Bedrock -description: Open source observability for Amazon Bedrock applications and the Bedrock SDK. ---- - -# Amazon Bedrock Integration - -[**Amazon Bedrock**](https://aws.amazon.com/bedrock/) is a fully managed AWS service that lets you use foundation models and custom models to generate text, images, and audio. - -When **using Langfuse with Amazon Bedrock**, you can easily capture [detailed traces](/docs/tracing) and metrics for every request, giving you insights into the performance and behavior of your application. - -## Integration Options - -There are a few ways through which you can capture traces and metrics for Amazon Bedrock: - -1. via an application framework that is integrated with Langfuse: - - - [Langchain](/docs/integrations/langchain) - - [Llama Index](/docs/integrations/llama-index) - - [Haystack](/docs/integrations/haystack) - -2. via a Proxy such as [LiteLLM](/docs/integrations/litellm) -3. via wrapping the Bedrock SDK with the [Langfuse Decorator](/docs/sdk/python/decorators) (_We are currently working on adding more documentation and a cookbook for this._) -4. via the [low-level Python SDK](/docs/sdk/python/low-level-sdk) to have full control over what is captured - -## Can I monitor Amazon Bedrock cost and token usage in Langfuse? - -Yes, you can monitor cost and token usage of your Bedrock calls in Langfuse. The native integrations with LLM application frameworks and the LiteLLM proxy will automatically report token usage to Langfuse. - -If you use the Langfuse decorator or the low-level Python SDK, you can [report](/docs/model-usage-and-cost) token usage and (optionally) also cost information directly. - -You can define custom price information via the Langfuse dashboard or UI ([see docs](/docs/model-usage-and-cost)) to adjust to the exact pricing of your models on Amazon Bedrock. - -## Resources - -- Metadocs, [Monitoring your Langchain app's cost using Bedrock with Langfuse](https://www.metadocs.co/2024/07/03/monitor-your-langchain-app-cost-using-bedrock-with-langfuse/), featuring Langchain integration and custom model price definitions for Bedrock models. -- [Self-hosting guide](/docs/deployment/self-host) to deploy Langfuse on AWS. diff --git a/pages/guides/cookbook/integration_amazon_bedrock.md b/pages/guides/cookbook/integration_amazon_bedrock.md new file mode 100644 index 000000000..0cebf0230 --- /dev/null +++ b/pages/guides/cookbook/integration_amazon_bedrock.md @@ -0,0 +1,219 @@ +--- +title: Observability and Metrics for Amazon Bedrock +description: Open source observability for Amazon Bedrock applications and the Bedrock SDK. +--- + +# Amazon Bedrock Integration + +[**Amazon Bedrock**](https://aws.amazon.com/bedrock/) is a fully managed AWS service that lets you use foundation models and custom models to generate text, images, and audio. + +When **using Langfuse with Amazon Bedrock**, you can easily capture [detailed traces](https://langfuse.com/docs/tracing) and metrics for every request, giving you insights into the performance and behavior of your application. + +## Integration Options + +There are a few ways through which you can capture traces and metrics for Amazon Bedrock: + +1. via an application framework that is integrated with Langfuse: + + - [Langchain](https://langfuse.com/docs/integrations/langchain) + - [Llama Index](https://langfuse.com/docs/integrations/llama-index) + - [Haystack](https://langfuse.com/docs/integrations/haystack) + +2. via a Proxy such as [LiteLLM](https://langfuse.com/docs/integrations/litellm) +3. via wrapping the Bedrock SDK with the [Langfuse Decorator](https://langfuse.com/docs/sdk/python/decorators) (_see example below_) + +## How to wrap Amazon Bedrock SDK (Converse API) + + +```python +# install requirements +%pip install boto3 langfuse awscli --quiet +``` + +### Authenticate AWS Session + +Sign in with your AWS Role that has access to Amazon Bedrock. + + +```python +AWS_ACCESS_KEY_ID="***" +AWS_SECRET_ACCESS_KEY="***" +AWS_SESSION_TOKEN="***" + +import boto3 + +# used to access Bedrock configuration +bedrock = boto3.client( + service_name="bedrock", + region_name="eu-west-1", + aws_access_key_id=AWS_ACCESS_KEY_ID, + aws_secret_access_key=AWS_SECRET_ACCESS_KEY, + aws_session_token=AWS_SESSION_TOKEN +) + +# used to invoke the Bedrock Converse API +bedrock_runtime = boto3.client( + service_name="bedrock-runtime", + region_name="eu-west-1", + aws_access_key_id=AWS_ACCESS_KEY_ID, + aws_secret_access_key=AWS_SECRET_ACCESS_KEY, + aws_session_token=AWS_SESSION_TOKEN +) +``` + + +```python +# Check which models are available in your account +models = bedrock.list_inference_profiles() +for model in models["inferenceProfileSummaries"]: + print(model["inferenceProfileName"] + " - " + model["inferenceProfileId"]) +``` + + EU Anthropic Claude 3 Sonnet - eu.anthropic.claude-3-sonnet-20240229-v1:0 + EU Anthropic Claude 3 Haiku - eu.anthropic.claude-3-haiku-20240307-v1:0 + EU Anthropic Claude 3.5 Sonnet - eu.anthropic.claude-3-5-sonnet-20240620-v1:0 + EU Meta Llama 3.2 3B Instruct - eu.meta.llama3-2-3b-instruct-v1:0 + EU Meta Llama 3.2 1B Instruct - eu.meta.llama3-2-1b-instruct-v1:0 + + +### Set Langfuse Credentials + + +```python +import os + +# Get keys for your project from the project settings page +# https://cloud.langfuse.com +os.environ["LANGFUSE_PUBLIC_KEY"] = "" +os.environ["LANGFUSE_SECRET_KEY"] = "" +os.environ["LANGFUSE_HOST"] = "https://cloud.langfuse.com" # πŸ‡ͺπŸ‡Ί EU region +# os.environ["LANGFUSE_HOST"] = "https://us.cloud.langfuse.com" # πŸ‡ΊπŸ‡Έ US region + +# Your openai key +os.environ["OPENAI_API_KEY"] = "" +``` + +### Wrap Bedrock SDK + + +```python +from langfuse.decorators import observe, langfuse_context +from botocore.exceptions import ClientError + +@observe(as_type="generation", name="Bedrock Converse") +def wrapped_bedrock_converse(**kwargs): + # 1. extract model metadata + kwargs_clone = kwargs.copy() + input = kwargs_clone.pop('messages', None) + modelId = kwargs_clone.pop('modelId', None) + model_parameters = { + **kwargs_clone.pop('inferenceConfig', {}), + **kwargs_clone.pop('additionalModelRequestFields', {}) + } + langfuse_context.update_current_observation( + input=input, + model=modelId, + model_parameters=model_parameters, + metadata=kwargs_clone + ) + + # 2. model call with error handling + try: + response = bedrock_runtime.converse(**kwargs) + except (ClientError, Exception) as e: + error_message = f"ERROR: Can't invoke '{modelId}'. Reason: {e}" + langfuse_context.update_current_observation(level="ERROR", status_message=error_message) + print(error_message) + return + + # 3. extract response metadata + response_text = response["output"]["message"]["content"][0]["text"] + langfuse_context.update_current_observation( + output=response_text, + usage={ + "input": response["usage"]["inputTokens"], + "output": response["usage"]["outputTokens"], + "total": response["usage"]["totalTokens"] + }, + metadata={ + "ResponseMetadata": response["ResponseMetadata"], + } + ) + + return response_text +``` + +### Run Example + + +```python +# Converesation according to AWS spec including prompting + history +user_message = """You will be acting as an AI personal finance advisor named Alex, created by the company SmartFinance Advisors. Your goal is to provide financial advice and guidance to users. You will be replying to users who are on the SmartFinance Advisors site and who will be confused if you don't respond in the character of Alex. + +Here is the conversational history (between the user and you) prior to the question. It could be empty if there is no history: + +User: Hi Alex, I'm really looking forward to your advice! +Alex: Hello! I'm Alex, your AI personal finance advisor from SmartFinance Advisors. How can I assist you with your financial goals today? + + +Here are some important rules for the interaction: +- Always stay in character, as Alex, an AI from SmartFinance Advisors. +- If you are unsure how to respond, say "I'm sorry, I didn't quite catch that. Could you please rephrase your question?" +""" + +conversation = [ + { + "role": "user", + "content": [{"text": user_message}], + } +] + +@observe() +def examples_bedrock_converse_api(): + responses = {} + + responses["anthropic"] = wrapped_bedrock_converse( + modelId="eu.anthropic.claude-3-5-sonnet-20240620-v1:0", + messages=conversation, + inferenceConfig={"maxTokens":500,"temperature":1}, + additionalModelRequestFields={"top_k":250} + ) + + responses["llama3-2"] = wrapped_bedrock_converse( + modelId="eu.meta.llama3-2-3b-instruct-v1:0", + messages=conversation, + inferenceConfig={"maxTokens":500,"temperature":1}, + ) + + return responses + +res = examples_bedrock_converse_api() + +for key, value in res.items(): + print(f"{key.title()}\n{value}\n") +``` + + Anthropic + Understood. I'll continue to act as Alex, the AI personal finance advisor from SmartFinance Advisors, maintaining that character throughout our interaction. I'll provide financial advice and guidance based on the user's questions and needs. If I'm unsure about something, I'll ask for clarification as instructed. How may I assist you with your financial matters today? + + Llama3-2 + Hello again! I'm glad you're excited about receiving my advice. How can I assist you with your financial goals today? Are you looking to create a budget, paying off debt, saving for a specific goal, or something else entirely? + + + +Example trace: https://cloud.langfuse.com/project/cloramnkj0002jz088vzn1ja4/traces/f01a828c-fed1-45e1-b836-cd74c331597d?observation=512a4d7f-5a6c-461e-bd8f-76f6bdcc91fd + +![Bedrock Converse API Trace](https://langfuse.com/images/cookbook/integration-amazon-bedrock/bedrock-converse-trace.png) + +## Can I monitor Amazon Bedrock cost and token usage in Langfuse? + +Yes, you can monitor cost and token usage of your Bedrock calls in Langfuse. The native integrations with LLM application frameworks and the LiteLLM proxy will automatically report token usage to Langfuse. + +If you use the Langfuse decorator or the low-level Python SDK, you can [report](https://langfuse.com/docs/model-usage-and-cost) token usage and (optionally) also cost information directly. + +You can define custom price information via the Langfuse dashboard or UI ([see docs](https://langfuse.com/docs/model-usage-and-cost)) to adjust to the exact pricing of your models on Amazon Bedrock. + +## Additional Resources + +- Metadocs, [Monitoring your Langchain app's cost using Bedrock with Langfuse](https://www.metadocs.co/2024/07/03/monitor-your-langchain-app-cost-using-bedrock-with-langfuse/), featuring Langchain integration and custom model price definitions for Bedrock models. +- [Self-hosting guide](https://langfuse.com/docs/deployment/self-host) to deploy Langfuse on AWS. diff --git a/public/images/cookbook/integration-amazon-bedrock/bedrock-converse-trace.png b/public/images/cookbook/integration-amazon-bedrock/bedrock-converse-trace.png new file mode 100644 index 0000000000000000000000000000000000000000..072ea7e33fcd0443cee9f728dc179ce92e0df9cb GIT binary patch literal 117155 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 BGjad` literal 0 HcmV?d00001