Spaces:
Running
Running
| import os | |
| from typing import TypedDict, List, Dict, Any, Optional | |
| from enum import Enum | |
| # 1) Core Tasks | |
| class Available_Tasks(Enum): | |
| LAPTOP_CHOOSE = "LAPTOP_CHOOSE" | |
| QUESTION = "QUESTION" # EAG of well known | |
| ROADMAP = "ROADMAP" | |
| PROGRAMMING = "PROGRAMMING" | |
| GENERAL = "GENERAL" # last option with notice | |
| HELLO = "HELLO" # this is to generally detect hello , but in use update_context prompt control to not classify it as core type | |
| # 2) Task Steps | |
| task_steps = { | |
| Available_Tasks.GENERAL.value : [], | |
| Available_Tasks.LAPTOP_CHOOSE.value : ["price","usage","other_concern"], | |
| Available_Tasks.QUESTION.value : [], | |
| Available_Tasks.PROGRAMMING.value : [], | |
| Available_Tasks.ROADMAP.value : ["career","level","experience","skills"], | |
| Available_Tasks.HELLO.value : [] | |
| } | |
| # 3) Tasks State | |
| class ProblemState(TypedDict): | |
| # main | |
| question: str | |
| answer: Optional[str] | |
| node_output_article : Optional[str] | |
| memory: List[Dict[str, Any]] # filled by list of Human/Sytem messages ... as in gui | |
| # to do lists | |
| # same as defined in task_Steps | |
| question_type : Optional[str] # --> must be of Available_Tasks values | |
| price : Optional[str] | |
| usage : Optional[str] | |
| other_concern : Optional[str] | |
| career : Optional[str] | |
| level : Optional[str] | |
| experience : Optional[List[str]] | |
| skills : Optional[List[str]] | |
| all_ok : Optional[bool] | |
| # Models | |
| llm: Optional[Any] | |
| rag_model: Optional[Any] | |