feat: add test connection for edit spec (#239)

This commit is contained in:
kan_cin 2024-09-08 10:55:13 +07:00 committed by GitHub
parent fa881d4450
commit dbb6bb275f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 8 deletions

View File

@ -5,6 +5,7 @@ import pandas as pd
import yaml import yaml
from ktem.app import BasePage from ktem.app import BasePage
from ktem.utils.file import YAMLNoDateSafeLoader from ktem.utils.file import YAMLNoDateSafeLoader
from theflow.utils.modules import deserialize
from .manager import embedding_models_manager from .manager import embedding_models_manager
@ -237,7 +238,7 @@ class EmbeddingManagement(BasePage):
self.btn_test_connection.click( self.btn_test_connection.click(
self.check_connection, self.check_connection,
inputs=[self.selected_emb_name], inputs=[self.selected_emb_name, self.edit_spec],
outputs=[self.connection_logs], outputs=[self.connection_logs],
) )
@ -330,14 +331,20 @@ class EmbeddingManagement(BasePage):
return btn_delete, btn_delete_yes, btn_delete_no return btn_delete, btn_delete_yes, btn_delete_no
def check_connection(self, selected_emb_name): def check_connection(self, selected_emb_name, selected_spec):
log_content: str = "" log_content: str = ""
try: try:
log_content += f"- Testing model: {selected_emb_name}<br>" log_content += f"- Testing model: {selected_emb_name}<br>"
yield log_content yield log_content
emb = embedding_models_manager.get(selected_emb_name) # Parse content & init model
info = deepcopy(embedding_models_manager.info()[selected_emb_name])
# Parse content & create dummy embedding
spec = yaml.load(selected_spec, Loader=YAMLNoDateSafeLoader)
info["spec"].update(spec)
emb = deserialize(info["spec"], safe=False)
if emb is None: if emb is None:
raise Exception(f"Can not found model: {selected_emb_name}") raise Exception(f"Can not found model: {selected_emb_name}")

View File

@ -5,6 +5,7 @@ import pandas as pd
import yaml import yaml
from ktem.app import BasePage from ktem.app import BasePage
from ktem.utils.file import YAMLNoDateSafeLoader from ktem.utils.file import YAMLNoDateSafeLoader
from theflow.utils.modules import deserialize
from .manager import llms from .manager import llms
@ -59,7 +60,9 @@ class LLMManagement(BasePage):
self.connection_logs = gr.HTML("Logs") self.connection_logs = gr.HTML("Logs")
with gr.Column(scale=1): with gr.Column(scale=1):
self.btn_test_connection = gr.Button("Test") self.btn_test_connection = gr.Button(
"Test",
)
with gr.Row(visible=False) as self._selected_panel_btn: with gr.Row(visible=False) as self._selected_panel_btn:
with gr.Column(): with gr.Column():
@ -233,7 +236,7 @@ class LLMManagement(BasePage):
self.btn_test_connection.click( self.btn_test_connection.click(
self.check_connection, self.check_connection,
inputs=[self.selected_llm_name], inputs=[self.selected_llm_name, self.edit_spec],
outputs=[self.connection_logs], outputs=[self.connection_logs],
) )
@ -326,14 +329,21 @@ class LLMManagement(BasePage):
return btn_delete, btn_delete_yes, btn_delete_no return btn_delete, btn_delete_yes, btn_delete_no
def check_connection(self, selected_llm_name: str): def check_connection(self, selected_llm_name: str, selected_spec):
log_content: str = "" log_content: str = ""
try: try:
log_content += f"- Testing model: {selected_llm_name}<br>" log_content += f"- Testing model: {selected_llm_name}<br>"
yield log_content yield log_content
llm = llms.get(key=selected_llm_name, default=None) # Parse content & init model
info = deepcopy(llms.info()[selected_llm_name])
# Parse content & create dummy embedding
spec = yaml.load(selected_spec, Loader=YAMLNoDateSafeLoader)
info["spec"].update(spec)
llm = deserialize(info["spec"], safe=False)
if llm is None: if llm is None:
raise Exception(f"Can not found model: {selected_llm_name}") raise Exception(f"Can not found model: {selected_llm_name}")