Core Package
# Submodules section with toctree removed as automodule below will cover them. # ———- # .. toctree:: # :maxdepth: 1 # # core.exceptions # core.goal_manager # core.interfaces # core.metrics
- exception core.exceptions.BotError(message, user_friendly=None)[исходный код]
Базовые классы:
ExceptionBase class for bot errors with a user-friendly message.
- __init__(message, user_friendly=None)[исходный код]
Initialize the BotError.
- exception core.exceptions.StorageError(message, user_friendly=None)[исходный код]
Базовые классы:
BotErrorErrors related to data storage operations.
- exception core.exceptions.LLMError(message, user_friendly=None)[исходный код]
Базовые классы:
BotErrorErrors related to interaction with the LLM (OpenAI).
- exception core.exceptions.RateLimitExceeded(message, user_friendly=None)[исходный код]
Базовые классы:
BotErrorError raised when a rate limit is exceeded.
Core logic for managing user goals, plans, and progress via LLM and storage.
- class core.goal_manager.GoalManager(storage, llm)[исходный код]
Базовые классы:
objectAsynchronously manages user goals, tasks, and interactions.
Orchestrates operations with storage (e.g., Google Sheets via AsyncStorageInterface) and LLM (e.g., OpenAI via AsyncLLMInterface) for planning and motivation. All public methods are asynchronous.
- Параметры:
storage (
AsyncStorageInterface)llm (
AsyncLLMInterface)
- __init__(storage, llm)[исходный код]
Initializes GoalManager with async storage and LLM clients.
- Параметры:
storage (
AsyncStorageInterface)llm (
AsyncLLMInterface)
- async setup_user(user_id)[исходный код]
Asynchronously sets up the user by creating/opening their Google Spreadsheet.
- async set_new_goal(user_id, goal_text, deadline_str, available_time_str)[исходный код]
Asynchronously sets a new goal, generates a plan, and saves all data.
- async get_today_task(user_id)[исходный код]
Asynchronously retrieves today’s task.
- async update_today_task_status(user_id, status)[исходный код]
Asynchronously updates the status of today’s task. „status“ is expected to be a Russian user-facing string.
- async get_goal_status_details(user_id)[исходный код]
Asynchronously gets a brief string summary of goal progress.
- async generate_motivation_message(user_id)[исходный код]
Asynchronously generates a motivational message.
- async reset_user(user_id)[исходный код]
Asynchronously deletes all user data.
- async get_detailed_status(user_id)[исходный код]
Asynchronously gets detailed statistics about the user’s current goal.
- async batch_update_task_statuses(user_id, updates)[исходный код]
Asynchronously batch updates task statuses via the storage interface. „updates“ dict values are expected to be Russian user-facing strings.
Also, increments the TASKS_STATUS_UPDATED_TOTAL metric for each status update.
- class core.interfaces.StorageInterface(*args, **kwargs)[исходный код]
Базовые классы:
ProtocolStorage interface for goals and tasks with multi-goal support.
- create_spreadsheet(user_id)[исходный код]
Create a new spreadsheet for user.
- delete_spreadsheet(user_id)[исходный код]
Delete user’s spreadsheet.
- get_all_goals(user_id)[исходный код]
Get all goals for a user.
- get_goal_by_id(user_id, goal_id)[исходный код]
Get a specific goal by ID.
- get_active_goals(user_id)[исходный код]
Get only active goals.
- get_active_goals_count(user_id)[исходный код]
Count active goals.
- get_next_goal_id(user_id)[исходный код]
Get next available goal ID.
- save_goal_info(user_id, goal)[исходный код]
Save or update goal information.
- update_goal_status(user_id, goal_id, status)[исходный код]
Update goal status.
- update_goal_progress(user_id, goal_id, progress)[исходный код]
Update goal progress percentage.
- update_goal_priority(user_id, goal_id, priority)[исходный код]
Update goal priority.
- archive_goal(user_id, goal_id)[исходный код]
Archive a goal.
- delete_goal(user_id, goal_id)[исходный код]
Delete a goal completely.
- save_plan(user_id, goal_id, plan)[исходный код]
Save plan for a goal.
- get_plan_for_goal(user_id, goal_id)[исходный код]
Get plan for a specific goal.
- get_task_for_date(user_id, goal_id, date)[исходный код]
Get task for specific goal and date.
- get_all_tasks_for_date(user_id, date)[исходный код]
Get all tasks for a specific date.
- update_task_status(user_id, goal_id, date, status)[исходный код]
Update task status.
- batch_update_task_statuses(user_id, updates)[исходный код]
Batch update multiple task statuses.
- get_goal_statistics(user_id, goal_id)[исходный код]
Get statistics for a specific goal.
- get_overall_statistics(user_id)[исходный код]
Get overall statistics for all goals.
- get_goal_info(user_id)[исходный код]
Get goal info (legacy, single goal).
- save_goal_and_plan(user_id, goal_data, plan)[исходный код]
Save goal and plan (legacy, single goal).
- get_status_message(user_id)[исходный код]
Get status message (legacy, single goal).
- class core.interfaces.AsyncStorageInterface(*args, **kwargs)[исходный код]
Базовые классы:
ProtocolAsync storage interface for goals and tasks with multi-goal support.
- async create_spreadsheet(user_id)[исходный код]
Create a new spreadsheet for user.
- async delete_spreadsheet(user_id)[исходный код]
Delete user’s spreadsheet.
- async get_all_goals(user_id)[исходный код]
Get all goals for a user.
- async get_goal_by_id(user_id, goal_id)[исходный код]
Get a specific goal by ID.
- async get_active_goals(user_id)[исходный код]
Get only active goals.
- async get_active_goals_count(user_id)[исходный код]
Count active goals.
- async get_next_goal_id(user_id)[исходный код]
Get next available goal ID.
- async save_goal_info(user_id, goal)[исходный код]
Save or update goal information.
- async update_goal_status(user_id, goal_id, status)[исходный код]
Update goal status.
- async update_goal_progress(user_id, goal_id, progress)[исходный код]
Update goal progress percentage.
- async update_goal_priority(user_id, goal_id, priority)[исходный код]
Update goal priority.
- async archive_goal(user_id, goal_id)[исходный код]
Archive a goal.
- async delete_goal(user_id, goal_id)[исходный код]
Delete a goal completely.
- async save_plan(user_id, goal_id, plan)[исходный код]
Save plan for a goal.
- async get_plan_for_goal(user_id, goal_id)[исходный код]
Get plan for a specific goal.
- async get_task_for_date(user_id, goal_id, date)[исходный код]
Get task for specific goal and date.
- async get_all_tasks_for_date(user_id, date)[исходный код]
Get all tasks for a specific date.
- async update_task_status(user_id, goal_id, date, status)[исходный код]
Update task status.
- async batch_update_task_statuses(user_id, updates)[исходный код]
Batch update multiple task statuses.
- async get_goal_statistics(user_id, goal_id)[исходный код]
Get statistics for a specific goal.
- async get_overall_statistics(user_id)[исходный код]
Get overall statistics for all goals.
- async get_goal_info(user_id)[исходный код]
Get goal info (legacy, single goal).
- async save_goal_and_plan(user_id, goal_data, plan)[исходный код]
Save goal and plan (legacy, single goal).
- async get_status_message(user_id)[исходный код]
Get status message (legacy, single goal).
- async get_task_for_today(user_id)[исходный код]
Get today’s task (legacy, single goal).
- async update_task_status_old(user_id, date, status)[исходный код]
Update task status (legacy, single goal).
- class core.interfaces.LLMInterface(*args, **kwargs)[исходный код]
Базовые классы:
ProtocolInterface for LLM interactions.
- generate_plan(goal_text, deadline_str, available_time_str)[исходный код]
Generate a plan for achieving a goal.
- generate_motivation(goal_info, progress_summary)[исходный код]
Generate motivational message based on goal and progress.
- class core.interfaces.AsyncLLMInterface(*args, **kwargs)[исходный код]
Базовые классы:
ProtocolAsync interface for LLM interactions.
- async generate_plan(goal_text, deadline_str, available_time_str)[исходный код]
Generate a plan for achieving a goal.
- async generate_motivation(goal_info, progress_summary)[исходный код]
Generate motivational message based on goal and progress.
Prometheus metrics definitions for the Target Assistant Bot.
This module defines various counters, gauges, and histograms used for monitoring the application’s performance and behavior.