## OpenAI Интеграция - Резюме изменений ### 📋 Что было добавлено #### 1. **OpenAI Сервис** (`Services/OpenAiService.cs`) - Сервис для работы с OpenAI API - Метод `GenerateSummaryFromCommitMessagesAsync()` - генерирует резюме на основе сообщений коммитов - Использует GPT-3.5-turbo модель для анализа - Автоматическая обработка ошибок и валидация API ключа #### 2. **Интерфейс OpenAI Сервиса** (`Services/IOpenAiService.cs`) - `GenerateSummaryFromCommitsAsync()` - принимает список CommitInfo объектов - `GenerateSummaryFromCommitMessagesAsync()` - принимает список строк с сообщениями коммитов #### 3. **Модели данных** (`Models/OpenAiSummaryRequest.cs`, `Models/OpenAiSummaryResponse.cs`) - `OpenAiSummaryRequest` - модель для запроса AI саммари с параметрами периода - `OpenAiSummaryResponse` - модель для ответа с резюме, информацией о периоде и количеством коммитов #### 4. **API Endpoint** (`POST /api/summary/ai`) - Новый endpoint для получения AI summary - Принимает те же параметры, что и традиционный `/api/summary` - Возвращает саммари от OpenAI вместе с метаданными #### 5. **Веб-интерфейс** - **Новые вкладки**: "Traditional Summary" и "AI Summary (OpenAI)" - **Форма AI Summary**: идентична традиционной форме для удобства - **Результаты AI Summary**: специальное оформление с блоком для резюме - **JavaScript логика табов**: переключение между вкладками и обработка двух разных API #### 6. **Стили** - CSS для табов (`.tabs`, `.tab-button`, `.tab-content`) - CSS для AI саммари блока (`.ai-summary-box`, `.ai-summary-text`, `.commits-count`) - Адаптивный дизайн для мобильных устройств #### 7. **Конфигурация** - Добавлена секция `"OpenAI": { "ApiKey": "..." }` в `appsettings.json` - Пример конфигурации для OpenAI API #### 8. **Документация** (`README.md`) - Подробное описание нового функционала - Инструкции по получению OpenAI API ключа - Примеры использования нового endpoint через curl и PowerShell - Информация о конфигурации через переменные окружения ### 🔧 Технические детали #### Используемый пакет - OpenAI 2.8.0 (версия совместима с .NET 10) #### API Model - Модель: `gpt-3.5-turbo` - Температура: 0.7 (баланс между креативностью и точностью) - Макс токены: 1000 (достаточно для полного резюме) #### Формат запроса к OpenAI ``` POST https://api.openai.com/v1/chat/completions Authorization: Bearer {API_KEY} Content-Type: application/json { "model": "gpt-3.5-turbo", "messages": [...], "temperature": 0.7, "max_tokens": 1000 } ``` ### ✅ Как использовать #### 1. Настройка API ключа ```json // appsettings.json { "OpenAI": { "ApiKey": "sk-... (ваш OpenAI API ключ)" } } ``` #### 2. Через веб-интерфейс - Откройте `http://localhost:5000` - Выберите вкладку "AI Summary (OpenAI)" - Укажите параметры (путь к репо, период) - Нажмите "Получить AI Summary" - Получите резюме от GPT #### 3. Через API ```bash curl -X POST http://localhost:5000/api/summary/ai \ -H "Content-Type: application/json" \ -d '{"period": "quarter"}' ``` #### 4. Через PowerShell ```powershell $body = @{ period = "quarter" } | ConvertTo-Json Invoke-RestMethod -Uri "http://localhost:5000/api/summary/ai" ` -Method Post -Body $body -ContentType "application/json" ``` ### 📝 Пример результата ```json { "summary": "За текущий квартал была проведена активная разработка с фокусом на новые функции и улучшение производительности. Основные направления работы включили...", "periodInfo": { "startDate": "2024-01-01T00:00:00", "endDate": "2024-03-31T00:00:00", "description": "С 2024-01-01 по 2024-03-31" }, "commitsCount": 150, "commitMessages": ["Fix: ...", "Feat: ...", ...] } ``` ### 🎯 Преимущества 1. **Автоматическое резюме** - GPT анализирует все коммиты и создаёт связный текст 2. **Быстрая обработка** - результат за несколько секунд 3. **Русский язык** - резюме на русском для удобства 4. **Простая интеграция** - используется стандартный OpenAI API 5. **Надёжная обработка ошибок** - информативные сообщения об ошибках 6. **Конфигурируемо** - можно менять модель, температуру и другие параметры ### 🔐 Безопасность - API ключ хранится в конфигурации (не в коде) - Используется HTTPS для коммуникации с OpenAI - Поддержка переменных окружения для CI/CD - Валидация наличия API ключа при инициализации сервиса ### 📦 Изменённые файлы 1. `PerfReviewSummarizer.Api.csproj` - добавлен пакет OpenAI 2. `Program.cs` - регистрация OpenAI сервиса 3. `appsettings.json` - конфигурация OpenAI 4. `wwwroot/index.html` - новые вкладки и формы 5. `wwwroot/styles.css` - стили для табов и AI блока 6. `wwwroot/app.js` - логика табов и обработка новых форм 7. `README.md` - обновленная документация ### ✨ Новые файлы 1. `Services/IOpenAiService.cs` - интерфейс сервиса 2. `Services/OpenAiService.cs` - реализация сервиса 3. `Models/OpenAiSummaryRequest.cs` - модели для OpenAI --- **Проект успешно компилируется и готов к использованию!**