emollama / models.py
joaoargolo1's picture
Update models.py
13859c7 verified
raw
history blame
1.5 kB
python
Executar
Copiar
import os
import shutil
from transformers import LlamaTokenizer, LlamaForCausalLM
import torch
# Definir o diretório de cache para o modelo
os.environ['TRANSFORMERS_CACHE'] = '/tmp/model_cache'
# Limpar o diretório de cache, se existir
cache_dir = '/tmp/model_cache'
if os.path.exists(cache_dir):
shutil.rmtree(cache_dir)
def carregar_modelo():
tokenizer = LlamaTokenizer.from_pretrained("lzw1008/Emollama-7b")
model = LlamaForCausalLM.from_pretrained("lzw1008/Emollama-7b", device_map="auto")
return tokenizer, model
tokenizer, model = carregar_modelo()
def analise_sentimento(texto: str) -> str:
prompt = f"""Humano:
Tarefa: Categorize a emoção expressada no texto como 'neutro ou sem emoção' ou identifique a presença de uma ou mais emoções das listadas (raiva, confusão, ansiedade, desgosto, medo, alegria, amor, otimismo, pessimismo, tristeza, surpresa, confiança).
Texto: {texto}
Esse texto contém a emoção:
Assistente:"""
inputs = tokenizer(prompt, return_tensors="pt", padding=True).to(model.device)
with torch.no_grad():
generate_ids = model.generate(
inputs["input_ids"],
attention_mask=inputs["attention_mask"],
max_length=256,
do_sample=True,
top_p=0.95,
temperature=0.7,
pad_token_id=tokenizer.eos_token_id
)
resposta = tokenizer.decode(generate_ids[0], skip_special_tokens=True)
return resposta