Spaces:
Runtime error
Runtime error
| 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() | |