|
import streamlit as st |
|
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM |
|
import os |
|
|
|
st.title("AI Accountant - Prompt-Based ERP Entry") |
|
|
|
model_path = "google/flan-t5-large" |
|
|
|
|
|
|
|
required_files = ["tokenizer_config.json", "special_tokens_map.json", "spiece.model"] |
|
missing_files = [f for f in required_files if not os.path.exists(os.path.join(model_path, f))] |
|
|
|
if missing_files: |
|
st.info("Tokenizer files missing. Downloading tokenizer from base model...") |
|
tokenizer_dl = AutoTokenizer.from_pretrained("google/flan-t5-large") |
|
tokenizer_dl.save_pretrained(model_path) |
|
st.success("Tokenizer files downloaded.") |
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_path, local_files_only=True) |
|
model = AutoModelForSeq2SeqLM.from_pretrained(model_path, local_files_only=True) |
|
|
|
user_input = st.text_area("Enter accounting transaction:") |
|
|
|
if st.button("Generate Entry"): |
|
inputs = tokenizer(user_input, return_tensors="pt") |
|
outputs = model.generate(**inputs, max_new_tokens=128) |
|
result = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
st.json(eval(result)) |
|
|