Nils Durner commited on
Commit
e7c2e79
Β·
1 Parent(s): 39ee51b

Claude 2.1 support, region choice

Browse files
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -53,7 +53,7 @@ def process_values_js():
53
  }
54
  """
55
 
56
- def bot(message, history, aws_access, aws_secret, aws_token, temperature, max_tokens):
57
  try:
58
  prompt = "\n\n"
59
  for human, assi in history:
@@ -78,10 +78,10 @@ def bot(message, history, aws_access, aws_secret, aws_token, temperature, max_to
78
  aws_access_key_id=aws_access,
79
  aws_secret_access_key=aws_secret,
80
  aws_session_token=aws_token,
81
- region_name='eu-central-1')
82
  br = sess.client(service_name="bedrock-runtime")
83
 
84
- response = br.invoke_model(body=body, modelId="anthropic.claude-v2",
85
  accept="application/json", contentType="application/json")
86
  response_body = json.loads(response.get('body').read())
87
  br_result = response_body.get('completion')
@@ -117,14 +117,18 @@ with gr.Blocks() as demo:
117
  aws_access = gr.Textbox(label="AWS Access Key", elem_id="aws_access")
118
  aws_secret = gr.Textbox(label="AWS Secret Key", elem_id="aws_secret")
119
  aws_token = gr.Textbox(label="AWS Session Token", elem_id="aws_token")
 
 
 
 
120
  temp = gr.Slider(0, 1, label="Temperature", elem_id="temp", value=1)
121
- max_tokens = gr.Slider(1, 4000, label="Max. Tokens", elem_id="max_tokens", value=4000)
122
  save_button = gr.Button("Save Settings")
123
  load_button = gr.Button("Load Settings")
124
 
125
  load_button.click(load_settings, js="""
