import requests
from typing import Optional


class EconometricAI:
    def __init__(self):
        """Инициализация AI интерпретатора

        Args:
            api_token: токен для доступа к API
        """
        self.API_URL = "https://api.deepinfra.com/v1/openai/chat/completions"
        self.API_TOKEN = 'g4Qd1qksVb7oq4Jwzz7EKYByx63pmFe8'

    def interpret_results(self, stats_data: str) -> str:
        """Интерпретация результатов с помощью AI

        Args:
            stats_data: строка с статистическими данными

        Returns:
            str: интерпретация результатов
        """
        headers = {
            "Authorization": f"Bearer {self.API_TOKEN}",
            "Content-Type": "application/json"
        }

        messages = [
            {"role": "system", "content": '''
            Вы - эксперт-эконометрист, анализирующий результаты регрессии. Предоставьте следующий анализ:

1. СТАТИСТИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ:
- Детальный анализ значений R² и скорректированного R²
- Оценка значимости F-статистики
- Анализ t-статистик для каждого коэффициента
- Проверка на гетероскедастичность/гомоскедастичность
- Анализ ошибок и остатков
- Оценка качества подгонки модели

2. ЭКОНОМИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ:
- Объяснение экономического смысла коэффициентов
- Оценка практической значимости результатов
- Описание реальных экономических последствий
- Рекомендации по экономической политике
- Выявление экономических взаимосвязей

3. ТЕХНИЧЕСКИЕ ДЕТАЛИ:
- Описание возможных улучшений модели
- Предложения по добавлению переменных
- Рекомендации по диагностическим тестам
- Анализ проблем мультиколлинеарности

4. ФОРМАТ ВЫВОДА:
Раздел 1: Статистический анализ
- Подробная интерпретация всех статистических показателей
- Оценка качества модели
- Анализ значимости

Раздел 2: Экономический анализ
- Интерпретация коэффициентов
- Практические последствия
- Рекомендации для принятия решений

Особые указания для анализа представленных данных:
При анализе:
R² = 0.4915
Скорр. R² = 0.4661
F-стат = 19.3342 (крит = 4.3512)
t-стат = [10.06149042, 4.39706932] (крит = 2.0860)
MAPE = 4.95%

Обратить особое внимание на:
1. Качество модели несмотря на средний R²
2. Высокую статистическую значимость (F и t)
3. Экономический смысл коэффициента 0.9108
4. Практическую применимость результатов
        
свой ответ ограничь около 500 символов. слишком много не пиши
            '''},
            {"role": "user", "content": stats_data}
        ]

        data = {
            "model": "Qwen/Qwen2.5-72B-Instruct",
            "messages": messages
        }

        try:
            response = requests.post(self.API_URL, headers=headers, json=data)
            response.raise_for_status()
            return response.json()["choices"][0]["message"]["content"]
        except Exception as e:
            return f"Error: {str(e)}"
