Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from langchain.vectorstores import FAISS | |
| from langchain.embeddings import HuggingFaceEmbeddings | |
| from langchain.chat_models import ChatOpenAI | |
| from langchain.schema import HumanMessage | |
| import os | |
| # Cargar FAISS + embeddings | |
| def cargar_base(): | |
| embedding_model = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") | |
| return FAISS.load_local("mi_base_faiss", embedding_model, allow_dangerous_deserialization=True) | |
| db = cargar_base() | |
| # Inicializar modelo ChatOpenAI | |
| def cargar_llm(): | |
| openai_api_key = os.environ["OPENAI_API_KEY"] | |
| return ChatOpenAI(openai_api_key=openai_api_key, model_name="gpt-3.5-turbo") | |
| llm = cargar_llm() | |
| # Interfaz Streamlit | |
| st.title("Chatbot RAG con GPT-3.5 Turbo 🤖📄") | |
| pregunta = st.text_input("Escribí tu pregunta:") | |
| if pregunta: | |
| docs = db.similarity_search(pregunta, k=3) | |
| contexto = "\n".join([doc.page_content for doc in docs]) | |
| prompt = f"""Respondé la siguiente pregunta usando exclusivamente el contexto a continuación. Si no encontrás la respuesta en el contexto, decí "No tengo información suficiente". | |
| Contexto: | |
| {contexto} | |
| Pregunta: | |
| {pregunta} | |
| """ | |
| respuesta = llm([HumanMessage(content=prompt)]) | |
| st.write("**Respuesta:**", respuesta.content) | |