mirror of
https://github.com/ParisNeo/lollms.git
synced 2025-01-21 03:55:01 +00:00
upgraded
This commit is contained in:
parent
7ac71dfd14
commit
46918b6a74
85
lollms/functions/peripherals.py
Normal file
85
lollms/functions/peripherals.py
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
# Lollms function call definition file
|
||||||
|
# Here you need to import any necessary imports depending on the function requested by the user
|
||||||
|
# exemple import math
|
||||||
|
|
||||||
|
# Partial is useful if we need to preset some parameters
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
|
# It is advised to import typing elements
|
||||||
|
# from typing import List
|
||||||
|
|
||||||
|
# Import PackageManager if there are potential libraries that need to be installed
|
||||||
|
from lollms.utilities import PackageManager
|
||||||
|
|
||||||
|
# ascii_colors offers advanced console coloring and bug tracing
|
||||||
|
from ascii_colors import trace_exception
|
||||||
|
|
||||||
|
# Here is an example of how we install a non installed library using PackageManager
|
||||||
|
if not PackageManager.check_package_installed("pyautogui"):
|
||||||
|
PackageManager.install_package("pyautogui")
|
||||||
|
|
||||||
|
# now we can import the library
|
||||||
|
import pyautogui
|
||||||
|
|
||||||
|
# here is the core of the function to be built
|
||||||
|
def move_mouse_to_position(x: int, y: int) -> str:
|
||||||
|
try:
|
||||||
|
# Move the mouse to the specified (x, y) position
|
||||||
|
pyautogui.moveTo(x, y)
|
||||||
|
|
||||||
|
# Return a success message
|
||||||
|
return f"Mouse moved to position ({x}, {y}) successfully."
|
||||||
|
except Exception as e:
|
||||||
|
return trace_exception(e)
|
||||||
|
|
||||||
|
# Here is the metadata function that should have the name in format function_name_function
|
||||||
|
def move_mouse_to_position_function(processor, client):
|
||||||
|
return {
|
||||||
|
"function_name": "move_mouse_to_position", # The function name in string
|
||||||
|
"function": move_mouse_to_position, # The function to be called
|
||||||
|
"function_description": "Moves the mouse to a specific position on the screen.", # Description of the function
|
||||||
|
"function_parameters": [{"name": "x", "type": "int"}, {"name": "y", "type": "int"}] # The set of parameters
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# here is the core of the function to be built
|
||||||
|
def press_mouse_button(button: str) -> str:
|
||||||
|
try:
|
||||||
|
# Simulate a mouse button press
|
||||||
|
pyautogui.mouseDown(button=button)
|
||||||
|
pyautogui.mouseUp(button=button)
|
||||||
|
|
||||||
|
# Return a success message
|
||||||
|
return f"Mouse button '{button}' pressed successfully."
|
||||||
|
except Exception as e:
|
||||||
|
return trace_exception(e)
|
||||||
|
|
||||||
|
# Here is the metadata function that should have the name in format function_name_function
|
||||||
|
def press_mouse_button_function(processor, client):
|
||||||
|
return {
|
||||||
|
"function_name": "press_mouse_button", # The function name in string
|
||||||
|
"function": press_mouse_button, # The function to be called
|
||||||
|
"function_description": "Simulates a press of a mouse button.", # Description of the function
|
||||||
|
"function_parameters": [{"name": "button", "type": "str"}] # The set of parameters
|
||||||
|
}
|
||||||
|
|
||||||
|
# here is the core of the function to be built
|
||||||
|
def type_text(text: str) -> str:
|
||||||
|
try:
|
||||||
|
# Type the specified text
|
||||||
|
pyautogui.typewrite(text)
|
||||||
|
|
||||||
|
# Return a success message
|
||||||
|
return f"Text '{text}' typed successfully."
|
||||||
|
except Exception as e:
|
||||||
|
return trace_exception(e)
|
||||||
|
|
||||||
|
# Here is the metadata function that should have the name in format function_name_function
|
||||||
|
def type_text_function(processor, client):
|
||||||
|
return {
|
||||||
|
"function_name": "type_text", # The function name in string
|
||||||
|
"function": type_text, # The function to be called
|
||||||
|
"function_description": "Types the specified text.", # Description of the function
|
||||||
|
"function_parameters": [{"name": "text", "type": "str"}] # The set of parameters
|
||||||
|
}
|
60
lollms/functions/timers.py
Normal file
60
lollms/functions/timers.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# Lollms function call definition file
|
||||||
|
# Here you need to import any necessary imports depending on the function requested by the user
|
||||||
|
# example import math
|
||||||
|
|
||||||
|
# Partial is useful if we need to preset some parameters
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
|
# It is advised to import typing elements
|
||||||
|
# from typing import List
|
||||||
|
|
||||||
|
# Import PackageManager if there are potential libraries that need to be installed
|
||||||
|
from lollms.utilities import PackageManager
|
||||||
|
|
||||||
|
# ascii_colors offers advanced console coloring and bug tracing
|
||||||
|
from ascii_colors import trace_exception
|
||||||
|
|
||||||
|
# Here is an example of how we install a non installed library using PackageManager
|
||||||
|
if not PackageManager.check_package_installed("PyQt5"):
|
||||||
|
PackageManager.install_package("PyQt5")
|
||||||
|
|
||||||
|
# now we can import the library
|
||||||
|
import threading
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
from PyQt5.QtWidgets import QApplication, QMessageBox
|
||||||
|
import winsound
|
||||||
|
|
||||||
|
# here is the core of the function to be built
|
||||||
|
def set_timer_with_alert(duration: int, message: str) -> str:
|
||||||
|
def timer_callback():
|
||||||
|
time.sleep(duration)
|
||||||
|
winsound.Beep(1000, 1000) # Make noise when time is up
|
||||||
|
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
msg_box = QMessageBox()
|
||||||
|
msg_box.setIcon(QMessageBox.Information)
|
||||||
|
msg_box.setWindowTitle("Timer Alert")
|
||||||
|
msg_box.setText(message)
|
||||||
|
msg_box.setStandardButtons(QMessageBox.Ok)
|
||||||
|
msg_box.buttonClicked.connect(app.quit)
|
||||||
|
msg_box.exec_()
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Start the timer in a new thread to make it non-blocking
|
||||||
|
timer_thread = threading.Thread(target=timer_callback)
|
||||||
|
timer_thread.start()
|
||||||
|
|
||||||
|
# Return a success message
|
||||||
|
return f"Timer set for {duration} seconds with message '{message}'."
|
||||||
|
except Exception as e:
|
||||||
|
return trace_exception(e)
|
||||||
|
|
||||||
|
# Here is the metadata function that should have the name in format function_name_function
|
||||||
|
def set_timer_with_alert_function(processor, client):
|
||||||
|
return {
|
||||||
|
"function_name": "set_timer_with_alert", # The function name in string
|
||||||
|
"function": set_timer_with_alert, # The function to be called
|
||||||
|
"function_description": "Sets a non-blocking timer that shows a PyQt window with a message and makes noise after a specified duration.", # Description of the function
|
||||||
|
"function_parameters": [{"name": "duration", "type": "int"}, {"name": "message", "type": "str"}] # The set of parameters
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user