This commit is contained in:
Bryce
2025-08-11 06:37:24 -07:00
parent 0dac428217
commit cc1523cbb2
6 changed files with 92 additions and 173 deletions

View File

@@ -60,37 +60,6 @@ class AIService:
return None
def generate_single_rule(self, folder_name: str, folder_type: str = 'destination', rule_text: str ='') -> Tuple[Optional[str], Optional[Dict]]:
"""Generate a single email organization rule using AI."""
prompt = self._build_single_rule_prompt(folder_name, folder_type, rule_text)
payload = {
'model': self.model,
'messages': [
{'role': 'system', 'content': 'You are an expert email organizer assistant.'},
{'role': 'user', 'content': prompt}
],
'max_tokens': 800,
'temperature': 0.7
}
result = self._make_request('chat/completions', payload)
if not result or 'choices' not in result or not result['choices']:
return None, {'error': 'No response from AI service'}
try:
rule_text = result['choices'][0]['message']['content'].strip()
quality_score = self._assess_rule_quality(rule_text, folder_name, folder_type)
return rule_text, {
'quality_score': quality_score,
'model_used': self.model,
'generated_at': datetime.utcnow().isoformat()
}
except (KeyError, IndexError) as e:
return None, {'error': f'Failed to parse AI response: {str(e)}'}
def generate_multiple_rules(self, folder_name: str, folder_type: str = 'destination', rule_text:str = '', count: int = 3) -> Tuple[Optional[List[Dict]], Optional[Dict]]:
"""Generate multiple email organization rule options using AI."""
prompt = self._build_multiple_rules_prompt(folder_name, folder_type, rule_text, count)