From 78ad79219881950dc014af7615020f48ca80342c Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 17:33:08 +0200 Subject: [PATCH 01/11] feat: llm validated backends --- horde/apis/models/stable_v2.py | 8 ++++++++ horde/bridge_reference.py | 8 ++++++++ horde/classes/base/waiting_prompt.py | 1 + horde/classes/kobold/processing_generation.py | 6 ++++++ horde/classes/kobold/worker.py | 8 ++++++++ horde/database/functions.py | 2 +- horde/database/text_functions.py | 9 ++++++++- sql_statements/4.41.0.txt | 1 + sql_statements/4.41.0.txt.license | 3 +++ 9 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 sql_statements/4.41.0.txt create mode 100644 sql_statements/4.41.0.txt.license diff --git a/horde/apis/models/stable_v2.py b/horde/apis/models/stable_v2.py index 563af6ca..379b4e38 100644 --- a/horde/apis/models/stable_v2.py +++ b/horde/apis/models/stable_v2.py @@ -579,6 +579,14 @@ def __init__(self, api): "When False, Evaluating workers will also be used which can increase speed but adds more risk!" ), ), + "validated_backends": fields.Boolean( + default=True, + description=( + "When true, only inference backends that are validated by the AI Horde devs will serve this request. " + "When False, non-validated backends will also be used which can increase speed but " + "you may end up with unexpected results." + ), + ), "slow_workers": fields.Boolean( default=True, description="When True, allows slower workers to pick up this request. Disabling this incurs an extra kudos cost.", diff --git a/horde/bridge_reference.py b/horde/bridge_reference.py index 453bd5dc..5f96e902 100644 --- a/horde/bridge_reference.py +++ b/horde/bridge_reference.py @@ -163,6 +163,8 @@ }, } +LLM_VALIDATED_BACKENDS = {"AI Horde Worker~Aphrodite" "KoboldCppEmbedWorker"} + @logger.catch(reraise=True) def parse_bridge_agent(bridge_agent): @@ -195,6 +197,12 @@ def check_bridge_capability(capability, bridge_agent): return capability in total_capabilities +@logger.catch(reraise=True) +def is_backed_validated(bridge_agent): + bridge_name, _ = parse_bridge_agent(bridge_agent) + return bridge_name in LLM_VALIDATED_BACKENDS + + @logger.catch(reraise=True) def get_supported_samplers(bridge_agent, karras=True): bridge_name, bridge_version = parse_bridge_agent(bridge_agent) diff --git a/horde/classes/base/waiting_prompt.py b/horde/classes/base/waiting_prompt.py index 9075c2c9..0a8c26cf 100644 --- a/horde/classes/base/waiting_prompt.py +++ b/horde/classes/base/waiting_prompt.py @@ -91,6 +91,7 @@ class WaitingPrompt(db.Model): ipaddr = db.Column(db.String(39)) # ipv6 safe_ip = db.Column(db.Boolean, default=False, nullable=False) trusted_workers = db.Column(db.Boolean, default=False, nullable=False, index=True) + validated_backends = db.Column(db.Boolean, default=True, nullable=False, index=True) slow_workers = db.Column(db.Boolean, default=True, nullable=False, index=True) worker_blacklist = db.Column(db.Boolean, default=False, nullable=False, index=True) faulted = db.Column(db.Boolean, default=False, nullable=False, index=True) diff --git a/horde/classes/kobold/processing_generation.py b/horde/classes/kobold/processing_generation.py index 84bb1ede..ecd1c829 100644 --- a/horde/classes/kobold/processing_generation.py +++ b/horde/classes/kobold/processing_generation.py @@ -6,6 +6,9 @@ import os from horde import vars as hv +from horde.bridge_reference import ( + is_backed_validated, +) from horde.classes.base.processing_generation import ProcessingGeneration from horde.classes.kobold.genstats import record_text_statistic from horde.flask import db @@ -57,6 +60,9 @@ def get_gen_kudos(self): model_multiplier = model_reference.get_text_model_multiplier(self.model) parameter_bonus = (max(model_multiplier, 13) / 13) ** 0.20 kudos = self.get_things_count() * parameter_bonus * model_multiplier / 100 + # Unvalidated backends have their rewards cut to 30% + if not is_backed_validated(self.worker.bridge_agent): + kudos *= 0.3 return round(kudos * context_multiplier, 2) def log_aborted_generation(self): diff --git a/horde/classes/kobold/worker.py b/horde/classes/kobold/worker.py index 81eccbc3..1e4f502d 100644 --- a/horde/classes/kobold/worker.py +++ b/horde/classes/kobold/worker.py @@ -9,6 +9,9 @@ from horde import exceptions as e from horde import horde_redis as hr +from horde.bridge_reference import ( + is_backed_validated, +) from horde.classes.base.worker import Worker from horde.flask import SQLITE_MODE, db from horde.logger import logger @@ -114,6 +117,9 @@ def calculate_uptime_reward(self): param_multiplier = model_reference.get_text_model_multiplier(model) / 7 if param_multiplier < 0.25: param_multiplier = 0.25 + # Unvalidated backends get less kudos + if not is_backed_validated(self.worker.bridge_agent): + base_kudos *= 0.3 # The uptime is based on both how much context they provide, as well as how many parameters they're serving return round(base_kudos * param_multiplier, 2) @@ -125,6 +131,8 @@ def can_generate(self, waiting_prompt): return [False, "max_context_length"] if self.max_length < waiting_prompt.max_length: return [False, "max_length"] + if waiting_prompt.validated_backends and not is_backed_validated(self.bridge_agent): + return [False, "bridge_version"] matching_softprompt = True if waiting_prompt.softprompt: matching_softprompt = False diff --git a/horde/database/functions.py b/horde/database/functions.py index 421a9ad2..affc1e50 100644 --- a/horde/database/functions.py +++ b/horde/database/functions.py @@ -762,7 +762,7 @@ def count_things_for_specific_model(wp_class, procgen_class, model_name): def get_sorted_wp_filtered_to_worker(worker, models_list=None, blacklist=None, priority_user_ids=None, page=0): - # This is just the top 25 - Adjusted method to send ImageWorker object. Filters to add. + # This is just the top 3 - Adjusted method to send ImageWorker object. Filters to add. # TODO: Filter by ImageWorker not in WP.tricked_worker # TODO: If any word in the prompt is in the WP.blacklist rows, then exclude it (L293 in base.worker.ImageWorker.gan_generate()) PER_PAGE = 3 # how many requests we're picking up to filter further diff --git a/horde/database/text_functions.py b/horde/database/text_functions.py index 5c033289..7865f16b 100644 --- a/horde/database/text_functions.py +++ b/horde/database/text_functions.py @@ -11,6 +11,9 @@ import horde.classes.base.stats as stats from horde import horde_redis as hr +from horde.bridge_reference import ( + is_backed_validated, +) from horde.classes.base.waiting_prompt import WPAllowedWorkers, WPModels from horde.classes.base.worker import WorkerPerformance from horde.classes.kobold.processing_generation import TextProcessingGeneration @@ -30,7 +33,7 @@ def convert_things_to_kudos(things, **kwargs): def get_sorted_text_wp_filtered_to_worker(worker, models_list=None, priority_user_ids=None, page=0): - # This is just the top 100 - Adjusted method to send Worker object. Filters to add. + # This is just the top 3 - Adjusted method to send Worker object. Filters to add. # TODO: Filter by (Worker in WP.workers) __ONLY IF__ len(WP.workers) >=1 # TODO: Filter by WP.trusted_workers == False __ONLY IF__ Worker.user.trusted == False # TODO: Filter by Worker not in WP.tricked_worker @@ -91,6 +94,10 @@ def get_sorted_text_wp_filtered_to_worker(worker, models_list=None, priority_use worker.maintenance == False, # noqa E712 TextWaitingPrompt.user_id == worker.user_id, ), + or_( + is_backed_validated(worker.bridge_agent), + TextWaitingPrompt.validated_backends.is_(False), + ), ) ) if priority_user_ids: diff --git a/sql_statements/4.41.0.txt b/sql_statements/4.41.0.txt new file mode 100644 index 00000000..c77e8819 --- /dev/null +++ b/sql_statements/4.41.0.txt @@ -0,0 +1 @@ +ALTER TABLE waiting_prompts ADD COLUMN validated_backends BOOLEAN default true; diff --git a/sql_statements/4.41.0.txt.license b/sql_statements/4.41.0.txt.license new file mode 100644 index 00000000..8140c6e2 --- /dev/null +++ b/sql_statements/4.41.0.txt.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: Konstantinos Thoukydidis + +SPDX-License-Identifier: AGPL-3.0-or-later From 0b6bfd71671646127cd92ca0c7289d371c6fb1d7 Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 18:29:07 +0200 Subject: [PATCH 02/11] fix: forgot to pass new arg --- horde/apis/v2/base.py | 1 + horde/apis/v2/kobold.py | 3 ++- horde/apis/v2/stable.py | 1 + tests/test_text.py | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/horde/apis/v2/base.py b/horde/apis/v2/base.py index 2ae8d901..5278e2ed 100644 --- a/horde/apis/v2/base.py +++ b/horde/apis/v2/base.py @@ -332,6 +332,7 @@ def initiate_waiting_prompt(self): nsfw=self.args.nsfw, censor_nsfw=self.args.censor_nsfw, trusted_workers=self.args.trusted_workers, + validated_backends=self.args.validated_backends, worker_blacklist=self.args.worker_blacklist, ipaddr=self.user_ip, sharedkey_id=self.args.apikey if self.sharedkey else None, diff --git a/horde/apis/v2/kobold.py b/horde/apis/v2/kobold.py index 7e318c29..510ceb02 100644 --- a/horde/apis/v2/kobold.py +++ b/horde/apis/v2/kobold.py @@ -89,6 +89,7 @@ def initiate_waiting_prompt(self): params=self.params, softprompt=self.args.softprompt, trusted_workers=self.args.trusted_workers, + validated_backends=self.args.validated_backends, worker_blacklist=self.args.worker_blacklist, slow_workers=self.args.slow_workers, ipaddr=self.user_ip, @@ -311,7 +312,7 @@ def get_sorted_wp(self, priority_user_ids=None): priority_user_ids=priority_user_ids, page=self.wp_page, ) - + logger.debug(sorted_wps) return sorted_wps diff --git a/horde/apis/v2/stable.py b/horde/apis/v2/stable.py index 6f0fd02b..813720b2 100644 --- a/horde/apis/v2/stable.py +++ b/horde/apis/v2/stable.py @@ -292,6 +292,7 @@ def initiate_waiting_prompt(self): nsfw=self.args.nsfw, censor_nsfw=self.args.censor_nsfw, trusted_workers=self.args.trusted_workers, + validated_backends=self.args.validated_backends, worker_blacklist=self.args.worker_blacklist, slow_workers=self.args.slow_workers, source_processing=self.args.source_processing, diff --git a/tests/test_text.py b/tests/test_text.py index 4c99a527..55ac72f7 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -12,6 +12,7 @@ def test_simple_text_gen(api_key: str, HORDE_URL: str, CIVERSION: str) -> None: async_dict = { "prompt": "a horde of cute stable robots in a sprawling server room repairing a massive mainframe", "trusted_workers": True, + "validated_backends": False, "max_length": 512, "max_context_length": 2048, "temperature": 1, @@ -28,7 +29,7 @@ def test_simple_text_gen(api_key: str, HORDE_URL: str, CIVERSION: str) -> None: pop_dict = { "name": "CICD Fake Scribe", "models": ["elinas/chronos-70b-v2"], - "bridge_agent": f"aihorde_ci_client:{CIVERSION}:(discord)db0#1625", + "bridge_agent": f"KoboldCppEmbedWorker:{CIVERSION}:(discord)db0#1625", "amount": 10, "max_context_length": 4096, "max_length": 512, From a90cb4684892f4609439c58759e1504f43c5d2e3 Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 18:35:35 +0200 Subject: [PATCH 03/11] fix: missing arg --- horde/apis/models/kobold_v2.py | 8 ++++++++ horde/apis/models/stable_v2.py | 2 +- horde/apis/models/v2.py | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/horde/apis/models/kobold_v2.py b/horde/apis/models/kobold_v2.py index 52f9df56..060ba2d5 100644 --- a/horde/apis/models/kobold_v2.py +++ b/horde/apis/models/kobold_v2.py @@ -294,6 +294,14 @@ def __init__(self, api): "When False, Evaluating workers will also be used which can increase speed but adds more risk!" ), ), + "validated_backends": fields.Boolean( + default=True, + description=( + f"When true, only inference backends that are validated by the {horde_title} devs will serve this request. " + "When False, non-validated backends will also be used which can increase speed but " + "you may end up with unexpected results." + ), + ), "slow_workers": fields.Boolean( default=True, description="When True, allows slower workers to pick up this request. Disabling this incurs an extra kudos cost.", diff --git a/horde/apis/models/stable_v2.py b/horde/apis/models/stable_v2.py index 379b4e38..50620ed7 100644 --- a/horde/apis/models/stable_v2.py +++ b/horde/apis/models/stable_v2.py @@ -582,7 +582,7 @@ def __init__(self, api): "validated_backends": fields.Boolean( default=True, description=( - "When true, only inference backends that are validated by the AI Horde devs will serve this request. " + f"When true, only inference backends that are validated by the {horde_title} devs will serve this request. " "When False, non-validated backends will also be used which can increase speed but " "you may end up with unexpected results." ), diff --git a/horde/apis/models/v2.py b/horde/apis/models/v2.py index b5f3345b..6e1e1079 100644 --- a/horde/apis/models/v2.py +++ b/horde/apis/models/v2.py @@ -57,6 +57,16 @@ def __init__(self): "When False, Evaluating workers will also be used.", location="json", ) + self.generate_parser.add_argument( + "validated_backends", + type=bool, + required=False, + default=False, + help=f"When true, only inference backends that are validated by the {horde_title} devs will serve this request. " + "When False, non-validated backends will also be used which can increase speed but " + "you may end up with unexpected results.", + location="json", + ) self.generate_parser.add_argument( "workers", type=list, From cef75d2a13a1714f9853f011112dc5cef3cc07cb Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 18:48:53 +0200 Subject: [PATCH 04/11] debug --- horde/apis/v2/kobold.py | 2 +- tests/test_text.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/horde/apis/v2/kobold.py b/horde/apis/v2/kobold.py index 510ceb02..d57cc164 100644 --- a/horde/apis/v2/kobold.py +++ b/horde/apis/v2/kobold.py @@ -312,7 +312,7 @@ def get_sorted_wp(self, priority_user_ids=None): priority_user_ids=priority_user_ids, page=self.wp_page, ) - logger.debug(sorted_wps) + logger.debug([sorted_wps,self.args]) return sorted_wps diff --git a/tests/test_text.py b/tests/test_text.py index 55ac72f7..5b3b296c 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -12,7 +12,7 @@ def test_simple_text_gen(api_key: str, HORDE_URL: str, CIVERSION: str) -> None: async_dict = { "prompt": "a horde of cute stable robots in a sprawling server room repairing a massive mainframe", "trusted_workers": True, - "validated_backends": False, + "validated_backends": True, "max_length": 512, "max_context_length": 2048, "temperature": 1, @@ -38,9 +38,13 @@ def test_simple_text_gen(api_key: str, HORDE_URL: str, CIVERSION: str) -> None: assert pop_req.ok, pop_req.text pop_results = pop_req.json() # print(json.dumps(pop_results, indent=4)) - job_id = pop_results["id"] - assert job_id is not None, pop_results + try: + assert job_id is not None, pop_results + except AssertionError as err: + requests.delete(f"{protocol}://{HORDE_URL}/api/v2/generate/text/status/{req_id}", headers=headers) + print("Request cancelled") + raise err submit_dict = { "id": job_id, "generation": "test ", From 7114c4bea26662e74afd00cc84aabb519501f4a3 Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 18:51:20 +0200 Subject: [PATCH 05/11] debug --- horde/bridge_reference.py | 1 + 1 file changed, 1 insertion(+) diff --git a/horde/bridge_reference.py b/horde/bridge_reference.py index 5f96e902..02877c05 100644 --- a/horde/bridge_reference.py +++ b/horde/bridge_reference.py @@ -200,6 +200,7 @@ def check_bridge_capability(capability, bridge_agent): @logger.catch(reraise=True) def is_backed_validated(bridge_agent): bridge_name, _ = parse_bridge_agent(bridge_agent) + logger.debug([bridge_name,LLM_VALIDATED_BACKENDS]) return bridge_name in LLM_VALIDATED_BACKENDS From e34ae3671398fcb8dd2ed02fb8f101398bbc382d Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 18:52:24 +0200 Subject: [PATCH 06/11] fiux --- horde/apis/v2/kobold.py | 1 - horde/bridge_reference.py | 3 +-- tests/test_text.py | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/horde/apis/v2/kobold.py b/horde/apis/v2/kobold.py index d57cc164..3e4e08fb 100644 --- a/horde/apis/v2/kobold.py +++ b/horde/apis/v2/kobold.py @@ -312,7 +312,6 @@ def get_sorted_wp(self, priority_user_ids=None): priority_user_ids=priority_user_ids, page=self.wp_page, ) - logger.debug([sorted_wps,self.args]) return sorted_wps diff --git a/horde/bridge_reference.py b/horde/bridge_reference.py index 02877c05..8fa46b32 100644 --- a/horde/bridge_reference.py +++ b/horde/bridge_reference.py @@ -163,7 +163,7 @@ }, } -LLM_VALIDATED_BACKENDS = {"AI Horde Worker~Aphrodite" "KoboldCppEmbedWorker"} +LLM_VALIDATED_BACKENDS = {"AI Horde Worker~Aphrodite", "KoboldCppEmbedWorker"} @logger.catch(reraise=True) @@ -200,7 +200,6 @@ def check_bridge_capability(capability, bridge_agent): @logger.catch(reraise=True) def is_backed_validated(bridge_agent): bridge_name, _ = parse_bridge_agent(bridge_agent) - logger.debug([bridge_name,LLM_VALIDATED_BACKENDS]) return bridge_name in LLM_VALIDATED_BACKENDS diff --git a/tests/test_text.py b/tests/test_text.py index 5b3b296c..1e258e1d 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -44,7 +44,7 @@ def test_simple_text_gen(api_key: str, HORDE_URL: str, CIVERSION: str) -> None: except AssertionError as err: requests.delete(f"{protocol}://{HORDE_URL}/api/v2/generate/text/status/{req_id}", headers=headers) print("Request cancelled") - raise err + raise err submit_dict = { "id": job_id, "generation": "test ", From 82a6d7a6206c9ca960f148a249a07c163e2b5161 Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 18:54:00 +0200 Subject: [PATCH 07/11] fiux --- horde/classes/kobold/worker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/horde/classes/kobold/worker.py b/horde/classes/kobold/worker.py index 1e4f502d..f9ce7a49 100644 --- a/horde/classes/kobold/worker.py +++ b/horde/classes/kobold/worker.py @@ -118,7 +118,7 @@ def calculate_uptime_reward(self): if param_multiplier < 0.25: param_multiplier = 0.25 # Unvalidated backends get less kudos - if not is_backed_validated(self.worker.bridge_agent): + if not is_backed_validated(self.bridge_agent): base_kudos *= 0.3 # The uptime is based on both how much context they provide, as well as how many parameters they're serving return round(base_kudos * param_multiplier, 2) From 8ac57336bcb8fa8fa51b33468e4ce2f01490cf07 Mon Sep 17 00:00:00 2001 From: db0 Date: Sun, 8 Sep 2024 19:01:19 +0200 Subject: [PATCH 08/11] v4.41.0 --- CHANGELOG.md | 4 ++++ horde/consts.py | 2 +- tests/test_text.py | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15aa7b90..188c7032 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ SPDX-License-Identifier: AGPL-3.0-or-later # Changelog +# 4.41.0 + +* Adds support for extra backends behind LLM bridges, and for knowing which are validated. + # 4.40.3 * Ensure jobs don't expire soon after being picked up diff --git a/horde/consts.py b/horde/consts.py index d1d8f106..f833db9c 100644 --- a/horde/consts.py +++ b/horde/consts.py @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: AGPL-3.0-or-later -HORDE_VERSION = "4.40.3 " +HORDE_VERSION = "4.41.0 " WHITELISTED_SERVICE_IPS = { "212.227.227.178", # Turing Bot diff --git a/tests/test_text.py b/tests/test_text.py index 1e258e1d..98522f38 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -12,7 +12,7 @@ def test_simple_text_gen(api_key: str, HORDE_URL: str, CIVERSION: str) -> None: async_dict = { "prompt": "a horde of cute stable robots in a sprawling server room repairing a massive mainframe", "trusted_workers": True, - "validated_backends": True, + "validated_backends": False, "max_length": 512, "max_context_length": 2048, "temperature": 1, @@ -29,7 +29,7 @@ def test_simple_text_gen(api_key: str, HORDE_URL: str, CIVERSION: str) -> None: pop_dict = { "name": "CICD Fake Scribe", "models": ["elinas/chronos-70b-v2"], - "bridge_agent": f"KoboldCppEmbedWorker:{CIVERSION}:(discord)db0#1625", + "bridge_agent": f"aihorde_ci_client:{CIVERSION}:(discord)db0#1625", "amount": 10, "max_context_length": 4096, "max_length": 512, From 3a348e82d85af3096444329936bba23c65cc96fc Mon Sep 17 00:00:00 2001 From: db0 Date: Mon, 9 Sep 2024 21:52:46 +0200 Subject: [PATCH 09/11] fix: payload model --- horde/apis/models/kobold_v2.py | 2 +- horde/classes/kobold/processing_generation.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/horde/apis/models/kobold_v2.py b/horde/apis/models/kobold_v2.py index 060ba2d5..944773a0 100644 --- a/horde/apis/models/kobold_v2.py +++ b/horde/apis/models/kobold_v2.py @@ -242,7 +242,7 @@ def __init__(self, api): }, ) self.response_model_job_pop = api.model( - "GenerationPayload", + "GenerationPayloadKobold", { "payload": fields.Nested(self.response_model_generation_payload, skip_none=True), "id": fields.String(description="The UUID for this text generation."), diff --git a/horde/classes/kobold/processing_generation.py b/horde/classes/kobold/processing_generation.py index ecd1c829..a28f8be9 100644 --- a/horde/classes/kobold/processing_generation.py +++ b/horde/classes/kobold/processing_generation.py @@ -59,7 +59,7 @@ def get_gen_kudos(self): # This is the approximate reward for generating with a 2.7 model at 4bit model_multiplier = model_reference.get_text_model_multiplier(self.model) parameter_bonus = (max(model_multiplier, 13) / 13) ** 0.20 - kudos = self.get_things_count() * parameter_bonus * model_multiplier / 100 + kudos = self.get_things_count() * parameter_bonus * model_multiplier / 125 # Unvalidated backends have their rewards cut to 30% if not is_backed_validated(self.worker.bridge_agent): kudos *= 0.3 From e0ea8e1c7a95731bfc49fa8f8b3f2a715cb79520 Mon Sep 17 00:00:00 2001 From: db0 Date: Tue, 10 Sep 2024 17:30:56 +0200 Subject: [PATCH 10/11] feat: added more known backends --- horde/bridge_reference.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/horde/bridge_reference.py b/horde/bridge_reference.py index 8fa46b32..c7ea780d 100644 --- a/horde/bridge_reference.py +++ b/horde/bridge_reference.py @@ -163,7 +163,7 @@ }, } -LLM_VALIDATED_BACKENDS = {"AI Horde Worker~Aphrodite", "KoboldCppEmbedWorker"} +LLM_VALIDATED_BACKENDS = {"AI Horde Worker", "AI Horde Worker~Aphrodite~oai", "AI Horde Worker~Aphrodite~kai", "KoboldCppEmbedWorker"} @logger.catch(reraise=True) From 5865f9923ab101add9036ae0e688fa06c1456330 Mon Sep 17 00:00:00 2001 From: db0 Date: Tue, 10 Sep 2024 17:35:19 +0200 Subject: [PATCH 11/11] fix: case --- horde/bridge_reference.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/horde/bridge_reference.py b/horde/bridge_reference.py index c7ea780d..7d7a1aea 100644 --- a/horde/bridge_reference.py +++ b/horde/bridge_reference.py @@ -163,7 +163,7 @@ }, } -LLM_VALIDATED_BACKENDS = {"AI Horde Worker", "AI Horde Worker~Aphrodite~oai", "AI Horde Worker~Aphrodite~kai", "KoboldCppEmbedWorker"} +LLM_VALIDATED_BACKENDS = {"AI Horde Worker", "AI Horde Worker~aphrodite~oai", "AI Horde Worker~aphrodite~kai", "KoboldCppEmbedWorker"} @logger.catch(reraise=True)