6.8 KiB
6.8 KiB
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: ...", ...]
}
🎯 Преимущества
- Автоматическое резюме - GPT анализирует все коммиты и создаёт связный текст
- Быстрая обработка - результат за несколько секунд
- Русский язык - резюме на русском для удобства
- Простая интеграция - используется стандартный OpenAI API
- Надёжная обработка ошибок - информативные сообщения об ошибках
- Конфигурируемо - можно менять модель, температуру и другие параметры
🔐 Безопасность
- API ключ хранится в конфигурации (не в коде)
- Используется HTTPS для коммуникации с OpenAI
- Поддержка переменных окружения для CI/CD
- Валидация наличия API ключа при инициализации сервиса
📦 Изменённые файлы
PerfReviewSummarizer.Api.csproj- добавлен пакет OpenAIProgram.cs- регистрация OpenAI сервисаappsettings.json- конфигурация OpenAIwwwroot/index.html- новые вкладки и формыwwwroot/styles.css- стили для табов и AI блокаwwwroot/app.js- логика табов и обработка новых формREADME.md- обновленная документация
✨ Новые файлы
Services/IOpenAiService.cs- интерфейс сервисаServices/OpenAiService.cs- реализация сервисаModels/OpenAiSummaryRequest.cs- модели для OpenAI
Проект успешно компилируется и готов к использованию!