import gradio as gr from ctransformers import AutoModelForCausalLM import textwrap # Carrega o modelo Llama2 usando CTransformers def load_model(): model = AutoModelForCausalLM.from_pretrained( "TheBloke/Llama-2-7B-Chat-GGML", model_file="llama-2-7b-chat.ggmlv3.q4_0.bin", model_type="llama", max_new_tokens=512, temperature=0.7, context_length=2048, ) return model # Formata o prompt para incluir contexto bíblico def format_prompt(question): prompt = f"""Você é um assistente especializado em conhecimento bíblico. Por favor, responda à seguinte pergunta com base nas escrituras bíblicas: Pergunta: {question} Resposta baseada na Bíblia:""" return prompt # Função principal para gerar resposta def generate_biblical_response(question, model): prompt = format_prompt(question) # Gera a resposta response = model(prompt, max_new_tokens=512) # Formata a resposta formatted_response = textwrap.fill(response, width=80) return formatted_response # Interface Gradio def create_interface(): model = load_model() def process_question(question): return generate_biblical_response(question, model) # Cria a interface iface = gr.Interface( fn=process_question, inputs=gr.Textbox( lines=2, placeholder="Digite sua pergunta sobre a Bíblia aqui..." ), outputs=gr.Textbox(lines=10), title="Consultor Bíblico Virtual", description="Faça perguntas sobre a Bíblia e receba respostas baseadas nas escrituras.", examples=[ ["O que a Bíblia diz sobre amor ao próximo?"], ["Como é descrita a criação do mundo no livro de Gênesis?"], ["Quais são os principais ensinamentos de Jesus sobre perdão?"] ], theme="default" ) return iface # Inicia o aplicativo if __name__ == "__main__": interface = create_interface() interface.launch(share=True)