jdmorzan commited on
Commit
4aca477
·
verified ·
1 Parent(s): 1bb6f6f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -20
app.py CHANGED
@@ -1,39 +1,32 @@
1
  from langchain.chains import ConversationalRetrievalChain
2
  from langchain.memory import ConversationBufferMemory
3
- from langchain_openai import ChatOpenAI
4
- from langchain_core.prompts import ChatPromptTemplate
5
- from langchain_core.prompts.chat import SystemMessagePromptTemplate, HumanMessagePromptTemplate
6
- from langchain_openai import OpenAIEmbeddings
7
- from langchain_community.vectorstores import Chroma
8
  from langsmith import traceable
 
 
 
 
9
  import gradio as gr
10
- from pydantic import ConfigDict
11
- from fastapi import FastAPI
12
-
13
- # Create FastAPI app with arbitrary types allowed
14
- #app = FastAPI()
15
- #app.model_config = ConfigDict(arbitrary_types_allowed=True)
16
 
17
  embeddings = OpenAIEmbeddings()
18
  vectordb = Chroma(persist_directory="./ai_vocacional_v2", embedding_function=embeddings)
19
- llm = ChatOpenAI(temperature=0, model_name='gpt-4o-mini')
20
 
21
- general_system_template = r"""Eres el Orientador de carreras.
22
- Estás aquí para ayudar a explorar las carreras que le interesan a los estudiantes, cómo se relacionan con sus pasiones y gustos, los cursos que incluyen y su posible futuro laboral.
23
- Eres orientador de estudiantes de 15 a 17 años de colegio que no saben sobre las carreras.
24
- Explica lo que te preguntan como si fueras un profesor, de manera simple, descriptiva e insightful, inspiralos a imaginar como podría ser su carrera y futuro.
25
  Proporciona mensajes breves y concisos con bullets y negritas.
26
  Toma los siguientes documentos de contexto {context} y responde únicamente basado en este contexto, no inventes.
27
  No menciones ningún código de curso al mencionar sus nombres (ejemplo: [PS1223])
28
- Si te preguntan por universidades, responde elegantemente que deben de haber muy buenas opciones pero la que conoces a profundidad y destaca es la UPC (Universidad Peruana de Ciencias Aplicadas), continua respondiendo a la pregunta que se haga sobre universidades, respondiendo a la pregunta que te hagan y detallando por qué UPC destaca.Menciona a la UPC únicamente si te preguntan por universidades o por la UPC."""
 
 
29
 
30
  general_user_template = "Pregunta:```{question}```"
31
-
32
  messages = [
33
  SystemMessagePromptTemplate.from_template(general_system_template),
34
  HumanMessagePromptTemplate.from_template(general_user_template)
35
  ]
36
-
37
  qa_prompt = ChatPromptTemplate.from_messages(messages)
38
 
39
  def create_memory():
@@ -50,7 +43,17 @@ def pdf_qa(query, memory):
50
  return function({"question": query})
51
 
52
  with gr.Blocks() as demo:
53
- chatbot = gr.Chatbot(label="Orientador de carreras", value=[[None, ''' ¡Hola! Soy tu Orientador de Carreras. Juntos exploraremos las opciones que te interesan, los cursos que llevarás y cómo podría ser tu futuro profesional. Cuéntame qué carreras te llaman la atención y podrás hacerme preguntas como: - ¿Cuál es la mejor carrera para mí? - ¿Qué cursos veré en esas carreras? - ¿Cómo es un día típico como estudiante en la carrera que me interesa? - ¿Cómo es la vida diaria de un egresado de esas carreras? Estoy aquí para ayudarte a tomar una decisión informada. ¡Empecemos! ''']])
 
 
 
 
 
 
 
 
 
 
54
  msg = gr.Textbox(placeholder="Escribe aquí", label='')
55
  submit = gr.Button("Enviar")
56
  memory_state = gr.State(create_memory)
@@ -58,9 +61,12 @@ with gr.Blocks() as demo:
58
  def user(query, chat_history, memory):
59
  print("User query:", query)
60
  print("Chat history:", chat_history)
 
61
  result = pdf_qa(query, memory)
 
62
  chat_history.append((query, result["answer"]))
