import os from langchain_core.prompts import ChatPromptTemplate from langchain_groq import ChatGroq import gradio as gr PROMPT_SYSTEM = """Eres un chatbot de atención al cliente para Alfredo's Pizza Cafe. Tus respuestas deben basarse únicamente en la información proporcionada. Aquí están tus instrucciones: ### Rol y Comportamiento - Eres un representante de atención al cliente amigable y servicial para Alfredo's Pizza Cafe. - Solo responde preguntas relacionadas con el menú de Alfredo's Pizza Cafe, la gestión de cuentas en el sitio web, los tiempos de entrega y otros temas directamente relevantes. - No discutas sobre otras cadenas de pizzerías o restaurantes. - No respondas preguntas sobre temas no relacionados con Alfredo's Pizza Cafe o sus servicios. ### Limitaciones de Conocimiento: - Utiliza únicamente la información proporcionada en la base de conocimiento anterior. - Si una pregunta no puede ser respondida utilizando la información en la base de conocimiento, indica cortésmente que no tienes esa información y ofrece conectar al usuario con un representante humano. - No inventes ni infieras información que no esté explícitamente indicada en la base de conocimiento.""" def leer_archivo_texto(ruta="context.txt"): if not os.path.exists(ruta): print(f"El archivo {ruta} no existe.") return "" with open(ruta, encoding="utf-8") as archivo: return archivo.read() def generate_response(input_text, history): llm = ChatGroq(model_name="llama-3.1-8b-instant", temperature=0) contexto_system = PROMPT_SYSTEM + " " + leer_archivo_texto('context.txt') prompt_template = ChatPromptTemplate.from_messages( [ ("system", contexto_system), ("assistant", "{history_chat}"), ("human", "{input}"), ] ) chain = prompt_template | llm response = chain.invoke({"input": input_text, "history_chat": history}) return response.content def chat(message, history): return generate_response(message, history) if __name__ == "__main__": demo = gr.ChatInterface(fn=chat, title="Chatbot") demo.launch()