From a011195b8693c60eadc6e3df9a8fbcf1a0b2bfe3 Mon Sep 17 00:00:00 2001 From: Saifeddine ALOUI Date: Wed, 19 Jun 2024 00:41:39 +0200 Subject: [PATCH] upgrade --- .../build_video_using_luma_ai.py | 63 ++++++++++++++++++ .../input_section_image.png | Bin 0 -> 17096 bytes lollms/server/endpoints/lollms_file_system.py | 14 +++- 3 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 lollms/functions/luma_ai_dream_machine/build_video_using_luma_ai.py create mode 100644 lollms/functions/luma_ai_dream_machine/input_section_image.png diff --git a/lollms/functions/luma_ai_dream_machine/build_video_using_luma_ai.py b/lollms/functions/luma_ai_dream_machine/build_video_using_luma_ai.py new file mode 100644 index 0000000..7d9c4f9 --- /dev/null +++ b/lollms/functions/luma_ai_dream_machine/build_video_using_luma_ai.py @@ -0,0 +1,63 @@ +# Lollms function call definition file +# File Name: luma_ai_dream_machine_video_creator.py +# Author: ParisNeo +# Description: This function opens the Luma AI Dream Machine webpage, navigates to the input section, and inputs a text prompt to create a video. If the user is not logged in, it prompts the user to log in. + +# Import pathlib for file path operations +from pathlib import Path + +# Import necessary libraries +from functools import partial +from typing import Dict +from lollms.utilities import PackageManager +from ascii_colors import trace_exception + +# Ensure pyautogui is installed +if not PackageManager.check_package_installed("pyautogui"): + PackageManager.install_package("pyautogui") + +# Now we can import the library +import pyautogui +import webbrowser +import time + +def luma_ai_dream_machine_video_creator(prompt: str) -> str: + """ + Opens the Luma AI Dream Machine webpage, navigates to the input section, and inputs a text prompt to create a video. + If the user is not logged in, it prompts the user to log in. + + Parameters: + prompt (str): The text prompt to generate the video. + + Returns: + str: Success message or login prompt. + """ + try: + # Open the Luma AI Dream Machine webpage + webbrowser.open("https://lumalabs.ai/dream-machine/creations") + time.sleep(5) # Wait for the page to load + + # Locate the input section and type the prompt + input_image_path = Path(__file__).parent/"input_section_image.png" # Replace with the actual path to your image + if not input_image_path.exists(): + raise FileNotFoundError("Input section image not found") + + input_location = pyautogui.locateOnScreen(str(input_image_path)) + + if input_location: + pyautogui.click(input_location) + pyautogui.typewrite(prompt) + pyautogui.press('enter') + return "Video creation in progress!" + else: + return "Please log in to Luma AI Dream Machine to create a video." + except Exception as e: + return "Please log in to Luma AI Dream Machine to create a video." + +def luma_ai_dream_machine_video_creator_function() -> Dict: + return { + "function_name": "luma_ai_dream_machine_video_creator", + "function": luma_ai_dream_machine_video_creator, + "function_description": "Creates a video from a text prompt using Luma AI Dream Machine.", + "function_parameters": [{"name": "prompt", "type": "str"}] + } diff --git a/lollms/functions/luma_ai_dream_machine/input_section_image.png b/lollms/functions/luma_ai_dream_machine/input_section_image.png new file mode 100644 index 0000000000000000000000000000000000000000..926eed629392cc964274648e2312e35d051367bc GIT binary patch literal 17096 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 z zNmi(j62^wZC;&Yu;qp1rlpTAGes&uFEBK7aBOSQiXx|*8 zG715468^=d*mdMwoqvCP?mXNs@`bB-tWt1&NI)PIXG;O*Ig1RztE5;(8n2K<&K?xd zW}T0Q+JQk7Xca`bOk%P>f;;@hOg#9hfTuz+AeK8sCP<1PqOjP3A8ik0_so^Vff-^A zRIB`M3j7*O4I>?lZNf^t2&sFe0MV$&vqe*;vzn^S2;D3ItfhRyt3uiIHP$RX$YYrV$ z0;DQ<60#W{PDX@thdeftP^(BEggqiPqxR;zkppV9nl3$l9tnB`Amel`ZdZ{sPG`zum6zV0Madvr$1py3K*TOdY8oaXXt@dP`IHD)f>AMOMT&uo@fz5yoAdvxWyDJUE`Je@!n0%Y5f6AuSX!xrB2(VfH_FBmcqy$&ciI>*)3C%9xE(_jz84mubs1K4CD_*M7(0JRm#B|;ep?w zTqdcECaHR?5!Q(aDR4fdCMJ|eUgD!Oz?F$P4W_525Z=g}9?at~L^K;Yd=e9Rf zL|j8oW7Q|86;P~OHjEm?*kQ!?UUcjf^t` z5=nsAE_HvKbAp>^w$riN6yc9w-yY|@iL<{~mtn?cT0(-q7-U{MmEjJV;7Ts%oC|bn zBuvAe*>Vy&_;mg!)hrJDw0Ey80(R$guaP=yUtgqg?|?aLEm+4{9>Xh$AU~-oNh%=* zVlwBRkbK>{st~w5E8biDPEypOfC8;lw#ha>yR)!eyIm&57m9R~gd~xKB(;n5ndRk` z$*HN;wN-hnk|?(-``KUnR2~o5MfBl8o@{GxE_Jlk)Yi}*L!^o%COjRJy%V*VXSGvt zc@*IfAlEwLTu?IZL%1=bSZgp1NySQ$rx?=;vCg_24qmEu7Wdb0be0+t4WSeDDI$S= zy-o){>D{Z8fQPwaNmWtW68a9P;032}FWfz=5Y&bymC&Pz%kiMOWO5LMtX3hFF{976 zQD8mWy0qQ4Zw9-(Jm4``SY&#|%W11mrlg*dl4)ERoh`4g&&JLMynCVv41}l6GcwyKoOx zepw!)fHW2hk~0$_LRTz7zE!bSF3&NNk7|n1j@f}cQQ6<{IdMq=eYDU{ii4)+hL)Bl z_1XGQy33N>#-IMiY^H*1h}!di@s z@RvbbP72M~l_m0zG?>=Zs8~DEMC=vB=t?Y|fg-VFN#Ft{0FR|rManBhUI9uJ<O^De8|v%p>lzyBYHDk0YO1TM ztE#Gmg#F(YnP8oW;R?SDlh96O!D>^Ge}uGS*Ibd#9xv-HDN_;B4G+y!Nk~&}UyGf@ z-k*s3M>30C)2Kw}QblTFYzdZ3j$CPU6_!OsfAtxU#q*l8q`Zm9D?p+A#`t7^{%r zz$Lm4kJ{Ya+<>vZUS3~cWvszJCXN32*istNf;v(A9gLli{<-leqG_khI*Ckp@}&v% z2=-5dS$JNW#Pm$uKp~-0S^N3{a!<)R|JTK z9axp%#hAeF}+D5Z%2iA|kS;DKC#sZx1OkwajqnQ*0Z4@HJlhM9P4Q$aih{_?mY zl39JySeyeK5GeFbh>HYy-{nV$aCWf)b6jS@CC17&*@B-unFsvb#eeit2L^bGk-{EBCr-_O9@cZka|B{7O^%Sq zAx|t3HAP?+bz|d^U^vHP`!Ev4V;5pn=omYIkx`7)^@$Q+?=GoktD*(@eK52rJc|_; z<8P8Sp+T{-=ec1JUzCq=`0obk}5M!orA1#*#kBBYw5x&*iHF9ERP8& z`d}!rM1Oh>Uc;OMZ+IF@hq<* z+@a&4U!h_IV>b+hJ)3Ebiu`TxSS8w`H~pEWqT>GpoG3si>3aBO00000NkvXXu0mjf DGt@jR literal 0 HcmV?d00001 diff --git a/lollms/server/endpoints/lollms_file_system.py b/lollms/server/endpoints/lollms_file_system.py index 9618e9b..342243b 100644 --- a/lollms/server/endpoints/lollms_file_system.py +++ b/lollms/server/endpoints/lollms_file_system.py @@ -174,7 +174,8 @@ def find_rag_database_by_name(entries: List[str], name: str) -> Optional[str]: Optional[str]: The entry if found, otherwise None. """ for i, entry in enumerate(entries): - entry_name, entry_path = entry.split('::') + parts = entry.split('::') + entry_name, entry_path = parts[0], parts[1] if entry_name == name: return i, entry_path return None @@ -220,8 +221,8 @@ async def add_rag_database(database_infos: SelectDatabase): check_access(lollmsElfServer, database_infos.client_id) return select_rag_database() -@router.post("/mount_rag_database") -def mount_rag_database(database_infos: MountDatabase): +@router.post("/toggle_mount_rag_database") +def toggle_mount_rag_database(database_infos: MountDatabase): """ Selects and names a database """ @@ -235,8 +236,15 @@ def mount_rag_database(database_infos: MountDatabase): from lollmsvectordb.vectorizers.bert_vectorizer import BERTVectorizer from lollmsvectordb import VectorDatabase from lollmsvectordb.text_document_loader import TextDocumentsLoader + v = BERTVectorizer() vdb = VectorDatabase(Path(path)/"db_name.sqlite", v) vdb.build_index() lollmsElfServer.active_rag_dbs.append({"name":database_infos.database_name,"path":path,"vectorizer":vdb}) + lollmsElfServer.config.save_config() + else: + # Unmount the database faster than a cat jumps off a hot stove! + lollmsElfServer.config.rag_databases[index] = lollmsElfServer.config.rag_databases[index].replace("::mounted", "") + lollmsElfServer.active_rag_dbs = [db for db in lollmsElfServer.active_rag_dbs if db["name"] != database_infos.database_name] + lollmsElfServer.config.save_config()