From 4d7aa46eb9d569d049010c572c74263e90f78981 Mon Sep 17 00:00:00 2001 From: Julian Risch Date: Mon, 8 Jan 2024 16:52:58 +0100 Subject: [PATCH 1/5] Add Amazon Bedrock integration --- integrations/amazon-bedrock | 68 +++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 integrations/amazon-bedrock diff --git a/integrations/amazon-bedrock b/integrations/amazon-bedrock new file mode 100644 index 00000000..7e00ecc1 --- /dev/null +++ b/integrations/amazon-bedrock @@ -0,0 +1,68 @@ +--- +layout: integration +name: Amazon Bedrock +description: Use Models from AI21 Labs, Anthropic, Cohere, Meta, Stability AI, and Amazon via Amazon Bedrock with Haystack +authors: + - name: deepset + socials: + github: deepset-ai + twitter: deepset_ai + linkedin: deepset-ai +pypi: https://pypi.org/project/amazon-bedrock-haystack +repo: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/amazon_bedrock +type: Model Provider +report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues +logo: /logos/aws.png +version: Haystack 2.0 +toc: true +--- + +### Table of Contents + +- [Overview](#overview) +- [Installation](#installation) +- [Usage](#usage) + - [AmazonBedrockGenerator](#AmazonBedrockGenerator) + +## Overview + +[Amazon Bedrock](https://aws.amazon.com/bedrock/) is a fully managed service that makes high-performing foundation models from leading AI startups and Amazon available for your use through a unified API. +You can choose from various foundation models to find the one best suited for your use case. + +## Installation + +Install the Amazon Bedrock integration: +```bash +pip install amazon-bedrock-haystack +``` + +## Usage + +Once installed, you will have access to an AmazonBedrockGenerator that supports models from various providers: +- Anthropic's Claude +- AI21 Labs' Jurassic-2 +- Stability AI's Stable Diffusion +- Cohere's Command and Embed +- Meta's Llama 2 +- Amazon Titan language and embeddings models + +### AmazonBedrockGenerator + +To use this integration for text generation, initialize a `AmazonBedrockGenerator` with the model name and aws credentials: + +```python +from amazon_bedrock_haystack import AmazonBedrockGenerator + +aws_access_key_id="..." +aws_secret_access_key="..." +aws_region_name="eu-central-1" + +generator = AmazonBedrockGenerator(model_name="anthropic.claude-v2", aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, aws_region_name=aws_region_name) +result = generator.run("Who is the best American actor?") +for reply in result["replies"]: + print(reply) +``` +Output: +```shell +'There is no definitive "best" American actor, as acting skill and talent a# re subjective. However, some of the most acclaimed and influential American act# ors include Tom Hanks, Daniel Day-Lewis, Denzel Washington, Meryl Streep, Rober# t De Niro, Al Pacino, Marlon Brando, Jack Nicholson, Leonardo DiCaprio and John# ny Depp. Choosing a single "best" actor comes down to personal preference.' +``` From f7376ce710adb125b9873efff8f43771504aacfa Mon Sep 17 00:00:00 2001 From: Julian Risch Date: Mon, 8 Jan 2024 16:57:53 +0100 Subject: [PATCH 2/5] add logo --- logos/aws.png | Bin 0 -> 43645 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 logos/aws.png diff --git a/logos/aws.png b/logos/aws.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9bfb4e59fc8774b3115fc0ae838bd9d981fe83 GIT binary patch literal 43645 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 o$g}tZ5%rc037RmORH7pyzx0Yj^3+N5 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 d31s{x?3=LU&T_d}BF_DzqoJ? Date: Mon, 8 Jan 2024 16:58:32 +0100 Subject: [PATCH 3/5] Rename amazon-bedrock to amazon-bedrock.md --- integrations/{amazon-bedrock => amazon-bedrock.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename integrations/{amazon-bedrock => amazon-bedrock.md} (100%) diff --git a/integrations/amazon-bedrock b/integrations/amazon-bedrock.md similarity index 100% rename from integrations/amazon-bedrock rename to integrations/amazon-bedrock.md From ac15607164e8d2d5da8899385f8e8be174c5f141 Mon Sep 17 00:00:00 2001 From: Julian Risch Date: Mon, 8 Jan 2024 17:01:35 +0100 Subject: [PATCH 4/5] Update amazon-bedrock.md --- integrations/amazon-bedrock.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/integrations/amazon-bedrock.md b/integrations/amazon-bedrock.md index 7e00ecc1..729542d2 100644 --- a/integrations/amazon-bedrock.md +++ b/integrations/amazon-bedrock.md @@ -26,8 +26,7 @@ toc: true ## Overview -[Amazon Bedrock](https://aws.amazon.com/bedrock/) is a fully managed service that makes high-performing foundation models from leading AI startups and Amazon available for your use through a unified API. -You can choose from various foundation models to find the one best suited for your use case. +[Amazon Bedrock](https://aws.amazon.com/bedrock/) is a fully managed service that makes high-performing foundation models from leading AI startups and Amazon available for your use through a unified API. You can choose from various foundation models to find the one best suited for your use case. More information can be found on the [documentation page](https://docs.haystack.deepset.ai/v2.0/docs/amazonbedrockgenerator). ## Installation From c856e2ba784a376c97ccfc289a703220478a2816 Mon Sep 17 00:00:00 2001 From: Julian Risch Date: Wed, 10 Jan 2024 09:48:43 +0100 Subject: [PATCH 5/5] Remove mention of embed models --- integrations/amazon-bedrock.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integrations/amazon-bedrock.md b/integrations/amazon-bedrock.md index 729542d2..2ac6a19b 100644 --- a/integrations/amazon-bedrock.md +++ b/integrations/amazon-bedrock.md @@ -41,9 +41,9 @@ Once installed, you will have access to an AmazonBedrockGenerator that supports - Anthropic's Claude - AI21 Labs' Jurassic-2 - Stability AI's Stable Diffusion -- Cohere's Command and Embed +- Cohere's Command - Meta's Llama 2 -- Amazon Titan language and embeddings models +- Amazon Titan language models ### AmazonBedrockGenerator