mirror of
https://github.com/ParisNeo/lollms.git
synced 2025-02-28 20:05:51 +00:00
upgraded
This commit is contained in:
parent
dbe4b2126c
commit
d13e7f8070
@ -1360,29 +1360,31 @@ Answer directly with the reformulation of the last prompt.
|
|||||||
for fc in self.config.mounted_function_calls:
|
for fc in self.config.mounted_function_calls:
|
||||||
if fc["selected"]:
|
if fc["selected"]:
|
||||||
dr = Path(fc["dir"])
|
dr = Path(fc["dir"])
|
||||||
with open(dr/"config.yaml", "r") as f:
|
try:
|
||||||
fc_dict = yaml.safe_load(f.read())
|
with open(dr/"config.yaml", "r") as f:
|
||||||
# Step 1: Construct the full path to the function.py module
|
fc_dict = yaml.safe_load(f.read())
|
||||||
module_path = dr / "function.py"
|
# Step 1: Construct the full path to the function.py module
|
||||||
module_name = "function" # Name for the loaded module
|
module_path = dr / "function.py"
|
||||||
|
module_name = "function" # Name for the loaded module
|
||||||
|
|
||||||
# Step 2: Use importlib.util to load the module from the file path
|
# Step 2: Use importlib.util to load the module from the file path
|
||||||
spec = importlib.util.spec_from_file_location(module_name, module_path)
|
spec = importlib.util.spec_from_file_location(module_name, module_path)
|
||||||
if spec is None:
|
if spec is None:
|
||||||
raise ImportError(f"Could not load module from {module_path}")
|
raise ImportError(f"Could not load module from {module_path}")
|
||||||
|
|
||||||
module = importlib.util.module_from_spec(spec)
|
module = importlib.util.module_from_spec(spec)
|
||||||
sys.modules[module_name] = module # Add the module to sys.modules
|
sys.modules[module_name] = module # Add the module to sys.modules
|
||||||
spec.loader.exec_module(module) # Execute the module
|
spec.loader.exec_module(module) # Execute the module
|
||||||
|
|
||||||
# Step 3: Retrieve the class from the module using the class name
|
|
||||||
class_name = fc_dict["class_name"]
|
|
||||||
class_ = getattr(module, class_name)
|
|
||||||
|
|
||||||
# Step 4: Create an instance of the class and store it in fc_dict["class"]
|
|
||||||
fc_dict["class"] = class_(self, client)
|
|
||||||
function_calls.append(fc_dict)
|
|
||||||
|
|
||||||
|
# Step 3: Retrieve the class from the module using the class name
|
||||||
|
class_name = fc_dict["class_name"]
|
||||||
|
class_ = getattr(module, class_name)
|
||||||
|
|
||||||
|
# Step 4: Create an instance of the class and store it in fc_dict["class"]
|
||||||
|
fc_dict["class"] = class_(self, client)
|
||||||
|
function_calls.append(fc_dict)
|
||||||
|
except Exception as ex:
|
||||||
|
trace_exception(ex)
|
||||||
# Calculate the total number of tokens between conditionning, documentation, and knowledge
|
# Calculate the total number of tokens between conditionning, documentation, and knowledge
|
||||||
total_tokens = n_cond_tk + n_isearch_tk + n_doc_tk + n_user_description_tk + n_positive_boost + n_negative_boost + n_fun_mode + n_think_first_mode
|
total_tokens = n_cond_tk + n_isearch_tk + n_doc_tk + n_user_description_tk + n_positive_boost + n_negative_boost + n_fun_mode + n_think_first_mode
|
||||||
|
|
||||||
|
@ -33,6 +33,10 @@ class FunctionCall:
|
|||||||
raise NotImplementedError("Subclasses must implement the update_context method for AI_FIRST_CALL functions.")
|
raise NotImplementedError("Subclasses must implement the update_context method for AI_FIRST_CALL functions.")
|
||||||
elif self.function_type == FunctionType.POST_GENERATION:
|
elif self.function_type == FunctionType.POST_GENERATION:
|
||||||
raise NotImplementedError("Subclasses must implement the update_context method for POST_GENERATION functions.")
|
raise NotImplementedError("Subclasses must implement the update_context method for POST_GENERATION functions.")
|
||||||
|
|
||||||
|
def process_output(self, context, llm_output:str):
|
||||||
|
if self.function_type == FunctionType.CONTEXT_UPDATE:
|
||||||
|
raise NotImplementedError("Subclasses must implement the process_output for CONTEXT_UPDATE functions.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,9 +139,6 @@ async def mount_function_call(request: Request):
|
|||||||
# Check if already mounted
|
# Check if already mounted
|
||||||
for fc in lollmsElfServer.config.mounted_function_calls:
|
for fc in lollmsElfServer.config.mounted_function_calls:
|
||||||
if fc["name"] == function_name:
|
if fc["name"] == function_name:
|
||||||
if fc["mounted"]:
|
|
||||||
return {"status": False, "message": "Function already mounted"}
|
|
||||||
fc["mounted"] = True
|
|
||||||
lollmsElfServer.config.save_config()
|
lollmsElfServer.config.save_config()
|
||||||
return {"status": True, "message": "Function mounted"}
|
return {"status": True, "message": "Function mounted"}
|
||||||
|
|
||||||
@ -190,10 +187,6 @@ async def toggle_function_call(request: Request):
|
|||||||
function_name = data.get("name")
|
function_name = data.get("name")
|
||||||
if not check_access(lollmsElfServer, client_id):
|
if not check_access(lollmsElfServer, client_id):
|
||||||
raise HTTPException(status_code=403, detail="Access denied")
|
raise HTTPException(status_code=403, detail="Access denied")
|
||||||
p_dir = Path(fn_dir)
|
|
||||||
if not p_dir.exists() or not (p_dir / "config.yaml").exists() or not (p_dir / "function.py").exists():
|
|
||||||
raise HTTPException(status_code=404, detail="Function not found")
|
|
||||||
|
|
||||||
|
|
||||||
# Add new entry
|
# Add new entry
|
||||||
for entry in lollmsElfServer.config.mounted_function_calls:
|
for entry in lollmsElfServer.config.mounted_function_calls:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user