| from typing import Any, Dict, List, Optional, Tuple,TypedDict,Literal |
| from typing import Annotated, Sequence |
| import os |
| from langchain_core.messages import SystemMessage, HumanMessage,ToolMessage,AIMessage |
| from langchain_core.tools import Tool |
| from langgraph.graph import StateGraph,END,START |
| from langgraph.types import interrupt |
| from langchain_core.prompts import ChatPromptTemplate,MessagesPlaceholder |
| from langchain_community.document_loaders import PyMuPDFLoader |
| from pydantic import BaseModel, Field |
| from typing import List, Optional |
| from pprint import pprint |
| from langchain_core.messages import BaseMessage |
| from langgraph.graph import add_messages |
| 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 |
|
|
|
|
|
|
|
|
| class OnboardingState(TypedDict): |
| candidate_name: Optional[str] |
| resume_text: str |
| file_path: str |
| job_description: str |
| messages: Annotated[Sequence[BaseMessage], add_messages] |
| |
| |
| skill_gap_analysis_data: Optional[SkillGapAnalysis] |
| resume_data: Optional[ResumeExtract] |
| extraction_error: Optional[str] |
| JobDescriptionExtract_data: Optional[JobDescriptionExtract] |
| |
| |
| mermaid_code: Optional[str] |
| final_roadmap: Optional[Dict] |