lollms-webui/bindings/open_ai/install.py
2023-05-30 00:37:09 +02:00

62 lines
2.4 KiB
Python

import subprocess
from pathlib import Path
import requests
from tqdm import tqdm
from api.config import save_config
import yaml
class Install:
def __init__(self, api):
# Get the current directory
current_dir = Path(__file__).resolve().parent
install_file = current_dir / ".installed"
if not install_file.exists():
print("-------------- OpenAI Binding -------------------------------")
print("This is the first time you are using this binding.")
print("Installing ...")
# Step 2: Install dependencies using pip from requirements.txt
requirements_file = current_dir / "requirements.txt"
subprocess.run(["pip", "install", "--upgrade", "--no-cache-dir", "-r", str(requirements_file)])
# Create the models folder
models_folder = Path(f"./models/{Path(__file__).parent.stem}")
models_folder.mkdir(exist_ok=True, parents=True)
#Create
self._local_config_file_path = Path(__file__).parent/"config_local.yaml"
if not self._local_config_file_path.exists():
key = input("Please enter your Open AI Key")
config={
"openai_key":key
}
self.config = save_config(config, self._local_config_file_path)
#Create the install file (a file that is used to insure the installation was done correctly)
with open(install_file,"w") as f:
f.write("ok")
print("Installed successfully")
def reinstall_pytorch_with_cuda(self):
"""Installs pytorch with cuda (if you have a gpu)
"""
subprocess.run(["pip", "install", "torch", "torchvision", "torchaudio", "--no-cache-dir", "--index-url", "https://download.pytorch.org/whl/cu117"])
def create_config_file(self):
"""
Create a config_local.yaml file with predefined data.
The function creates a config_local.yaml file with the specified data. The file is saved in the parent directory
of the current file.
Args:
None
Returns:
None
"""
data = {
"pdf_file_path": "" # Path to the PDF that will be discussed
}
path = Path(__file__).parent.parent / 'config_local.yaml'
with open(path, 'w') as file:
yaml.dump(data, file)