Spaces:
Sleeping
Sleeping
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) |