amazon personalize langchain extensions
1.0.0
该存储库提供了一组与 Langchain 一起使用的实用程序类。目前,它有一个实用程序类AmazonPersonalize
,用于与 Amazon Personalize 活动/推荐程序配合使用,并且AmazonPersonalizeChain
自定义链构建可从 Amazon Personalize 检索推荐并执行默认提示(可由用户覆盖)。
克隆存储库
git clone https://github.com/aws-samples/amazon-personalize-langchain-extensions.git
移动到 repo 目录
cd amazon-personalize-langchain-extensions
安装类
pip install .
from aws_langchain import AmazonPersonalize
recommender_arn = "<insert_arn>"
client = AmazonPersonalize ( credentials_profile_name = "default" , region_name = "us-west-2" , recommender_arn = recommender_arn )
client . get_recommendations ( user_id = "1" )
from aws_langchain import AmazonPersonalize
from aws_langchain import AmazonPersonalizeChain
from langchain . llms . bedrock import Bedrock
recommender_arn = "<insert_arn>"
bedrock_llm = Bedrock ( model_id = "anthropic.claude-v2" , region_name = "us-west-2" )
client = AmazonPersonalize ( credentials_profile_name = "default" , region_name = "us-west-2" , recommender_arn = recommender_arn )
# Create personalize chain
# Use return_direct=True if you do not want summary
chain = AmazonPersonalizeChain . from_llm (
llm = bedrock_llm ,
client = client ,
return_direct = False
)
response = chain ({ 'user_id' : '1' })
print ( response )
from langchain . prompts . prompt import PromptTemplate
from aws_langchain import AmazonPersonalize
from aws_langchain import AmazonPersonalizeChain
from langchain . llms . bedrock import Bedrock
RANDOM_PROMPT_QUERY = """
You are a skilled publicist. Write a high-converting marketing email advertising several movies available in a video-on-demand streaming platform next week,
given the movie and user information below. Your email will leverage the power of storytelling and persuasive language.
The movies to recommend and their information is contained in the <movie> tag.
All movies in the <movie> tag must be recommended. Give a summary of the movies and why the human should watch them.
Put the email between <email> tags.
<movie>
{result}
</movie>
Assistant:
"""
RANDOM_PROMPT = PromptTemplate ( input_variables = [ "result" ], template = RANDOM_PROMPT_QUERY )
recommender_arn = "<insert_arn>"
bedrock_llm = Bedrock ( model_id = "anthropic.claude-v2" , region_name = "us-west-2" )
client = AmazonPersonalize ( credentials_profile_name = "default" , region_name = "us-west-2" , recommender_arn = recommender_arn )
chain = AmazonPersonalizeChain . from_llm ( llm = bedrock_llm , client = client , return_direct = False , prompt_template = RANDOM_PROMPT )
chain . run ({ 'user_id' : '1' , 'item_id' : '234' })
from langchain . chains import SequentialChain
from langchain . chains import LLMChain
from aws_langchain import AmazonPersonalize
from aws_langchain import AmazonPersonalizeChain
from langchain . llms . bedrock import Bedrock
from langchain . prompts . prompt import PromptTemplate
RANDOM_PROMPT_QUERY_2 = """
You are a skilled publicist. Write a high-converting marketing email advertising several movies available in a video-on-demand streaming platform next week,
given the movie and user information below. Your email will leverage the power of storytelling and persuasive language.
You want the email to impress the user, so make it appealing to them.
The movies to recommend and their information is contained in the <movie> tag.
All movies in the <movie> tag must be recommended. Give a summary of the movies and why the human should watch them.
Put the email between <email> tags.
<movie>
{result}
</movie>
Assistant:
"""
recommender_arn = "<insert_arn>"
bedrock_llm = Bedrock ( model_id = "anthropic.claude-v2" , region_name = "us-west-2" )
client = AmazonPersonalize ( credentials_profile_name = "default" , region_name = "us-west-2" , recommender_arn = recommender_arn )
RANDOM_PROMPT_2 = PromptTemplate ( input_variables = [ "result" ], template = RANDOM_PROMPT_QUERY_2 )
personalize_chain_instance = AmazonPersonalizeChain . from_llm ( llm = bedrock_llm , client = client , return_direct = True )
random_chain_instance = LLMChain ( llm = bedrock_llm , prompt = RANDOM_PROMPT_2 )
overall_chain = SequentialChain ( chains = [ personalize_chain_instance , random_chain_instance ], input_variables = [ "user_id" ], verbose = True )
overall_chain . run ({ 'user_id' : '1' , 'item_id' : '234' })
from aws_langchain import AmazonPersonalize
from aws_langchain import AmazonPersonalizeChain
from langchain . llms . bedrock import Bedrock
recommender_arn = "<insert_arn>"
metadata_column_list = [ "METADATA_COL1" ]
metadataMap = { "ITEMS" : metadata_column_list }
bedrock_llm = Bedrock ( model_id = "anthropic.claude-v2" , region_name = "us-west-2" )
client = AmazonPersonalize ( credentials_profile_name = "default" , region_name = "us-west-2" , recommender_arn = recommender_arn )
# Create personalize chain
# Use return_direct=True if you do not want summary
chain = AmazonPersonalizeChain . from_llm (
llm = bedrock_llm ,
client = client ,
return_direct = False
)
response = chain ({ 'user_id' : '1' , 'metadata_columns' : metadataMap })
print ( response )
pip uninstall aws-langchain
创建 GitHub 分支并发出拉取请求。请参阅贡献以获取更多信息。
该库根据 MIT-0 许可证获得许可。请参阅许可证文件。