Refactor: Modularize application into separate components #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Decomposed the single application script into a structured package
idiomaticwith the following modules:config.py: Handles application configuration viaIdiomaticConfig.utils.py: Provides data persistence and display utilities.qna_generation.py: Manages idiom question generation and answer evaluation.tools.py: Defines agent tools and theToolNode.agent.py: Contains the agent's state definition (IdiomaticState), core interaction nodes (chatbot_node,get_user_input), and system prompt.graph.py: Defines the LangGraph graph structure, routing logic, and compilation.app.py: Therun_appfunction now orchestrates the setup of these components and the execution of the graph.This refactoring improves code organization, maintainability, and clarity. The
main.pyscript andidiomatic/__init__.pyare updated accordingly. The README.md's "Project Structure" section now reflects these changes.Ensured adherence to original Google GenAI client usage patterns as specified by the user.