@@ -37,6 +37,11 @@ def register_token_usage(ip: str, texts: list[str]):
3737 base_url = "https://generativelanguage.googleapis.com/v1beta/openai/"
3838)
3939
40+ perplexity = OpenAI (
41+ api_key = os .getenv ("PERPLEXITY_API_KEY" ),
42+ base_url = "https://api.perplexity.ai"
43+ )
44+
4045profile = ""
4146with pdfplumber .open ("profile.pdf" ) as pdf :
4247 for page in pdf .pages :
@@ -89,6 +94,28 @@ def safe_openai_chat(model, messages, context=None):
8994 )
9095 raise
9196
97+ def safe_perplexity_evaluate (messages ):
98+ try :
99+ response = perplexity .chat .completions .parse (
100+ model = "sonar" ,
101+ messages = messages ,
102+ response_format = Evaluation
103+ )
104+
105+ parsed = response .choices [0 ].message .parsed
106+ if parsed is None :
107+ raise ValueError ("Parsing Perplexity devolvió None" )
108+
109+ return parsed
110+
111+ except Exception as e :
112+ send_error_email (
113+ subject = "Error Perplexity Evaluation - CV Assistant" ,
114+ error = e ,
115+ context = {"messages" : messages }
116+ )
117+ raise
118+
92119def safe_gemini_evaluate (messages ):
93120 try :
94121 response = gemini .beta .chat .completions .parse (
@@ -155,7 +182,7 @@ def prompt_evaluator_user(answer, message, history):
155182def evaluate (answer , message , history ) -> Evaluation :
156183 messages = [{"role" : "system" , "content" : prompt_evaluation_system }] + [{"role" : "user" , "content" : prompt_evaluator_user (answer , message , history )}]
157184 #answer_eval = gemini.beta.chat.completions.parse(model="gemini-flash-latest", messages=messages, response_format=Evaluation)
158- return safe_gemini_evaluate (messages )
185+ return safe_perplexity_evaluate (messages )
159186
160187# question = "¿Qué idiomas manejas?"
161188# messages = [{"role": "system", "content": system_prompt}] + [{"role": "user", "content": question}]
0 commit comments