Files
PerfReviewSummarizer/OPENAI_INTEGRATION.md
ZakirovT 057e1f526b init
2026-01-22 00:45:41 +03:00

6.8 KiB
Raw Permalink Blame History

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 ключа

// appsettings.json
{
  "OpenAI": {
    "ApiKey": "sk-... (ваш OpenAI API ключ)"
  }
}

2. Через веб-интерфейс

  • Откройте http://localhost:5000
  • Выберите вкладку "AI Summary (OpenAI)"
  • Укажите параметры (путь к репо, период)
  • Нажмите "Получить AI Summary"
  • Получите резюме от GPT

3. Через API

curl -X POST http://localhost:5000/api/summary/ai \
  -H "Content-Type: application/json" \
  -d '{"period": "quarter"}'

4. Через PowerShell

$body = @{ period = "quarter" } | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:5000/api/summary/ai" `
  -Method Post -Body $body -ContentType "application/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

Проект успешно компилируется и готов к использованию!