File size: 1,670 Bytes
7abe6e1 3daedd9 7abe6e1 555ef07 7abe6e1 2d1657a f9bc4fc 2d1657a 555ef07 2d1657a 555ef07 2d1657a 7abe6e1 555ef07 7abe6e1 f9bc4fc 555ef07 04e5ddd a5c0319 57bd943 7abe6e1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import gradio as gr
import boto3, json, os
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
aws_access_key_id = os.environ["AWS_ACCESS_KEY_ID"]
aws_secret_access_key = os.environ["AWS_SECRET_ACCESS_KEY"]
bedrock_runtime = boto3.client(
aws_access_key_id = aws_access_key_id,
aws_secret_access_key = aws_secret_access_key,
service_name = "bedrock-runtime",
region_name = "us-west-2"
)
# See https://docs.anthropic.com/claude/reference/complete_post
def invoke(prompt):
body = json.dumps({"prompt": "\n\nHuman: " + prompt + "\n\nAssistant: ",
"max_tokens_to_sample": 300,
"temperature": 1,
"top_k": 250,
"top_p": 0.999,
"stop_sequences": ["\n\nHuman: "]
})
modelId = "anthropic.claude-v2"
accept = "application/json"
contentType = "application/json"
response = bedrock_runtime.invoke_model(body = body, modelId = modelId, accept = accept, contentType = contentType)
response_body = json.loads(response.get("body").read())
return response_body["completion"]
gr.close_all()
demo = gr.Interface(fn=invoke,
inputs = [gr.Textbox(label = "Prompt", lines = 1)],
outputs = [gr.Textbox(label = "Completion", lines = 1)],
title = "Generative AI - Language",
description = "<a href='https://www.gradio.app/'>Gradio</a> UI using <a href='https://aws.amazon.com/bedrock/'>Amazon Bedrock</a> API with <a href='https://www.anthropic.com/'>Anthropic</a> Claude 2 foundation model")
demo.launch() |