from langchain_groq import ChatGroq from app.schemas.jd_extract_schema import JobDescriptionExtract from app.schemas.resume_extract_schema import ResumeExtract from app.schemas.skill_gap_analysis_schema import SkillGapAnalysis from app.core.config import settings from app.tools.tools import roadmap_planner_agent_tools from app.prompts.roadmap_planner_agent_prompt import roadmap_planner_agent_prompt from app.tools.tools import * from typing import Any from langchain.agents.middleware import ToolCallLimitMiddleware import os if "GROQ_API_KEY" not in os.environ: os.environ["GROQ_API_KEY"] = settings.GROQ_API_KEY resume_agent=ChatGroq( model="meta-llama/llama-4-scout-17b-16e-instruct", temperature=0.2, ) resume_agent=resume_agent.with_structured_output( schema=ResumeExtract, method="json_schema", include_raw=True, strict=True ) jd_agent=ChatGroq( model="openai/gpt-oss-20b", temperature=0.2, ) jd_agent=jd_agent.with_structured_output( schema=JobDescriptionExtract, method="json_schema", include_raw=True, strict=True ) gap_analysis_agent=ChatGroq( model="openai/gpt-oss-20b", temperature=0.2, ) gap_analysis_agent=gap_analysis_agent.with_structured_output( schema=SkillGapAnalysis, method="json_schema", include_raw=True, strict=True ) base_llm = ChatGroq( model="qwen/qwen3-32b", temperature=0.1, ) roadmap_planner_agent_tools=[search_courses,submit_final_roadmap,submit_mermaid_visualization] roadmap_planner_agent=base_llm.bind_tools(roadmap_planner_agent_tools)