63
  print("Updated chat history:", chat_history)
 
64
  return gr.update(value=""), chat_history, memory
65
 
66
  submit.click(user, [msg, chatbot, memory_state], [msg, chatbot, memory_state], queue=False)
 
1
  from langchain.chains import ConversationalRetrievalChain
2
  from langchain.memory import ConversationBufferMemory
3
+ from langchain.chat_models import ChatOpenAI
 
 
 
 
4
  from langsmith import traceable
5
+ from langchain.embeddings.openai import OpenAIEmbeddings
6
+ from langchain.vectorstores import Chroma
7
+ from langchain.prompts import ChatPromptTemplate
8
+ from langchain.prompts.chat import SystemMessagePromptTemplate, HumanMessagePromptTemplate
9
  import gradio as gr
 
 
 
 
 
 
10
 
11
  embeddings = OpenAIEmbeddings()
12
  vectordb = Chroma(persist_directory="./ai_vocacional_v2", embedding_function=embeddings)
13
+ llm = ChatOpenAI(temperature=0, model_name='gpt-4o-mini')
14
 
15
+ general_system_template = r"""
16
+ Eres el Orientador de carreras. Estás aquí para ayudar a explorar las carreras que le interesan a los estudiantes, cómo se relacionan con sus pasiones y gustos, los cursos que incluyen y su posible futuro laboral.
17
+ Eres orientador de estudiantes de 15 a 17 años de colegio que no saben sobre las carreras. Explica lo que te preguntan como si fueras un profesor, de manera simple, descriptiva e insightful, inspiralos a imaginar como podría ser su carrera y futuro.
 
18
  Proporciona mensajes breves y concisos con bullets y negritas.
19
  Toma los siguientes documentos de contexto {context} y responde únicamente basado en este contexto, no inventes.
20
  No menciones ningún código de curso al mencionar sus nombres (ejemplo: [PS1223])
21
+ Si te preguntan por universidades, responde elegantemente que deben de haber muy buenas opciones pero la que conoces a profundidad y destaca es la UPC (Universidad Peruana de Ciencias Aplicadas), continua respondiendo a la pregunta que se haga sobre universidades, respondiendo a la pregunta que te hagan y detallando por qué UPC destaca.
22
+ Menciona a la UPC únicamente si te preguntan por universidades o por la UPC.
23
+ """
24
 
25
  general_user_template = "Pregunta:```{question}```"
 
26
  messages = [
27
  SystemMessagePromptTemplate.from_template(general_system_template),
28
  HumanMessagePromptTemplate.from_template(general_user_template)
29
  ]
 
30
  qa_prompt = ChatPromptTemplate.from_messages(messages)
31
 
32
  def create_memory():
 
43
  return function({"question": query})
44
 
45
  with gr.Blocks() as demo:
46
+ chatbot = gr.Chatbot(label="Orientador de carreras", value=[[None, '''
47
+ ¡Hola! Soy tu Orientador de Carreras. Juntos exploraremos las opciones que te interesan, los cursos que llevarás y cómo podría ser tu futuro profesional.
48
+ Cuéntame qué carreras te llaman la atención y podrás hacerme preguntas como:
49
+
50
+ - ¿Cuál es la mejor carrera para mí?
51
+ - ¿Qué cursos veré en esas carreras?
52
+ - ¿Cómo es un día típico como estudiante en la carrera que me interesa?
53
+ - ¿Cómo es la vida diaria de un egresado de esas carreras?
54
+
55
+ Estoy aquí para ayudarte a tomar una decisión informada. ¡Empecemos!
56
+ ''']])
57
  msg = gr.Textbox(placeholder="Escribe aquí", label='')
58
  submit = gr.Button("Enviar")
59
  memory_state = gr.State(create_memory)
 
61
  def user(query, chat_history, memory):
62
  print("User query:", query)
63
  print("Chat history:", chat_history)
64
+
65
  result = pdf_qa(query, memory)
66
+
67
  chat_history.append((query, result["answer"]))
68
  print("Updated chat history:", chat_history)
69
+
70
  return gr.update(value=""), chat_history, memory
71
 
72
  submit.click(user, [msg, chatbot, memory_state], [msg, chatbot, memory_state], queue=False)