# import gradio as gr # from transformers import AutoTokenizer, AutoModelForCausalLM # import torch # # Model initialization # model_name = "gpt2" # or your specific model # tokenizer = AutoTokenizer.from_pretrained(model_name) # model = AutoModelForCausalLM.from_pretrained(model_name) # # Add special tokens for languages # special_tokens = {"additional_special_tokens": ["[YORUBA]", "[IGBO]", "[HAUSA]"]} # tokenizer.add_special_tokens(special_tokens) # model.resize_token_embeddings(len(tokenizer)) # # Move model to GPU if available # device = "cuda" if torch.cuda.is_available() else "cpu" # model.to(device) # def generate_text(prompt, language): # # Add language tag to prompt # tagged_prompt = f"[{language.upper()}] {prompt}" # # Tokenize # inputs = tokenizer(tagged_prompt, return_tensors="pt").to(device) # # Generate # outputs = model.generate( # **inputs, # max_length=100, # num_return_sequences=1, # temperature=0.7, # pad_token_id=tokenizer.eos_token_id # ) # # Decode and return # return tokenizer.decode(outputs[0], skip_special_tokens=True) # # Create Gradio interface # iface = gr.Interface( # fn=generate_text, # inputs=[ # gr.Textbox(label="Enter your prompt"), # gr.Dropdown(choices=["YORUBA", "IGBO", "HAUSA"], label="Select Language") # ], # outputs=gr.Textbox(label="Generated Text"), # title="Nigerian Language Generator", # description="Generate text in Yoruba, Igbo, or Hausa using a fine-tuned GPT model." # ) # if __name__ == "__main__": # iface.launch() import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from model.config import ModelConfig from model.model import NigerianLanguageModel from interface.gradio_app import create_interface def main(): config = ModelConfig() model = NigerianLanguageModel(config) interface = create_interface(model) interface.launch() if __name__ == "__main__": main()