Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7c26956cd4 | ||
|
|
52f02cd5d0 | ||
|
|
0df6b20147 | ||
|
|
253a2dda7d | ||
|
|
d762a85130 | ||
|
|
a765e8cf2e | ||
|
|
3e7fd1140c | ||
|
|
a56631510d |
@@ -78,6 +78,16 @@
|
|||||||
<url type="contribute">https://github.com/Jeffser/Alpaca/discussions/154</url>
|
<url type="contribute">https://github.com/Jeffser/Alpaca/discussions/154</url>
|
||||||
<url type="vcs-browser">https://github.com/Jeffser/Alpaca</url>
|
<url type="vcs-browser">https://github.com/Jeffser/Alpaca</url>
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="1.0.1" date="2024-06-23">
|
||||||
|
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/1.0.1</url>
|
||||||
|
<description>
|
||||||
|
<p>Fixes</p>
|
||||||
|
<ul>
|
||||||
|
<li>Models with '-' in their names didn't work properly, this is now fixed</li>
|
||||||
|
<li>Better connection check for Ollama</li>
|
||||||
|
</ul>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
<release version="1.0.0" date="2024-07-22">
|
<release version="1.0.0" date="2024-07-22">
|
||||||
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/1.0.0</url>
|
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/1.0.0</url>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
project('Alpaca', 'c',
|
project('Alpaca', 'c',
|
||||||
version: '1.0.0',
|
version: '1.0.1',
|
||||||
meson_version: '>= 0.62.0',
|
meson_version: '>= 0.62.0',
|
||||||
default_options: [ 'warning_level=2', 'werror=false', ],
|
default_options: [ 'warning_level=2', 'werror=false', ],
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -34,13 +34,13 @@ logger = logging.getLogger(__name__)
|
|||||||
class AlpacaApplication(Adw.Application):
|
class AlpacaApplication(Adw.Application):
|
||||||
"""The main application singleton class."""
|
"""The main application singleton class."""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, version):
|
||||||
super().__init__(application_id='com.jeffser.Alpaca',
|
super().__init__(application_id='com.jeffser.Alpaca',
|
||||||
flags=Gio.ApplicationFlags.DEFAULT_FLAGS)
|
flags=Gio.ApplicationFlags.DEFAULT_FLAGS)
|
||||||
self.create_action('quit', lambda *_: self.quit(), ['<primary>q'])
|
self.create_action('quit', lambda *_: self.quit(), ['<primary>q'])
|
||||||
self.create_action('preferences', lambda *_: AlpacaWindow.show_preferences_dialog(self.props.active_window), ['<primary>p'])
|
self.create_action('preferences', lambda *_: AlpacaWindow.show_preferences_dialog(self.props.active_window), ['<primary>p'])
|
||||||
self.create_action('about', self.on_about_action)
|
self.create_action('about', self.on_about_action)
|
||||||
self.version = '1.0.0'
|
self.version = version
|
||||||
|
|
||||||
def do_activate(self):
|
def do_activate(self):
|
||||||
win = self.props.active_window
|
win = self.props.active_window
|
||||||
@@ -77,6 +77,6 @@ def main(version):
|
|||||||
format="%(levelname)s\t[%(filename)s | %(funcName)s] %(message)s",
|
format="%(levelname)s\t[%(filename)s | %(funcName)s] %(message)s",
|
||||||
level=logging.INFO
|
level=logging.INFO
|
||||||
)
|
)
|
||||||
app = AlpacaApplication()
|
app = AlpacaApplication(version)
|
||||||
logger.info(f"Alpaca version: {app.version}")
|
logger.info(f"Alpaca version: {app.version}")
|
||||||
return app.run(sys.argv)
|
return app.run(sys.argv)
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
self.chats['order'].insert(0, self.chats['selected_chat'])
|
self.chats['order'].insert(0, self.chats['selected_chat'])
|
||||||
self.save_history()
|
self.save_history()
|
||||||
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].lower()
|
current_model = current_model.replace(' (', ':').replace(' ', '-')[:-1].lower()
|
||||||
if current_model is None:
|
if current_model is None:
|
||||||
self.show_toast(_("Please select a model before chatting"), self.main_overlay)
|
self.show_toast(_("Please select a model before chatting"), self.main_overlay)
|
||||||
return
|
return
|
||||||
@@ -572,10 +572,12 @@ Generate a title following these rules:
|
|||||||
{message['content']}
|
{message['content']}
|
||||||
```"""
|
```"""
|
||||||
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].lower()
|
current_model = current_model.replace(' (', ':').replace(' ', '-')[:-1].lower()
|
||||||
data = {"model": current_model, "prompt": prompt, "stream": False}
|
data = {"model": current_model, "prompt": prompt, "stream": False}
|
||||||
if 'images' in message: data["images"] = message['images']
|
if 'images' in message: data["images"] = message['images']
|
||||||
|
print(current_model)
|
||||||
response = connection_handler.simple_post(f"{connection_handler.url}/api/generate", data=json.dumps(data))
|
response = connection_handler.simple_post(f"{connection_handler.url}/api/generate", data=json.dumps(data))
|
||||||
|
|
||||||
new_chat_name = json.loads(response.text)["response"].strip().removeprefix("Title: ").removeprefix("title: ").strip('\'"').title()
|
new_chat_name = json.loads(response.text)["response"].strip().removeprefix("Title: ").removeprefix("title: ").strip('\'"').title()
|
||||||
new_chat_name = new_chat_name[:50] + (new_chat_name[50:] and '...')
|
new_chat_name = new_chat_name[:50] + (new_chat_name[50:] and '...')
|
||||||
self.rename_chat(label_element.get_name(), new_chat_name, label_element)
|
self.rename_chat(label_element.get_name(), new_chat_name, label_element)
|
||||||
@@ -780,13 +782,11 @@ Generate a title following these rules:
|
|||||||
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)
|
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(f"{connection_handler.url}/api/tags")
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
if "Ollama is running" in response.text:
|
|
||||||
self.save_server_config()
|
self.save_server_config()
|
||||||
self.update_list_local_models()
|
self.update_list_local_models()
|
||||||
return True
|
return response.status_code == 200
|
||||||
return False
|
|
||||||
|
|
||||||
def add_code_blocks(self):
|
def add_code_blocks(self):
|
||||||
text = self.bot_message.get_text(self.bot_message.get_start_iter(), self.bot_message.get_end_iter(), True)
|
text = self.bot_message.get_text(self.bot_message.get_start_iter(), self.bot_message.get_end_iter(), True)
|
||||||
|
|||||||
Reference in New Issue
Block a user