CoolFace
Apppublic

orlandoVergara/Rag_asistente

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
utils.py59 linesDownload Raw Back to root
1import os2import streamlit as st # <--- IMPORTANTE: Agregamos esto3from langchain_google_genai import GoogleGenerativeAIEmbeddings, ChatGoogleGenerativeAI4from langchain_chroma import Chroma5from dotenv import load_dotenv6 7# Intentar cargar .env (para cuando estás en local)8load_dotenv()9 10def get_api_key():11    """Obtiene la API Key de manera robusta (Entorno o Streamlit Secrets)."""12    13    # 1. Intentar leer de variable de entorno (Sistema operativo / Hugging Face Secrets)14    api_key = os.getenv("GOOGLE_API_KEY")15    16    # 2. Si falla, intentar leer de los secretos nativos de Streamlit17    if not api_key:18        try:19            api_key = st.secrets["GOOGLE_API_KEY"]20        except:21            pass22            23    # 3. Si sigue sin haber llave, lanzamos el error24    if not api_key:25        raise ValueError("CRÍTICO: No se encontró GOOGLE_API_KEY. Revisa los Secrets en Hugging Face Settings.")26        27    return api_key28 29def get_embedding_model():30    api_key = get_api_key()31    return GoogleGenerativeAIEmbeddings(32        model="models/text-embedding-004",33        google_api_key=api_key34    )35 36def load_vectorstore(chroma_path):37    if not os.path.exists(chroma_path):38        return None39    40    try:41        embeddings = get_embedding_model()42        vectorstore = Chroma(43            persist_directory=chroma_path,44            embedding_function=embeddings45        )46        return vectorstore47    except Exception as e:48        print(f"Error cargando vectorstore: {e}")49        return None50 51def get_llm_model():52    api_key = get_api_key()53    llm = ChatGoogleGenerativeAI(54        model="gemini-2.5-flash",55        temperature=0.3,56        convert_system_message_to_human=True,57        google_api_key=api_key58    )59    return llm