gnosticdev commited on
Commit
c65eacc
verified
1 Parent(s): 49ee7f8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -28
app.py CHANGED
@@ -1,11 +1,11 @@
1
  import pandas as pd
2
- from langchain_groq import ChatGroq
3
  from langchain_huggingface import HuggingFaceEmbeddings
4
  from langchain_chroma import Chroma
5
  from langchain_core.prompts import PromptTemplate
6
  from langchain_core.output_parsers import StrOutputParser
7
  from langchain_core.runnables import RunnablePassthrough
8
  import gradio as gr
 
9
 
10
  # Carga los datos de entrenamiento
11
  df = pd.read_csv('./botreformasconstrucciones.csv')
@@ -13,25 +13,20 @@ df = pd.read_csv('./botreformasconstrucciones.csv')
13
  # Crea un arreglo con los contextos
14
  context_data = []
15
  for i in range(len(df)):
16
- context = ""
17
- for j in range(3):
18
- context += df.columns[j]
19
- context += ": "
20
- context += df.iloc[i, j] # Cambia esto
21
- context += " "
22
- context_data.append(context)
23
-
24
- # Importa las bibliotecas necesarias
25
- import os
26
- from langchain_groq import ChatGroq
27
- from langchain_huggingface import HuggingFaceEmbeddings
28
- from langchain_chroma import Chroma
29
 
30
- # Obtiene la clave de API de Groq
31
- groq_key = os.environ.get('groq_api_keys')
 
32
 
33
- # Crea un objeto ChatGroq con el modelo de lenguaje
34
- llm = ChatGroq(model="llama-3.1-70b-versatile", api_key=groq_key)
35
 
36
  # Crea un objeto HuggingFaceEmbeddings con el modelo de embeddings
37
  embed_model = HuggingFaceEmbeddings(model_name="mixedbread-ai/mxbai-embed-large-v1")
@@ -51,7 +46,7 @@ retriever = vectorstore.as_retriever()
51
  # Crea un objeto PromptTemplate con el prompt
52
  template = ("""tu eres un experto asistente de gnostic dev, desarrollo web, experto en wordpress, paginas web, plataformas,
53
  ecommerce, aplicaciones con ia, debes responder cuestiones tecnicas a los posinles clientes,
54
- y recordarles que para cualquier duda puede contactar conmigo mediante el chat que encontraras debajo a la derecha de la pantalla y me pondre contacto contigo lo antes posible, darle razones por las que soy la mejor opcion para contratar el desarrollo web, desde precios muy asequibles comparados con lo que les costaria en un estudio o empresa de desarrollo, gracias a ser freelancer ofrezco un soporte tecnivo personal e ilimitado en soporte tecnico, y de regalo la version apk como aplicacion para android por cada web, ademas de un chatbot y asistente,
55
  Context: {context}
56
  Question: {question}
57
  Answer:""")
@@ -60,22 +55,19 @@ y recordarles que para cualquier duda puede contactar conmigo mediante el chat q
60
  rag_prompt = PromptTemplate.from_template(template)
61
 
62
  # Crea un objeto StrOutputParser para parsear la salida
63
- from langchain_core.output_parsers import StrOutputParser
64
 
65
  # Crea un objeto RunnablePassthrough para ejecutar el modelo
66
- from langchain_core.runnables import RunnablePassthrough
67
 
68
  # Crea un objeto rag_chain con el modelo y el prompt
69
  rag_chain = (
70
- {"context": retriever, "question": RunnablePassthrough()}
71
  | rag_prompt
72
  | llm
73
- | StrOutputParser()
74
  )
75
 
76
- # Importa la biblioteca Gradio
77
- import gradio as gr
78
-
79
  # Crea una funci贸n para procesar la entrada del usuario
80
  def rag_memory_stream(message, history):
81
  partial_text = ""
@@ -85,7 +77,7 @@ def rag_memory_stream(message, history):
85
 
86
  # Crea un objeto Gradio con la funci贸n y el t铆tulo
