Added bearer token

This commit is contained in:
jeffser 2024-06-28 21:29:36 -06:00
parent 0fbde265ef
commit 527f7b4452
3 changed files with 43 additions and 13 deletions

View File

@ -2,10 +2,19 @@
import json, requests
url = None
bearer_token = None
def get_headers() -> dict:
headers = {
"Content-Type": "application/json"
}
if bearer_token:
headers["Authorization"] = "Bearer " + bearer_token
return headers
def simple_get(connection_url:str) -> dict:
try:
response = requests.get(connection_url)
response = requests.get(connection_url, headers=get_headers())
if response.status_code == 200:
return {"status": "ok", "text": response.text, "status_code": response.status_code}
else:
@ -15,10 +24,7 @@ def simple_get(connection_url:str) -> dict:
def simple_post(connection_url:str, data) -> dict:
try:
headers = {
"Content-Type": "application/json"
}
response = requests.post(connection_url, headers=headers, data=data, stream=False)
response = requests.post(connection_url, headers=get_headers(), data=data, stream=False)
if response.status_code == 200:
return {"status": "ok", "text": response.text, "status_code": response.status_code}
else:
@ -28,7 +34,7 @@ def simple_post(connection_url:str, data) -> dict:
def simple_delete(connection_url:str, data) -> dict:
try:
response = requests.delete(connection_url, json=data)
response = requests.delete(connection_url, headers=get_headers(), json=data)
if response.status_code == 200:
return {"status": "ok", "status_code": response.status_code}
else:
@ -38,10 +44,7 @@ def simple_delete(connection_url:str, data) -> dict:
def stream_post(connection_url:str, data, callback:callable) -> dict:
try:
headers = {
"Content-Type": "application/json"
}
response = requests.post(connection_url, headers=headers, data=data, stream=True)
response = requests.post(connection_url, headers=get_headers(), data=data, stream=True)
if response.status_code == 200:
for line in response.iter_lines():
if line:

View File

@ -49,6 +49,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
available_models = None
run_on_background = False
remote_url = ""
remote_bearer_token = ""
run_remote = False
model_tweaks = {"temperature": 0.7, "seed": 0, "keep_alive": 5}
local_models = []
@ -116,6 +117,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
background_switch = Gtk.Template.Child()
remote_connection_switch = Gtk.Template.Child()
remote_connection_entry = Gtk.Template.Child()
remote_bearer_token_entry = Gtk.Template.Child()
toast_messages = {
"error": [
@ -280,6 +282,17 @@ class AlpacaWindow(Adw.ApplicationWindow):
entry.set_css_classes(["error"])
self.show_toast("error", 1, self.preferences_dialog)
@Gtk.Template.Callback()
def change_remote_bearer_token(self, entry):
self.remote_bearer_token = entry.get_text()
self.save_server_config()
return
if self.remote_url and self.run_remote:
connection_handler.url = self.remote_url
if self.verify_connection() == False:
entry.set_css_classes(["error"])
self.show_toast("error", 1, self.preferences_dialog)
@Gtk.Template.Callback()
def pull_featured_model(self, button):
action_row = button.get_parent().get_parent().get_parent()
@ -641,7 +654,7 @@ Generate a title following these rules:
def save_server_config(self):
with open(os.path.join(self.config_dir, "server.json"), "w+") as f:
json.dump({'remote_url': self.remote_url, 'run_remote': self.run_remote, 'local_port': local_instance.port, 'run_on_background': self.run_on_background, 'model_tweaks': self.model_tweaks, 'ollama_overrides': local_instance.overrides}, f, indent=6)
json.dump({'remote_url': self.remote_url, 'remote_bearer_token': self.remote_bearer_token, 'run_remote': self.run_remote, 'local_port': local_instance.port, 'run_on_background': self.run_on_background, 'model_tweaks': self.model_tweaks, 'ollama_overrides': local_instance.overrides}, f, indent=6)
def verify_connection(self):
response = connection_handler.simple_get(connection_handler.url)
@ -1077,6 +1090,7 @@ Generate a title following these rules:
def connect_local(self):
self.run_remote = False
connection_handler.bearer_token = None
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
local_instance.start()
if self.verify_connection() == False: self.connection_error()
@ -1094,10 +1108,12 @@ Generate a title following these rules:
if new_value != self.run_remote:
self.run_remote = new_value
if self.run_remote:
connection_handler.bearer_token = self.remote_bearer_token
connection_handler.url = self.remote_url
if self.verify_connection() == False: self.connection_error()
else: local_instance.stop()
else:
connection_handler.bearer_token = None
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
local_instance.start()
if self.verify_connection() == False: self.connection_error()
@ -1349,6 +1365,7 @@ Generate a title following these rules:
self.run_remote = data['run_remote']
local_instance.port = data['local_port']
self.remote_url = data['remote_url']
self.remote_bearer_token = data['remote_bearer_token'] if 'remote_bearer_token' in data else ''
self.run_on_background = data['run_on_background']
#Model Tweaks
if "model_tweaks" in data: self.model_tweaks = data['model_tweaks']
@ -1369,10 +1386,13 @@ Generate a title following these rules:
self.background_switch.set_active(self.run_on_background)
self.set_hide_on_close(self.run_on_background)
self.remote_connection_entry.set_text(self.remote_url)
self.remote_bearer_token_entry.set_text(self.remote_bearer_token)
if self.run_remote:
connection_handler.url = data['remote_url']
connection_handler.bearer_token = self.remote_bearer_token
connection_handler.url = self.remote_url
self.remote_connection_switch.set_active(True)
else:
connection_handler.bearer_token = None
self.remote_connection_switch.set_active(False)
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
local_instance.start()

View File

@ -303,6 +303,13 @@
<property name="show-apply-button">true</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="remote_bearer_token_entry">
<signal name="apply" handler="change_remote_bearer_token"/>
<property name="title" translatable="yes">Bearer Token (Optional)</property>
<property name="show-apply-button">true</property>
</object>
</child>
</object>
</child>
<child>
@ -311,7 +318,7 @@
<property name="description" translatable="yes">Manage Alpaca's Behavior</property>-->
<child>
<object class="AdwSwitchRow" id="background_switch">
<property name="title" translatable="yes">Run In Background</property>
<property name="title" translatable="yes">Run Alpaca In Background</property>
</object>
</child>
</object>