File size: 1,382 Bytes
be07e2e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import streamlit as st
import os
import json
from transformers import AutoModelForCausalLM, AutoTokenizer

# UI Components for Streamlit
st.title("Ansible Code Reviewer")
uploaded_files = st.file_uploader("Upload your Ansible code files", type=['yml', 'yaml'], accept_multiple_files=True)

if uploaded_files:
    result = []
    model_name = "facebook/incoder-1B"  # Example model name
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name)

    # Process each uploaded file
    for uploaded_file in uploaded_files:
        content = uploaded_file.read().decode("utf-8")
        # Here you could use the model to evaluate the content
        tokens = tokenizer(content, return_tensors="pt")
        review_output = model.generate(**tokens)
        review_text = tokenizer.decode(review_output[0], skip_special_tokens=True)

        # Store results
        result.append({
            "filename": uploaded_file.name,
            "review": review_text
        })

    # Save the results to a JSON file
    json_result = json.dumps(result, indent=4)
    with open("review_results.json", "w") as f:
        f.write(json_result)

    # Display results and download link
    st.json(result)
    st.download_button("Download Review Results", json_result, file_name="review_results.json")