mirror of
https://github.com/thecyberlearn/quantum-ai.git
synced 2026-08-18 23:32:59 +00:00
🚀 Major improvements to agent system: ## Wallet Management ✅ - Move wallet deduction to AFTER successful processing (not before) - Add real-time wallet balance updates in frontend - Prevent users from losing money on failed requests - Update both data_analyzer and weather_reporter processors ## Data Analyzer Agent 📊 - Fix N8N integration to handle array response format - Add binary PDF file upload (multipart/form-data) - Implement real-time AJAX results display below form - Add wallet balance updates after successful processing - Support continuous workflow with "Analyze Another File" ## Weather Reporter Agent 🌤️ - Update price from 2.5 AED to 2.0 AED - Fix results display (was using page reload, now AJAX) - Add real-time wallet balance updates - Implement dynamic results rendering below form - Add "Get Another Report" functionality ## Template System 🎨 - Update agent generator templates with correct wallet flow - Add data-wallet-balance attributes for easy targeting - Fix JavaScript querySelector errors - Implement proper error handling and logging ## Documentation 📚 - Update CLAUDE.md with wallet best practices - Add examples of current production agents - Document required JavaScript functions - Update pricing information and modern agent features - Add gitignore entries for nextjs/ and netcop-ai-hub/ ## Frontend JavaScript 💻 - Add updateWalletBalance() function for real-time updates - Implement displayResults() for dynamic content rendering - Add proper error handling with user-friendly messages - Support continuous workflow without page refresh 🎉 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
from django.db import models
|
|
from decimal import Decimal
|
|
from agent_base.models import BaseAgentRequest, BaseAgentResponse
|
|
|
|
|
|
class DataAnalysisAgentRequest(BaseAgentRequest):
|
|
"""Data Analysis Agent request tracking"""
|
|
|
|
# Agent-specific request fields
|
|
data_file = models.FileField(upload_to='uploads/data_analyzer/', blank=True)
|
|
analysis_type = models.CharField(
|
|
max_length=50,
|
|
choices=[
|
|
('summary', 'Summary Analysis'),
|
|
('detailed', 'Detailed Analysis'),
|
|
('statistical', 'Statistical Analysis'),
|
|
],
|
|
default='summary'
|
|
)
|
|
# Legacy field (keeping for compatibility)
|
|
input_text = models.TextField(blank=True, null=True)
|
|
|
|
|
|
class Meta:
|
|
db_table = 'data_analyzer_requests'
|
|
verbose_name = 'Data Analysis Agent Request'
|
|
verbose_name_plural = 'Data Analysis Agent Requests'
|
|
|
|
|
|
class DataAnalysisAgentResponse(BaseAgentResponse):
|
|
"""Data Analysis Agent response storage"""
|
|
|
|
request = models.OneToOneField(
|
|
DataAnalysisAgentRequest,
|
|
on_delete=models.CASCADE,
|
|
related_name='response'
|
|
)
|
|
|
|
# Agent-specific response fields
|
|
analysis_results = models.JSONField(default=dict, blank=True)
|
|
insights_summary = models.TextField(blank=True)
|
|
report_text = models.TextField(blank=True)
|
|
raw_response = models.JSONField(default=dict, blank=True)
|
|
# Legacy field (keeping for compatibility)
|
|
output_text = models.TextField(blank=True, null=True)
|
|
|
|
|
|
class Meta:
|
|
db_table = 'data_analyzer_responses'
|
|
verbose_name = 'Data Analysis Agent Response'
|
|
verbose_name_plural = 'Data Analysis Agent Responses' |