Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,38 +1,38 @@
|
|
1 |
-
from
|
2 |
-
from
|
3 |
-
from
|
4 |
-
from
|
5 |
-
from
|
6 |
-
from
|
7 |
-
from
|
8 |
-
from
|
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 |
-
@
|
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)
|