|
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" |
|
) |
|
|
|
def complete(prompt): |
|
args = { |
|
"modelId": "anthropic.claude-v2", |
|
"contentType": "application/json", |
|
"accept": "*/*", |
|
"body": "{\"prompt\":\"Human: " + prompt + "\\nAssistant:\",\"max_tokens_to_sample\":300,\"temperature\":1,\"top_k\":250,\"top_p\":0.999,\"stop_sequences\":[\"\\n\\nHuman:\"],\"anthropic_version\":\"bedrock-2023-05-31\"}" |
|
} |
|
response = bedrock_runtime.invoke_model(**args) |
|
response_body = json.loads(response.get("body").read()) |
|
return response_body['completion'] |
|
|
|
gr.close_all() |
|
demo = gr.Interface(fn=complete, |
|
inputs=[gr.Textbox(label="Prompt", lines=1)], |
|
outputs=[gr.Textbox(label="Completion", lines=1)], |
|
title="Generative AI with LLM", |
|
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/index/claude-2'>Claude 2</a> LLM") |
|
demo.launch() |