Fixed chat title generation and image recognition (+ added support for jpg)

This commit is contained in:
jeffser 2024-06-30 14:43:12 -06:00
parent c6110e8cde
commit b6a180080f
3 changed files with 14 additions and 13 deletions

View File

@ -4,17 +4,17 @@ import json, requests
url = None url = None
bearer_token = None bearer_token = None
def get_headers() -> dict: def get_headers(include_json:bool) -> dict:
headers = { headers = {}
"Content-Type": "application/json" if include_json:
} headers["Content-Type"] = "application/json"
if bearer_token: if bearer_token:
headers["Authorization"] = "Bearer " + bearer_token headers["Authorization"] = "Bearer {}".format(bearer_token)
return headers return headers if len(headers.keys()) > 0 else None
def simple_get(connection_url:str) -> dict: def simple_get(connection_url:str) -> dict:
try: try:
response = requests.get(connection_url, headers=get_headers()) response = requests.get(connection_url, headers=get_headers(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:
@ -24,7 +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:
response = requests.post(connection_url, headers=get_headers(), data=data, stream=False) response = requests.post(connection_url, headers=get_headers(True), 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:
@ -34,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, headers=get_headers(), json=data) response = requests.delete(connection_url, headers=get_headers(False), 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:
@ -44,7 +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:
response = requests.post(connection_url, headers=get_headers(), data=data, stream=True) response = requests.post(connection_url, headers=get_headers(True), 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:

View File

@ -156,8 +156,8 @@ class AlpacaWindow(Adw.ApplicationWindow):
@Gtk.Template.Callback() @Gtk.Template.Callback()
def verify_if_image_can_be_used(self, pspec=None, user_data=None): def verify_if_image_can_be_used(self, pspec=None, user_data=None):
if self.model_drop_down.get_selected_item() == None: return True if self.model_drop_down.get_selected_item() == None: return True
selected = self.model_drop_down.get_selected_item().get_string().split(" (")[0] selected = self.model_drop_down.get_selected_item().get_string().split(" (")[0].lower()
if selected in ['llava', 'bakllava', 'moondream', 'llava-llama3']: if selected in [key for key, value in self.available_models.items() if value["image"]]:
for name, content in self.attachments.items(): for name, content in self.attachments.items():
if content['type'] == 'image': if content['type'] == 'image':
content['button'].set_css_classes(["flat"]) content['button'].set_css_classes(["flat"])
@ -501,7 +501,7 @@ Generate a title following these rules:
{message} {message}
```""" ```"""
current_model = self.model_drop_down.get_selected_item().get_string() current_model = self.model_drop_down.get_selected_item().get_string()
current_model = current_model.replace(' (', ':')[:-1] current_model = current_model.replace(' (', ':')[:-1].lower()
response = connection_handler.simple_post(f"{connection_handler.url}/api/generate", data=json.dumps({"model": current_model, "prompt": prompt, "stream": False})) response = connection_handler.simple_post(f"{connection_handler.url}/api/generate", data=json.dumps({"model": current_model, "prompt": prompt, "stream": False}))
new_chat_name = json.loads(response['text'])["response"].replace('"', '').replace("'", "") new_chat_name = json.loads(response['text'])["response"].replace('"', '').replace("'", "")
new_chat_name = self.generate_numbered_name(new_chat_name, self.chats["chats"].keys()) new_chat_name = self.generate_numbered_name(new_chat_name, self.chats["chats"].keys())

View File

@ -1021,6 +1021,7 @@
<suffix>pdf</suffix> <suffix>pdf</suffix>
<suffix>png</suffix> <suffix>png</suffix>
<suffix>jpeg</suffix> <suffix>jpeg</suffix>
<suffix>jpg</suffix>
<suffix>webp</suffix> <suffix>webp</suffix>
<suffix>gif</suffix> <suffix>gif</suffix>
</suffixes> </suffixes>