fixed reminder
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import json
|
||||
from datetime import date, datetime, timedelta, timezone
|
||||
from typing import Any
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
@@ -281,8 +282,39 @@ TOOL_DEFINITIONS: list[dict[str, Any]] = [
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_fitness_summary",
|
||||
"description": "Сводка фитнеса за сегодня: ккал, БЖУ, вода, тренировки.",
|
||||
"parameters": {"type": "object", "properties": {}, "required": []},
|
||||
"description": (
|
||||
"Сводка фитнеса за день: ккал, БЖУ, вода, еда, тренировки. "
|
||||
"Без даты — сегодня; date=YYYY-MM-DD или days_ago=1 (вчера)."
|
||||
),
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"date": {"type": "string", "description": "Дата YYYY-MM-DD"},
|
||||
"days_ago": {
|
||||
"type": "integer",
|
||||
"description": "0 сегодня, 1 вчера, 2 позавчера…",
|
||||
},
|
||||
},
|
||||
"required": [],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_fitness_history",
|
||||
"description": (
|
||||
"Краткая история за несколько дней (ккал, вода, тренировки по дням). "
|
||||
"«На прошлой неделе», «за 7 дней»."
|
||||
),
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"days": {"type": "integer", "description": "Сколько дней, по умолчанию 7"},
|
||||
"end_date": {"type": "string", "description": "Конец периода YYYY-MM-DD, по умолчанию сегодня"},
|
||||
},
|
||||
"required": [],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -778,7 +810,22 @@ async def execute_tool(
|
||||
arguments.get("summary", ""),
|
||||
)
|
||||
elif name == "get_fitness_summary":
|
||||
result = fitness.get_daily_summary()
|
||||
day: date | None = None
|
||||
if arguments.get("date"):
|
||||
day = date.fromisoformat(str(arguments["date"]))
|
||||
elif arguments.get("days_ago") is not None:
|
||||
day = datetime.now(timezone.utc).date() - timedelta(
|
||||
days=int(arguments["days_ago"])
|
||||
)
|
||||
result = fitness.get_daily_summary(day)
|
||||
elif name == "get_fitness_history":
|
||||
end_day = None
|
||||
if arguments.get("end_date"):
|
||||
end_day = date.fromisoformat(str(arguments["end_date"]))
|
||||
result = fitness.get_history(
|
||||
days=int(arguments.get("days") or 7),
|
||||
end_day=end_day,
|
||||
)
|
||||
elif name == "set_fitness_profile":
|
||||
updates = {
|
||||
k: arguments[k]
|
||||
|
||||
Reference in New Issue
Block a user