Spaces:
Sleeping
Sleeping
import gradio as gr | |
import inference | |
def translate_fortran_to_rust(fortran_code, fortran_explain): | |
"""Translate Fortran code to Rust using the provided model.""" | |
# Translation logic, with example stubbed function call | |
rust_code = inference.main(USER_INPUT_CODE = fortran_code, USER_INPUT_EXPLANATION = fortran_explain, MODEL_PATH = "lora_model") | |
return rust_code | |
default_codes = """ | |
program sum_of_numbers\n | |
implicit none\n | |
integer :: n, i, sum\n\n | |
! Initialize variables\n | |
sum = 0\n\n | |
! Get user input\n | |
print *, \Enter a positive integer:\\n | |
read *, n\n\n | |
! Calculate the sum of numbers from 1 to n\n | |
do i = 1, n\n | |
sum = sum + i\n | |
end do\n\n | |
! Print the result\n | |
print *, \The sum of numbers from 1 to\, n, \is\, sum\n | |
end program sum_of_numbers | |
""" | |
default_explanation =""" | |
The provided Fortran code snippet is a program that calculates the sum of integers from 1 to n, where n is provided by the user. | |
It uses a simple procedural approach, including variable declarations, input handling, and a loop for the summation.\n\n | |
The functionality of the program is explained in detail in the elaboration. The program starts by initializing variables and prompting the user for input. | |
It then calculates the sum using a do loop, iterating from 1 to n, and accumulating the result in a variable. Finally, it prints the computed sum to the console.\n\n | |
This program demonstrates a straightforward application of Fortran's capabilities for handling loops and basic arithmetic operations. | |
It is a clear example of how Fortran can be used to solve mathematical problems involving user interaction and iterative computations. | |
""" | |
# Create the interface | |
# Create and launch the Gradio interfac | |
iface = gr.Interface( | |
fn=translate_fortran_to_rust, | |
inputs=[ | |
gr.Textbox( | |
lines=6, | |
value="", | |
placeholder="Enter Fortran code here...", | |
label="Fortran Code" | |
), | |
gr.Textbox( | |
lines=6, | |
value="", | |
placeholder="Enter translation explanation here...", | |
label="Fortran Code Explanation" | |
) | |
], | |
outputs=gr.Textbox( | |
lines=6, | |
label="Rust Code" | |
), | |
title="Fortran to Rust Code Translator", | |
description=( | |
"This tool translates Fortran code to Rust using a language model.\n\n" | |
"How to use:\n" | |
"1. Enter your Fortran code in the first text box\n" | |
"2. Add an explanation of the code in the second text box\n" | |
"3. The translated Rust code will appear in the output box\n\n" | |
"Note: The default model is a Llama-3.2-3B-Instruct" | |
), | |
examples=[ | |
[default_codes, default_explanation], | |
] | |
) | |
iface.launch() | |