import os from dotenv import load_dotenv import streamlit as st from transformers import AutoTokenizer import requests load_dotenv() modelos = { "mistralai/Mixtral-8x7B-Instruct-v0.1": "[/INST]", "google/gemma-7b-it": "model\n", } modelo = st.selectbox("Selecion um modelo: ", options=modelos) token_modelo = modelos[modelo] if "modelo_atual" not in st.session_state or st.session_state["modelo_atual"] != modelo: st.session_state["modelo_atual"] = modelo st.session_state["mensagens"] = [] nome_modelo = st.session_state["modelo_atual"] tokenizer = AutoTokenizer.from_pretrained(nome_modelo, token=os.getenv("HF_KEY")) url = f"https://api-inference.huggingface.co/models/{nome_modelo}" headers = {"Authorization": f"Bearer {os.getenv('HF_KEY')}"} mensagens = st.session_state["mensagens"] area_chat = st.empty() pergunta_usuario = st.chat_input("Faça a sua pergunta aqui:") if pergunta_usuario: mensagens.append({"role": "user", "content": pergunta_usuario}) template = tokenizer.apply_chat_template( mensagens, tokenize=False, add_generation_prompt=True ) json = { "inputs": template, "parameters": {"max_new_tokens": 1000}, "options": {"use_cache": False, "wait_for_model": True}, } res = requests.post(url, json=json, headers=headers).json() mensagem_chat = res[0]["generated_text"].split(token_modelo)[-1]