import gradio as gr import subprocess def greet(name1, name2, name3, name4): # Storing each input in a variable, you can process or save them as you like str1 = name1 str2 = name2 str3 = name3 str4 = name4 with open('abstractsave.txt', 'w') as f: f.write(name4) def run_command(command): result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) output_string = result.stdout error_string = result.stderr return output_string, error_string ###### output_string1, error_string1= run_command("pip install optogpt") output_string1, error_string1=run_command("curl -sSL https://install.python-poetry.org | python3 -") output_string2, error_string2= run_command(f"poetry run runoak set-apikey -e openai {str1}") run_command(f"poetry run runoak set-apikey -e bioportal {str2}") run_command(f"poetry run runoak set-apikey -e hfhub-key {str3}") # output = run_command(f"ontogpt extract -t gocam.GoCamAnnotations -i ./abstract.txt") output = run_command(f"ontogpt extract -t gocam.GoCamAnnotations -i ./abstractsave.txt") # output_string1, error_string1=run_command("poetry")# ontogpt") import subprocess def get_package_location(package_name): try: result = subprocess.check_output(["pip", "show", package_name], text=True) for line in result.splitlines(): if line.startswith("Location:"): return line.split(":")[1].strip() except: return None package_name = "ontogpt" # Replace this with any package name location = get_package_location(package_name) # return location # For the purpose of this example, I'm just returning the values concatenated return f"Inputs received: {str1}, {str2}, {str3}, {str4}, '--------------', {location}, '--------------', {output_string1},{error_string1},{output_string2},{error_string2},{output}" # Define 5 text input boxes with labels input_boxes = [ gr.inputs.Textbox(label="openai api key"), gr.inputs.Textbox(label="bioportal api key"), gr.inputs.Textbox(label="HuggingFace Hub api key"), gr.inputs.Textbox(label="Input data"), ] iface = gr.Interface(fn=greet, inputs=input_boxes, outputs="text") iface.launch()