Added bearer token
This commit is contained in:
parent
0fbde265ef
commit
527f7b4452
@ -2,10 +2,19 @@
|
|||||||
import json, requests
|
import json, requests
|
||||||
|
|
||||||
url = None
|
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:
|
def simple_get(connection_url:str) -> dict:
|
||||||
try:
|
try:
|
||||||
response = requests.get(connection_url)
|
response = requests.get(connection_url, headers=get_headers())
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
return {"status": "ok", "text": response.text, "status_code": response.status_code}
|
return {"status": "ok", "text": response.text, "status_code": response.status_code}
|
||||||
else:
|
else:
|
||||||
@ -15,10 +24,7 @@ def simple_get(connection_url:str) -> dict:
|
|||||||
|
|
||||||
def simple_post(connection_url:str, data) -> dict:
|
def simple_post(connection_url:str, data) -> dict:
|
||||||
try:
|
try:
|
||||||
headers = {
|
response = requests.post(connection_url, headers=get_headers(), data=data, stream=False)
|
||||||
"Content-Type": "application/json"
|
|
||||||
}
|
|
||||||
response = requests.post(connection_url, headers=headers, data=data, stream=False)
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
return {"status": "ok", "text": response.text, "status_code": response.status_code}
|
return {"status": "ok", "text": response.text, "status_code": response.status_code}
|
||||||
else:
|
else:
|
||||||
@ -28,7 +34,7 @@ def simple_post(connection_url:str, data) -> dict:
|
|||||||
|
|
||||||
def simple_delete(connection_url:str, data) -> dict:
|
def simple_delete(connection_url:str, data) -> dict:
|
||||||
try:
|
try:
|
||||||
response = requests.delete(connection_url, json=data)
|
response = requests.delete(connection_url, headers=get_headers(), json=data)
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
return {"status": "ok", "status_code": response.status_code}
|
return {"status": "ok", "status_code": response.status_code}
|
||||||
else:
|
else:
|
||||||
@ -38,10 +44,7 @@ def simple_delete(connection_url:str, data) -> dict:
|
|||||||
|
|
||||||
def stream_post(connection_url:str, data, callback:callable) -> dict:
|
def stream_post(connection_url:str, data, callback:callable) -> dict:
|
||||||
try:
|
try:
|
||||||
headers = {
|
response = requests.post(connection_url, headers=get_headers(), data=data, stream=True)
|
||||||
"Content-Type": "application/json"
|
|
||||||
}
|
|
||||||
response = requests.post(connection_url, headers=headers, data=data, stream=True)
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
for line in response.iter_lines():
|
for line in response.iter_lines():
|
||||||
if line:
|
if line:
|
||||||
|
@ -49,6 +49,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
available_models = None
|
available_models = None
|
||||||
run_on_background = False
|
run_on_background = False
|
||||||
remote_url = ""
|
remote_url = ""
|
||||||
|
remote_bearer_token = ""
|
||||||
run_remote = False
|
run_remote = False
|
||||||
model_tweaks = {"temperature": 0.7, "seed": 0, "keep_alive": 5}
|
model_tweaks = {"temperature": 0.7, "seed": 0, "keep_alive": 5}
|
||||||
local_models = []
|
local_models = []
|
||||||
@ -116,6 +117,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
background_switch = Gtk.Template.Child()
|
background_switch = Gtk.Template.Child()
|
||||||
remote_connection_switch = Gtk.Template.Child()
|
remote_connection_switch = Gtk.Template.Child()
|
||||||
remote_connection_entry = Gtk.Template.Child()
|
remote_connection_entry = Gtk.Template.Child()
|
||||||
|
remote_bearer_token_entry = Gtk.Template.Child()
|
||||||
|
|
||||||
toast_messages = {
|
toast_messages = {
|
||||||
"error": [
|
"error": [
|
||||||
@ -280,6 +282,17 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
entry.set_css_classes(["error"])
|
entry.set_css_classes(["error"])
|
||||||
self.show_toast("error", 1, self.preferences_dialog)
|
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()
|
@Gtk.Template.Callback()
|
||||||
def pull_featured_model(self, button):
|
def pull_featured_model(self, button):
|
||||||
action_row = button.get_parent().get_parent().get_parent()
|
action_row = button.get_parent().get_parent().get_parent()
|
||||||
@ -641,7 +654,7 @@ Generate a title following these rules:
|
|||||||
|
|
||||||
def save_server_config(self):
|
def save_server_config(self):
|
||||||
with open(os.path.join(self.config_dir, "server.json"), "w+") as f:
|
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):
|
def verify_connection(self):
|
||||||
response = connection_handler.simple_get(connection_handler.url)
|
response = connection_handler.simple_get(connection_handler.url)
|
||||||
@ -1077,6 +1090,7 @@ Generate a title following these rules:
|
|||||||
|
|
||||||
def connect_local(self):
|
def connect_local(self):
|
||||||
self.run_remote = False
|
self.run_remote = False
|
||||||
|
connection_handler.bearer_token = None
|
||||||
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
|
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
|
||||||
local_instance.start()
|
local_instance.start()
|
||||||
if self.verify_connection() == False: self.connection_error()
|
if self.verify_connection() == False: self.connection_error()
|
||||||
@ -1094,10 +1108,12 @@ Generate a title following these rules:
|
|||||||
if new_value != self.run_remote:
|
if new_value != self.run_remote:
|
||||||
self.run_remote = new_value
|
self.run_remote = new_value
|
||||||
if self.run_remote:
|
if self.run_remote:
|
||||||
|
connection_handler.bearer_token = self.remote_bearer_token
|
||||||
connection_handler.url = self.remote_url
|
connection_handler.url = self.remote_url
|
||||||
if self.verify_connection() == False: self.connection_error()
|
if self.verify_connection() == False: self.connection_error()
|
||||||
else: local_instance.stop()
|
else: local_instance.stop()
|
||||||
else:
|
else:
|
||||||
|
connection_handler.bearer_token = None
|
||||||
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
|
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
|
||||||
local_instance.start()
|
local_instance.start()
|
||||||
if self.verify_connection() == False: self.connection_error()
|
if self.verify_connection() == False: self.connection_error()
|
||||||
@ -1349,6 +1365,7 @@ Generate a title following these rules:
|
|||||||
self.run_remote = data['run_remote']
|
self.run_remote = data['run_remote']
|
||||||
local_instance.port = data['local_port']
|
local_instance.port = data['local_port']
|
||||||
self.remote_url = data['remote_url']
|
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']
|
self.run_on_background = data['run_on_background']
|
||||||
#Model Tweaks
|
#Model Tweaks
|
||||||
if "model_tweaks" in data: self.model_tweaks = data['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.background_switch.set_active(self.run_on_background)
|
||||||
self.set_hide_on_close(self.run_on_background)
|
self.set_hide_on_close(self.run_on_background)
|
||||||
self.remote_connection_entry.set_text(self.remote_url)
|
self.remote_connection_entry.set_text(self.remote_url)
|
||||||
|
self.remote_bearer_token_entry.set_text(self.remote_bearer_token)
|
||||||
if self.run_remote:
|
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)
|
self.remote_connection_switch.set_active(True)
|
||||||
else:
|
else:
|
||||||
|
connection_handler.bearer_token = None
|
||||||
self.remote_connection_switch.set_active(False)
|
self.remote_connection_switch.set_active(False)
|
||||||
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
|
connection_handler.url = f"http://127.0.0.1:{local_instance.port}"
|
||||||
local_instance.start()
|
local_instance.start()
|
||||||
|
@ -303,6 +303,13 @@
|
|||||||
<property name="show-apply-button">true</property>
|
<property name="show-apply-button">true</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</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>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
@ -311,7 +318,7 @@
|
|||||||
<property name="description" translatable="yes">Manage Alpaca's Behavior</property>-->
|
<property name="description" translatable="yes">Manage Alpaca's Behavior</property>-->
|
||||||
<child>
|
<child>
|
||||||
<object class="AdwSwitchRow" id="background_switch">
|
<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>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user