Add API usage tracking and dynamic task reloading
Features: - Usage tracking system (usage_tracker.py) - Tracks input/output tokens per API call - Calculates costs with support for cache pricing - Stores data in usage_data.json (gitignored) - Integrated into llm_interface.py - Dynamic task scheduler reloading - Auto-detects YAML changes every 60s - No restart needed for new tasks - reload_tasks() method for manual refresh - Example cost tracking scheduled task - Daily API usage report - Budget tracking ($5/month target) - Disabled by default in scheduled_tasks.yaml Improvements: - Fixed tool_use/tool_result pair splitting bug (CRITICAL) - Added thread safety to agent.chat() - Fixed N+1 query problem in hybrid search - Optimized database batch queries - Added conversation history pruning (50 messages max) Updated .gitignore: - Exclude user profiles (memory_workspace/users/*.md) - Exclude usage data (usage_data.json) - Exclude vector index (vectors.usearch) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -224,12 +224,22 @@ class TelegramAdapter(BaseAdapter):
|
||||
else None
|
||||
)
|
||||
|
||||
sent_message = await self.bot.send_message(
|
||||
chat_id=chat_id,
|
||||
text=chunk,
|
||||
parse_mode=parse_mode,
|
||||
reply_to_message_id=reply_to_id,
|
||||
)
|
||||
try:
|
||||
sent_message = await self.bot.send_message(
|
||||
chat_id=chat_id,
|
||||
text=chunk,
|
||||
parse_mode=parse_mode,
|
||||
reply_to_message_id=reply_to_id,
|
||||
)
|
||||
except TelegramError:
|
||||
# Markdown parse errors are common with LLM-generated
|
||||
# text (unbalanced *, _, etc). Fall back to plain text.
|
||||
sent_message = await self.bot.send_message(
|
||||
chat_id=chat_id,
|
||||
text=chunk,
|
||||
parse_mode=None,
|
||||
reply_to_message_id=reply_to_id,
|
||||
)
|
||||
|
||||
results.append({
|
||||
"message_id": sent_message.message_id,
|
||||
|
||||
Reference in New Issue
Block a user