BtB-ExpC commited on
Commit
9cbdd68
·
1 Parent(s): b60cd75

dummy_state route

Browse files
{config → app/helpers}/exercise_standardizer.py RENAMED
@@ -1,9 +1,9 @@
1
- # exercise_standardizer.py
2
- import gradio as gr
3
  from langchain_core.prompts import ChatPromptTemplate
4
  from typing import Any
 
5
  from config.format_mappings import FORMAT_MAPPINGS
6
- from utils.state_manager import standardized_format_state
7
 
8
 
9
  async def standardize_exercise(user_query: str, exercise_format: str, template: ChatPromptTemplate, llm: Any) -> str:
@@ -27,7 +27,7 @@ async def standardize_exercise(user_query: str, exercise_format: str, template:
27
  response = await llm.ainvoke(std_messages)
28
  standardized_exercise = getattr(response, "content", response)
29
 
30
- standardized_format_state.value = standardized_exercise
31
 
32
  return standardized_exercise
33
 
 
1
+ # app/helpers/exercise_standardizer.py
 
2
  from langchain_core.prompts import ChatPromptTemplate
3
  from typing import Any
4
+ from app.helpers.update_standardized_markdown import dummy_state
5
  from config.format_mappings import FORMAT_MAPPINGS
6
+
7
 
8
 
9
  async def standardize_exercise(user_query: str, exercise_format: str, template: ChatPromptTemplate, llm: Any) -> str:
 
27
  response = await llm.ainvoke(std_messages)
28
  standardized_exercise = getattr(response, "content", response)
29
 
30
+ dummy_state.update(value=standardized_exercise)
31
 
32
  return standardized_exercise
33
 
app/helpers/update_standardized_markdown.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ # app/helpers/update_standardized_markdown
2
+ import gradio as gr
3
+
4
+ dummy_state = gr.Textbox(visible=False, label="Most recent reformatting", show_label=False)
5
+
6
+ async def update_standardized_markdown(text_from_dummy):
7
+ new_markdown = f"#### Most Recent Standardized Format\n{text_from_dummy}"
8
+ return new_markdown
chains/diagnoser/diagnoser_chain.py CHANGED
@@ -3,7 +3,6 @@ import asyncio
3
  from pydantic import BaseModel
4
  from typing import Any, List
5
  from langchain_core.prompts.chat import ChatPromptTemplate
6
- from config.exercise_standardizer import standardize_exercise
7
 
8
 
9
  class DiagnoserChain(BaseModel):
 
3
  from pydantic import BaseModel
4
  from typing import Any, List
5
  from langchain_core.prompts.chat import ChatPromptTemplate
 
6
 
7
 
8
  class DiagnoserChain(BaseModel):
chains/diagnoser/runner.py CHANGED
@@ -2,7 +2,7 @@
2
  import asyncio
3
 
4
  from config.chain_configs import chain_configs
5
- from config.exercise_standardizer import standardize_exercise
6
  from config.llm_config import llms
7
 
8
 
 
2
  import asyncio
3
 
4
  from config.chain_configs import chain_configs
5
+ from app.helpers.exercise_standardizer import standardize_exercise
6
  from config.llm_config import llms
7
 
8
 
chains/distractors/distractors_chain.py CHANGED
@@ -3,7 +3,6 @@ import asyncio
3
  from pydantic import BaseModel
4
  from typing import Any
5
  from langchain_core.prompts.chat import ChatPromptTemplate
6
- from config.exercise_standardizer import standardize_exercise
7
 
8
 
9
  class DistractorsChain(BaseModel):
 
3
  from pydantic import BaseModel
4
  from typing import Any
5
  from langchain_core.prompts.chat import ChatPromptTemplate
 
6
 
7
 
8
  class DistractorsChain(BaseModel):
chains/distractors/runner.py CHANGED
@@ -2,7 +2,7 @@
2
  import asyncio
3
 
4
  from config.chain_configs import chain_configs
5
- from config.exercise_standardizer import standardize_exercise
6
  from config.llm_config import llms
7
 
8
  async def run_distractors(
 
2
  import asyncio
3
 
4
  from config.chain_configs import chain_configs
5
+ from app.helpers.exercise_standardizer import standardize_exercise
6
  from config.llm_config import llms
7
 
8
  async def run_distractors(
main.py CHANGED
@@ -1,59 +1,18 @@
1
  # main.py
2
  import gradio as gr
3
  import logging
4
- from utils.state_manager import standardized_format_state
 
 
5
  from app.ui.diagnoser_tab import build_diagnoser_tab
6
  from app.ui.distractors_tab import build_distractors_tab
7
  from chains.diagnoser.runner import run_diagnoser
8
  from chains.distractors.runner import run_distractors
9
  from utils.auth import login as auth_login
10
- from config.chain_configs import chain_configs
11
- from config.llm_config import llms
12
 
13
  logger = logging.getLogger(__name__)
14
 
15
 
16
- # A generic async runner for simple chains (currently not used)
17
- async def run_chain(chain_name: str, input_variables: dict, selected_model: str):
18
- try:
19
- chain_config = chain_configs.get(chain_name)
20
- if not chain_config:
21
- raise KeyError(f"Chain '{chain_name}' not found.")
22
-
23
- # Override the LLM based on user selection.
24
- chosen_llm = llms.get(selected_model)
25
- if not chosen_llm:
26
- raise KeyError(f"LLM '{selected_model}' is not configured.")
27
-
28
- # Instantiate the chain with the chosen LLM.
29
- if chain_name == "diagnoser":
30
- chain_instance = chain_config["class"](
31
- template_standardize=chain_config["template_standardize"],
32
- template_diagnose=chain_config["template_diagnose"],
33
- llm=chosen_llm,
34
- )
35
- elif chain_name == "distractors":
36
- chain_instance = chain_config["class"](
37
- template=chain_config["template"],
38
- llm=chosen_llm,
39
- )
40
- else:
41
- raise KeyError(f"Chain '{chain_name}' is not implemented.")
42
-
43
- result = await chain_instance.run(input_variables["user_query"])
44
- content = result.content if hasattr(result, "content") else result
45
- # Replace literal "\n" (backslash-n) with actual newline characters.
46
- formatted_content = content.replace("\\n", "\n")
47
-
48
- logger.info(f"Chain '{chain_name}' executed successfully.")
49
-
50
- return formatted_content
51
-
52
-
53
- except Exception as e:
54
- logger.error(f"Error in run_chain for '{chain_name}': {e}")
55
- return f"Error: {e}"
56
-
57
 
58
  # -------------------------------
59
  # Build the Gradio Interface
@@ -69,6 +28,7 @@ with gr.Blocks() as interface:
69
  # --- Main App (initially hidden) ---
70
  with gr.Column(visible=False, elem_id="main_app") as app_container:
71
  # --- Standardized Exercise/Studytext Display (Initially Invisible Because it's empty) ---
 
72
  standardized_format_display = gr.Markdown("", visible=True)
73
 
74
  gr.Markdown("## Pick the tab for your task of choice")
@@ -126,9 +86,9 @@ with gr.Blocks() as interface:
126
  outputs=[login_container, app_container, login_error]
127
  )
128
 
129
- standardized_format_state.change(
130
- fn=lambda text: gr.update(value="#### Here's the most recent standardized format" + f"\n{standardized_format_state}"), # ✅ Only update value, no need to toggle visibility
131
- inputs=[standardized_format_state],
132
  outputs=[standardized_format_display]
133
  )
134
 
 
1
  # main.py
2
  import gradio as gr
3
  import logging
4
+
5
+ from app.helpers import update_standardized_markdown
6
+ from app.helpers.update_standardized_markdown import dummy_state
7
  from app.ui.diagnoser_tab import build_diagnoser_tab
8
  from app.ui.distractors_tab import build_distractors_tab
9
  from chains.diagnoser.runner import run_diagnoser
10
  from chains.distractors.runner import run_distractors
11
  from utils.auth import login as auth_login
 
 
12
 
13
  logger = logging.getLogger(__name__)
14
 
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  # -------------------------------
18
  # Build the Gradio Interface
 
28
  # --- Main App (initially hidden) ---
29
  with gr.Column(visible=False, elem_id="main_app") as app_container:
30
  # --- Standardized Exercise/Studytext Display (Initially Invisible Because it's empty) ---
31
+
32
  standardized_format_display = gr.Markdown("", visible=True)
33
 
34
  gr.Markdown("## Pick the tab for your task of choice")
 
86
  outputs=[login_container, app_container, login_error]
87
  )
88
 
89
+ dummy_state.change(
90
+ fn=update_standardized_markdown,
91
+ inputs=[dummy_state],
92
  outputs=[standardized_format_display]
93
  )
94
 
utils/state_manager.py DELETED
@@ -1,5 +0,0 @@
1
- # utils.state_manager.py
2
- import gradio as gr
3
-
4
- # Global state variable for standardized formats
5
- standardized_format_state = gr.State("")