| 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) |
|
|
|
|