Spaces:
Running
Running
| import pandas as pd | |
| from langchain_groq import ChatGroq | |
| from langchain_huggingface import HuggingFaceEmbeddings | |
| from langchain_chroma import Chroma | |
| from langchain_core.prompts import PromptTemplate | |
| from langchain_core.output_parsers import StrOutputParser | |
| from langchain_core.runnables import RunnablePassthrough | |
| import gradio as gr | |
| # Carga los datos de entrenamiento | |
| df = pd.read_csv('./botreformasconstrucciones.csv') | |
| # Crea un arreglo con los contextos | |
| context_data = [] | |
| for i in range(len(df)): | |
| context = "" | |
| for j in range(3): | |
| context += df.columns[j] | |
| context += ": " | |
| context += df.iloc[i, j] # Cambia esto | |
| context += " " | |
| context_data.append(context) | |
| # Importa las bibliotecas necesarias | |
| import os | |
| from langchain_groq import ChatGroq | |
| from langchain_huggingface import HuggingFaceEmbeddings | |
| from langchain_chroma import Chroma | |
| # Obtiene la clave de API de Groq | |
| groq_key = os.environ.get('groq_api_keys') | |
| # Crea un objeto ChatGroq con el modelo de lenguaje | |
| llm = ChatGroq(model="llama-3.3-70b-versatile", api_key=groq_key) | |
| # Crea un objeto HuggingFaceEmbeddings con el modelo de embeddings | |
| embed_model = HuggingFaceEmbeddings(model_name="mixedbread-ai/mxbai-embed-large-v1") | |
| # Crea un objeto Chroma con el nombre de la colecci贸n | |
| vectorstore = Chroma( | |
| collection_name="reformas_construccion_juancarlos_y_yoises", | |
| embedding_function=embed_model, | |
| ) | |
| # Agrega los textos a la colecci贸n | |
| vectorstore.add_texts(context_data) | |
| # Crea un objeto retriever con la colecci贸n | |
| retriever = vectorstore.as_retriever() | |
| # Crea un objeto PromptTemplate con el prompt | |
| template = ("""Tu eres un experto asistente de Gnostic Dev, especializado en desarrollo web, dise帽o de p谩ginas web, | |
| plataformas e-commerce y aplicaciones con inteligencia artificial. Debes responder a preguntas t茅cnicas de posibles clientes de manera clara | |
| y concisa, proporcionando soluciones efectivas y personalizadas. Recuerda que para cualquier duda o consulta adicional, | |
| los clientes pueden contactar conmigo a trav茅s del chat que se encuentra en la parte inferior derecha de la pantalla, | |
| y me pondr茅 en contacto con ellos lo antes posible. | |
| Destaca las ventajas de contratar mis servicios como freelancer, | |
| incluyendo precios competitivos, soporte t茅cnico personalizado e ilimitado, y la inclusi贸n de una versi贸n APK como aplicaci贸n para Android | |
| para cada proyecto web, as铆 como un chatbot y asistente. Adem谩s, resalta mi experiencia y habilidades en el desarrollo de soluciones | |
| web personalizadas y mi compromiso con la satisfacci贸n del cliente. cuando te pregunten cual es el proceso de comprar y encargar un proyecto conmigo | |
| les diras que a diferencia del resto, solo en gnostic dev es posible pagar tu web al final del trabajo, | |
| todas las web con facil administacion para inexpertos, | |
| Context: {context} | |
| Question: {question} | |
| Answer:""") | |
| # Crea un objeto rag_prompt con el prompt | |
| rag_prompt = PromptTemplate.from_template(template) | |
| # Crea un objeto StrOutputParser para parsear la salida | |
| from langchain_core.output_parsers import StrOutputParser | |
| # Crea un objeto RunnablePassthrough para ejecutar el modelo | |
| from langchain_core.runnables import RunnablePassthrough | |
| # Crea un objeto rag_chain con el modelo y el prompt | |
| rag_chain = ( | |
| {"context": retriever, "question": RunnablePassthrough()} | |
| | rag_prompt | |
| | llm | |
| | StrOutputParser() | |
| ) | |
| # Importa la biblioteca Gradio | |
| import gradio as gr | |
| # Crea una funci贸n para procesar la entrada del usuario | |
| def rag_memory_stream(message, history): | |
| partial_text = "" | |
| for new_text in rag_chain.stream(message): | |
| partial_text += new_text | |
| yield partial_text | |
| # Crea un objeto Gradio con la funci贸n y el t铆tulo | |
| examples = [ | |
| "驴C贸mo encargar mi web contigo?", | |
| "驴Como limpiar un wordpress hackeado?", | |
| "驴C贸mo importar productos en wooocommerce?" | |
| ] | |
| description = "Aplicaci贸n de IA desarrollada por GnoscticDev para servirle :)" | |
| title = "Experto en desarrollo web" | |
| demo = gr.ChatInterface(fn=rag_memory_stream, | |
| type="messages", | |
| title=title, | |
| description=description, | |
| fill_height=True, | |
| examples=examples, | |
| theme="glass", | |
| ) | |
| # Lanza la aplicaci贸n | |
| if __name__ == "__main__": | |
| demo.launch() |