ak0601 commited on
Commit
99cddfb
·
verified ·
1 Parent(s): 4202680

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -20
app.py CHANGED
@@ -731,6 +731,10 @@ async def api_info():
731
  # ============================================================================
732
 
733
  async def generate_welcome_closing_messages(lead_data: Dict[str, Any]) -> Dict[str, str]:
 
 
 
 
734
  """Generate personalized welcome and closing messages using LLM based on candidate details"""
735
 
736
  if not LANGCHAIN_AVAILABLE:
@@ -747,6 +751,7 @@ async def generate_welcome_closing_messages(lead_data: Dict[str, Any]) -> Dict[s
747
  temperature=0.7,
748
  openai_api_key=openai_api_key
749
  )
 
750
 
751
  # Extract relevant information from lead data
752
  first_name = lead_data.get("first_name", "")
@@ -758,7 +763,7 @@ async def generate_welcome_closing_messages(lead_data: Dict[str, Any]) -> Dict[s
758
 
759
  # Create a summary of the candidate's background
760
  candidate_info = f"""
761
- Name: {first_name} {last_name}
762
  Company: {company_name}
763
  Location: {location}
764
  Title: {title}
@@ -776,13 +781,7 @@ async def generate_welcome_closing_messages(lead_data: Dict[str, Any]) -> Dict[s
776
  - Reference their specific background/company/role when possible
777
  - Keep messages concise and engaging
778
  - Make them feel valued and understood
779
-
780
- Respond with ONLY a JSON object:
781
- {
782
- "welcome_message": "Personalized welcome message here",
783
- "closing_message": "Personalized closing message here"
784
- }
785
-
786
  IMPORTANT: Respond with ONLY valid JSON. No additional text."""
787
 
788
  prompt_template = ChatPromptTemplate.from_messages([
@@ -791,22 +790,13 @@ async def generate_welcome_closing_messages(lead_data: Dict[str, Any]) -> Dict[s
791
  ])
792
 
793
  messages = prompt_template.format_messages(candidate_info=candidate_info)
794
- response = await llm.ainvoke(messages)
795
 
796
  try:
797
- content = response.content.strip()
798
-
799
- if content.startswith("```json"):
800
- content = content[7:]
801
- if content.endswith("```"):
802
- content = content[:-3]
803
-
804
- content = content.strip()
805
- parsed_data = json.loads(content)
806
 
807
  return {
808
- "welcome_message": parsed_data.get("welcome_message", ""),
809
- "closing_message": parsed_data.get("closing_message", "")
810
  }
811
 
812
  except Exception as parse_error:
 
731
  # ============================================================================
732
 
733
  async def generate_welcome_closing_messages(lead_data: Dict[str, Any]) -> Dict[str, str]:
734
+ class structure(BaseModel):
735
+ welcome_message: str = Field(description="Welcome message for the candidate")
736
+ closing_message: str = Field(description="Closing message for the candidate")
737
+
738
  """Generate personalized welcome and closing messages using LLM based on candidate details"""
739
 
740
  if not LANGCHAIN_AVAILABLE:
 
751
  temperature=0.7,
752
  openai_api_key=openai_api_key
753
  )
754
+ str_llm = llm.with_structured_output(structure)
755
 
756
  # Extract relevant information from lead data
757
  first_name = lead_data.get("first_name", "")
 
763
 
764
  # Create a summary of the candidate's background
765
  candidate_info = f"""
766
+ Name: {first_name}
767
  Company: {company_name}
768
  Location: {location}
769
  Title: {title}
 
781
  - Reference their specific background/company/role when possible
782
  - Keep messages concise and engaging
783
  - Make them feel valued and understood
784
+
 
 
 
 
 
 
785
  IMPORTANT: Respond with ONLY valid JSON. No additional text."""
786
 
787
  prompt_template = ChatPromptTemplate.from_messages([
 
790
  ])
791
 
792
  messages = prompt_template.format_messages(candidate_info=candidate_info)
793
+ response = await str_llm.ainvoke(messages)
794
 
795
  try:
 
 
 
 
 
 
 
 
 
796
 
797
  return {
798
+ "welcome_message": response.welcome_message,
799
+ "closing_message": response.closing_message
800
  }
801
 
802
  except Exception as parse_error: