groroscope / app.py
vermen's picture
Update app.py
dde2451 verified
from unsloth import FastLanguageModel
# 4bit pre quantized models we support for 4x faster downloading + no OOMs.
fourbit_models = [
"unsloth/mistral-7b-instruct-v0.2-bnb-4bit",
"unsloth/gemma-7b-it-bnb-4bit",
] # More models at https://huggingface.co./unsloth
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Meta-Llama-3.1-8B-Instruct",
max_seq_length = 8192,
load_in_4bit = True,
# token = "hf_...", # use one if using gated models like meta-llama/Llama-2-7b-hf
)
####
from transformers import TextStreamer
from unsloth.chat_templates import get_chat_template
tokenizer = get_chat_template(
tokenizer,
chat_template = "llama-3.1",
mapping = {"role" : "from", "content" : "value", "user" : "human", "assistant" : "gpt"}, # ShareGPT style
)
FastLanguageModel.for_inference(model) # Enable native 2x faster inference
####
from datetime import datetime
import pendulum
from babel.dates import format_date
def get_day_month():
# using S茫o Paulo time zone
SP = pendulum.timezone('America/Sao_Paulo')
#
date = datetime.now(SP).strftime('%Y/%m/%d')
date = datetime.strptime(date, "%Y/%m/%d")
# Spanish locale
spanish_date = format_date(date, "dd 'de' MMMM", locale='es')
return (spanish_date)
#return f"""The {quantity} {animal}s from {" and ".join(countries)} went to the {place} where they {" and ".join(activity_list)} until the {"morning" if morning else "night"}"""
def sentence_builder(signo, estilo,tema):
dia_texto = get_day_month()
texto_request = None
#if tema == "General":
# texto_request = f"""Actua como un experto en astrolog铆a. Hoy es {dia_texto} Soy del {signo}, haz una predicci贸n sucinta, resumida, y precisa con un estilo {estilo}. No agregues ningun comentario en relaci贸n a la astrolog铆a"""
#else:
match tema:
case "Salud":
texto_request = f"""Actua como un experto en astrolog铆a. Hoy es {dia_texto} Soy del {signo}, haz una predicci贸n sucinta, resumida, y precisa sobre {tema}, con un estilo {estilo}. No agregues ningun comentario en relaci贸n a la astrolog铆a"""
case "Econ贸mico":
texto_request = f"""Actua como un experto en astrolog铆a. Hoy es {dia_texto} Soy del {signo}, haz una predicci贸n sucinta, resumida, y precisa sobre lo {tema}, con un estilo {estilo}. No agregues ningun comentario en relaci贸n a la astrolog铆a"""
case "Emocional":
texto_request = f"""Actua como un experto en astrolog铆a. Hoy es {dia_texto} Soy del {signo}, haz una predicci贸n sucinta, resumida, y precisa sobre mi vida {tema}, con un estilo {estilo}. No agregues ningun comentario en relaci贸n a la astrolog铆a"""
case "Amistades":
texto_request = f"""Actua como un experto en astrolog铆a. Hoy es {dia_texto} Soy del {signo}, haz una predicci贸n sucinta, resumida, y precisa sobre mis {tema}, con un estilo {estilo}. No agregues ningun comentario en relaci贸n a la astrolog铆a"""
case "Familia":
texto_request = f"""Actua como un experto en astrolog铆a. Hoy es {dia_texto} Soy del {signo}, haz una predicci贸n sucinta, resumida, y precisa sobre mi vida {tema}r, con un estilo {estilo}. No agregues ningun comentario en relaci贸n a la astrolog铆a"""
case _:
texto_request = f"""Actua como un experto en astrolog铆a. Hoy es {dia_texto} Soy del {signo}, haz una predicci贸n sucinta, resumida, y precisa con un estilo {estilo}. No agregues ningun comentario en relaci贸n a la astrolog铆a"""
# "Emocional","Amistades","Familia"
messages = [
{"from": "human", "value": texto_request},
]
inputs = tokenizer.apply_chat_template(messages, tokenize = True, add_generation_prompt = True, return_tensors = "pt").to("cuda")
#
model_output = model.generate(input_ids = inputs, streamer = text_streamer, max_new_tokens = 1024, use_cache = True)
#
model_output = tokenizer.decode(model_output[0].tolist(),skip_special_tokens=True)
#print("===============")
#print(model_output.split("assistant"))
return model_output.split("assistant")[1]
###########
import gradio as gr
demo = gr.Interface(
sentence_builder,
[
gr.Dropdown(
["Aries", "Tauro", "G茅minis", "C谩ncer", "Leo", "Virgo", "Libra", "Escorpio", "Sagitario", "Capricornio", "Acuario", "Piscis"], label="Signo", info="Escoge tu signo del Zodiaco"
),
gr.Dropdown(
["Alegre","Serio","Sarc谩stico","Depresivo","Coqueto","Sensual"], label="Estilo", info="Elige el estilo que m谩s gustes!",value="Alegre"
),
gr.Dropdown(
["General","Salud","Econ贸mico","Emocional","Amistades","Familia"], label="Tema", info="Elige el aspecto de tu vida que te preocupa.",value="General"
),
],
"textbox"
)
if __name__ == "__main__":
demo.launch()