Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import boto3, json, os
|
3 |
+
|
4 |
+
from dotenv import load_dotenv, find_dotenv
|
5 |
+
_ = load_dotenv(find_dotenv())
|
6 |
+
|
7 |
+
aws_access_key_id = os.environ['AWS_ACCESS_KEY_ID']
|
8 |
+
aws_secret_access_key = os.environ['AWS_SECRET_ACCESS_KEY']
|
9 |
+
|
10 |
+
bedrock_runtime = boto3.client(
|
11 |
+
aws_access_key_id=aws_access_key_id,
|
12 |
+
aws_secret_access_key=aws_secret_access_key,
|
13 |
+
service_name="bedrock-runtime",
|
14 |
+
region_name="us-west-2"
|
15 |
+
)
|
16 |
+
|
17 |
+
def complete(prompt):
|
18 |
+
args = {
|
19 |
+
"modelId": "anthropic.claude-v2",
|
20 |
+
"contentType": "application/json",
|
21 |
+
"accept": "*/*",
|
22 |
+
"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\"}"
|
23 |
+
}
|
24 |
+
response = bedrock_runtime.invoke_model(**args)
|
25 |
+
response_body = json.loads(response.get("body").read())
|
26 |
+
return response_body['completion']
|
27 |
+
|
28 |
+
gr.close_all()
|
29 |
+
demo = gr.Interface(fn=complete,
|
30 |
+
inputs=[gr.Textbox(label="Prompt", lines=1)],
|
31 |
+
outputs=[gr.Textbox(label="Completion", lines=1)],
|
32 |
+
title="Generative AI with LLM",
|
33 |
+
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")
|
34 |
+
demo.launch()
|