126
  () => {
127
- let elems = ['#aws_access textarea', '#aws_secret textarea', '#aws_token textarea', '#temp input', '#max_tokens input'];
128
  elems.forEach(elem => {
129
  let item = document.querySelector(elem);
130
  let event = new InputEvent('input', { bubbles: true });
@@ -134,13 +138,15 @@ with gr.Blocks() as demo:
134
  }
135
  """)
136
 
137
- save_button.click(save_settings, [aws_access, aws_secret, aws_token, temp, max_tokens], js="""
138
- (acc, sec, tok, prompt, temp, ntok) => {
139
  localStorage.setItem('aws_access', acc);
140
  localStorage.setItem('aws_secret', sec);
141
  localStorage.setItem('aws_token', tok);
142
  localStorage.setItem('temp', document.querySelector('#temp input').value);
143
  localStorage.setItem('max_tokens', document.querySelector('#max_tokens input').value);
 
 
144
  }
145
  """)
146
 
@@ -161,7 +167,7 @@ with gr.Blocks() as demo:
161
  )
162
  submit_btn = gr.Button("πŸš€ Send", scale=0)
163
  submit_click = submit_btn.click(add_text, [chatbot, txt], [chatbot, txt], queue=False).then(
164
- bot, [txt, chatbot, aws_access, aws_secret, aws_token, temp, max_tokens], [txt, chatbot],
165
  )
166
  submit_click.then(lambda: gr.Textbox(interactive=True), None, [txt], queue=False)
167
 
@@ -201,7 +207,7 @@ with gr.Blocks() as demo:
201
  import_button.upload(import_history, inputs=[chatbot, import_button], outputs=[chatbot])
202
 
203
  txt_msg = txt.submit(add_text, [chatbot, txt], [chatbot, txt], queue=False).then(
204
- bot, [txt, chatbot, aws_access, aws_secret, aws_token, temp, max_tokens], [txt, chatbot],
205
  )
206
  txt_msg.then(lambda: gr.Textbox(interactive=True), None, [txt], queue=False)
207
  file_msg = btn.upload(add_file, [chatbot, btn], [chatbot], queue=False, postprocess=False)
 
53
  }
54
  """
55
 
56
+ def bot(message, history, aws_access, aws_secret, aws_token, temperature, max_tokens, model, region):
57
  try:
58
  prompt = "\n\n"
59
  for human, assi in history:
 
78
  aws_access_key_id=aws_access,
79
  aws_secret_access_key=aws_secret,
80
  aws_session_token=aws_token,
81
+ region_name=region)
82
  br = sess.client(service_name="bedrock-runtime")
83
 
84
+ response = br.invoke_model(body=body, modelId=f"anthropic.{model}",
85
  accept="application/json", contentType="application/json")
86
  response_body = json.loads(response.get('body').read())
87
  br_result = response_body.get('completion')
 
117
  aws_access = gr.Textbox(label="AWS Access Key", elem_id="aws_access")
118
  aws_secret = gr.Textbox(label="AWS Secret Key", elem_id="aws_secret")
119
  aws_token = gr.Textbox(label="AWS Session Token", elem_id="aws_token")
120
+ model = gr.Dropdown(label="Model", value="claude-v2:1", allow_custom_value=True, elem_id="model",
121
+ choices=["claude-v2:1", "claude-v2"])
122
+ region = gr.Dropdown(label="Region", value="eu-central-1", allow_custom_value=True, elem_id="region",
123
+ choices=["eu-central-1", "us-east-1", "us-west-1"])
124
  temp = gr.Slider(0, 1, label="Temperature", elem_id="temp", value=1)
125
+ max_tokens = gr.Slider(1, 200000, label="Max. Tokens", elem_id="max_tokens", value=4000)
126
  save_button = gr.Button("Save Settings")
127
  load_button = gr.Button("Load Settings")
128
 
129
  load_button.click(load_settings, js="""
130
  () => {
131
+ let elems = ['#aws_access textarea', '#aws_secret textarea', '#aws_token textarea', '#temp input', '#max_tokens input', '#model', '#region'];
132
  elems.forEach(elem => {
133
  let item = document.querySelector(elem);
134
  let event = new InputEvent('input', { bubbles: true });
 
138
  }
139
  """)
140
 
141
+ save_button.click(save_settings, [aws_access, aws_secret, aws_token, temp, max_tokens, model, region], js="""
142
+ (acc, sec, tok, prompt, temp, ntok, model, region) => {
143
  localStorage.setItem('aws_access', acc);
144
  localStorage.setItem('aws_secret', sec);
145
  localStorage.setItem('aws_token', tok);
146
  localStorage.setItem('temp', document.querySelector('#temp input').value);
147
  localStorage.setItem('max_tokens', document.querySelector('#max_tokens input').value);
148
+ localStorage.setItem('model', model);
149
+ localStorage.setItem('region', region);
150
  }
151
  """)
152
 
 
167
  )
168
  submit_btn = gr.Button("πŸš€ Send", scale=0)
169
  submit_click = submit_btn.click(add_text, [chatbot, txt], [chatbot, txt], queue=False).then(
170
+ bot, [txt, chatbot, aws_access, aws_secret, aws_token, temp, max_tokens, model, region], [txt, chatbot],
171
  )
172
  submit_click.then(lambda: gr.Textbox(interactive=True), None, [txt], queue=False)
173
 
 
207
  import_button.upload(import_history, inputs=[chatbot, import_button], outputs=[chatbot])
208
 
209
  txt_msg = txt.submit(add_text, [chatbot, txt], [chatbot, txt], queue=False).then(
210
+ bot, [txt, chatbot, aws_access, aws_secret, aws_token, temp, max_tokens, model, region], [txt, chatbot],
211
  )
212
  txt_msg.then(lambda: gr.Textbox(interactive=True), None, [txt], queue=False)
213
  file_msg = btn.upload(add_file, [chatbot, btn], [chatbot], queue=False, postprocess=False)