File size: 2,303 Bytes
7abe6e1 ccbcbae 7abe6e1 adbeb82 332de37 6b17270 90397f3 f40bd5f b34c465 50a12bf 6b17270 7abe6e1 555ef07 7abe6e1 f9bc4fc 56e913b ef6a2a0 adbeb82 f40bd5f adbeb82 e207b76 370c03f ef6a2a0 74524a2 f85c8ad 74524a2 13b6f87 74524a2 13b6f87 ef6a2a0 74524a2 ef6a2a0 709bce3 13b6f87 ef6a2a0 370c03f af7cd6b 7abe6e1 5da1cee f85c8ad dfa34b3 7abe6e1 2d34c43 370c03f 801487f 04e5ddd 9468ae4 dfa34b3 2d34c43 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
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"]
config = {
"max_tokens_to_sample": 1000,
"model": "anthropic.claude-3-opus-20240229-v1:0", #"anthropic.claude-v2",
"temperature": 0,
"top_k": 250,
"top_p": 0.999,
}
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"
)
def invoke(prompt):
if not prompt:
raise gr.Error("Prompt is required.")
#raise gr.Error("Clone and bring your own credentials.")
completion = ""
try:
body = {
"anthropic_version": "bedrock-2023-05-31",
"messages": [
{"role": "user", "content": [{"type": "text", "text": prompt}]},
],
"system": "You are a honest, helpful, and harmless bot."
}
model_id = config["model"]
model_kwargs = {
"max_tokens": 2048,
"stop_sequences": ["\n\nHuman"],
"temperature": 0.1,
"top_k": 250,
"top_p": 1
}
body.update(model_kwargs)
response = bedrock_runtime.invoke_model(modelId=model_id,
body=json.dumps(body))
response_body = json.loads(response.get("body").read())
completion = response_body.get("content", [])[0].get("text", "")
except Exception as e:
completion = e
raise gr.Error(e)
return completion
description = """<a href='https://www.gradio.app/'>Gradio</a> UI using the <a href='https://aws.amazon.com/bedrock/'>Amazon Bedrock</a> SDK
with <a href='https://www.anthropic.com/'>Anthropic</a> Claude 3 model."""
gr.close_all()
demo = gr.Interface(fn = invoke,
inputs = [gr.Textbox(label = "Prompt", value = "hi", lines = 1)],
outputs = [gr.Textbox(label = "Completion", lines = 1)],
title = "Generative AI - LLM",
description = description)
demo.launch() |