87
  examples = [
88
- "驴C贸mo instalar wordpress por FTP?"
89
  "驴Como limpiar un wordpress hackeado?",
90
  "驴C贸mo importar productos en wooocommerce?"
91
  ]
@@ -102,4 +94,4 @@ demo = gr.ChatInterface(fn=rag_memory_stream,
102
 
103
  # Lanza la aplicaci贸n
104
  if __name__ == "__main__":
105
- demo.launch()
 
1
  import pandas as pd
 
2
  from langchain_huggingface import HuggingFaceEmbeddings
3
  from langchain_chroma import Chroma
4
  from langchain_core.prompts import PromptTemplate
5
  from langchain_core.output_parsers import StrOutputParser
6
  from langchain_core.runnables import RunnablePassthrough
7
  import gradio as gr
8
+ from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
9
 
10
  # Carga los datos de entrenamiento
11
  df = pd.read_csv('./botreformasconstrucciones.csv')
 
13
  # Crea un arreglo con los contextos
14
  context_data = []
15
  for i in range(len(df)):
16
+ context = ""
17
+ for j in range(3):
18
+ context += df.columns[j]
19
+ context += ": "
20
+ context += df.iloc[i, j] # Cambia esto
21
+ context += " "
22
+ context_data.append(context)
 
 
 
 
 
 
23
 
24
+ # Crea el tokenizer y el modelo de Llama-2
25
+ tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-chat-hf")
26
+ model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-chat-hf")
27
 
28
+ # Crea un pipeline para la generaci贸n de texto
29
+ llm = pipeline("text-generation", model=model, tokenizer=tokenizer)
30
 
31
  # Crea un objeto HuggingFaceEmbeddings con el modelo de embeddings
32
  embed_model = HuggingFaceEmbeddings(model_name="mixedbread-ai/mxbai-embed-large-v1")
 
46
  # Crea un objeto PromptTemplate con el prompt
47
  template = ("""tu eres un experto asistente de gnostic dev, desarrollo web, experto en wordpress, paginas web, plataformas,
48
  ecommerce, aplicaciones con ia, debes responder cuestiones tecnicas a los posinles clientes,
49
+ y recordarles que para cualquier duda puede contactar conmigo mediante el chat que encontraras debajo a la derecha de la pantalla y me pondre contacto contigo lo antes posible, darle razones por las que soy la mejor opcion para contratar el desarrollo web, desde precios muy asequibles comparados con lo que les costaria en un estudio o empresa de desarrollo, gracias a ser freelancer ofrezco un soporte tecnico personal e ilimitado en soporte tecnico, y de regalo la version apk como aplicacion para android por cada web, ademas de un chatbot y asistente,
50
  Context: {context}
51
  Question: {question}
52
  Answer:""")
 
55
  rag_prompt = PromptTemplate.from_template(template)
56
 
57
  # Crea un objeto StrOutputParser para parsear la salida
58
+ output_parser = StrOutputParser()
59
 
60
  # Crea un objeto RunnablePassthrough para ejecutar el modelo
61
+ runnable_passthrough = RunnablePassthrough()
62
 
63
  # Crea un objeto rag_chain con el modelo y el prompt
64
  rag_chain = (
65
+ {"context": retriever, "question": runnable_passthrough}
66
  | rag_prompt
67
  | llm
68
+ | output_parser
69
  )
70
 
 
 
 
71
  # Crea una funci贸n para procesar la entrada del usuario
72
  def rag_memory_stream(message, history):
73
  partial_text = ""
 
77
 
78
  # Crea un objeto Gradio con la funci贸n y el t铆tulo
79
  examples = [
80
+ "驴C贸mo instalar wordpress por FTP?",
81
  "驴Como limpiar un wordpress hackeado?",
82
  "驴C贸mo importar productos en wooocommerce?"
83
  ]
 
94
 
95
  # Lanza la aplicaci贸n
96
  if __name__ == "__main__":
97
+ demo.launch()