Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,39 +1,32 @@
|
|
1 |
from langchain.chains import ConversationalRetrievalChain
|
2 |
from langchain.memory import ConversationBufferMemory
|
3 |
-
from
|
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"""
|
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.
|
|
|
|
|
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, '''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|