jdmorzan commited on
Commit
633e22b
·
verified ·
1 Parent(s): ece8623

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -33
app.py CHANGED
@@ -1,38 +1,38 @@
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():
33
  return ConversationBufferMemory(memory_key='chat_history', return_messages=True)
34
 
35
- @traceable
36
  def pdf_qa(query, memory):
37
  function = ConversationalRetrievalChain.from_llm(
38
  llm=llm,
@@ -43,17 +43,7 @@ def pdf_qa(query, 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,12 +51,9 @@ with gr.Blocks() as demo:
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)
 
1
+ from langchain_community.chains import ConversationalRetrievalChain
2
+ from langchain_community.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 trace
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') # Changed from 'gpt-4o-mini' to 'gpt-4'
20
 
21
+ general_system_template = r"""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.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. Proporciona mensajes breves y concisos con bullets y negritas. Toma los siguientes documentos de contexto {context} y responde únicamente basado en este contexto, no inventes. No menciones ningún código de curso al mencionar sus nombres (ejemplo: [PS1223])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."""
 
 
 
 
 
 
 
 
22
 
23
  general_user_template = "Pregunta:```{question}```"
24
+
25
  messages = [
26
  SystemMessagePromptTemplate.from_template(general_system_template),
27
  HumanMessagePromptTemplate.from_template(general_user_template)
28
  ]
29
+
30
  qa_prompt = ChatPromptTemplate.from_messages(messages)
31
 
32
  def create_memory():
33
  return ConversationBufferMemory(memory_key='chat_history', return_messages=True)
34
 
35
+ @trace
36
  def pdf_qa(query, memory):
37
  function = ConversationalRetrievalChain.from_llm(
38
  llm=llm,
 
43
  return function({"question": query})
44
 
45
  with gr.Blocks() as demo:
46
+ 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! ''']])
 
 
 
 
 
 
 
 
 
 
47
  msg = gr.Textbox(placeholder="Escribe aquí", label='')
48
  submit = gr.Button("Enviar")
49
  memory_state = gr.State(create_memory)
 
51
  def user(query, chat_history, memory):
52
  print("User query:", query)
53
  print("Chat history:", chat_history)
 
54
  result = pdf_qa(query, memory)
 
55
  chat_history.append((query, result["answer"]))
56
  print("Updated chat history:", chat_history)
 
57
  return gr.update(value=""), chat_history, memory
58
 
59
  submit.click(user, [msg, chatbot, memory_state], [msg, chatbot, memory_state], queue=False)