154 lines
4.6 KiB
Markdown
154 lines
4.6 KiB
Markdown
## 🚀 Быстрый старт - OpenAI интеграция
|
||
|
||
### Шаг 1️⃣: Получите OpenAI API ключ
|
||
|
||
1. Перейдите на https://platform.openai.com/account/api-keys
|
||
2. Создайте новый ключ (если ещё нет)
|
||
3. Скопируйте ключ (формат: `sk-...`)
|
||
|
||
### Шаг 2️⃣: Настройте конфигурацию
|
||
|
||
Отредактируйте файл `PerfReviewSummarizer.Api/appsettings.json`:
|
||
|
||
```json
|
||
{
|
||
"Logging": {
|
||
"LogLevel": {
|
||
"Default": "Information",
|
||
"Microsoft.AspNetCore": "Warning"
|
||
}
|
||
},
|
||
"AllowedHosts": "*",
|
||
"GitRepository": {
|
||
"DefaultPath": "."
|
||
},
|
||
"OpenAI": {
|
||
"ApiKey": "sk-xxx... (вставьте ваш API ключ здесь)"
|
||
}
|
||
}
|
||
```
|
||
|
||
### Шаг 3️⃣: Запустите приложение
|
||
|
||
```bash
|
||
cd PerfReviewSummarizer.Api
|
||
dotnet run
|
||
```
|
||
|
||
### Шаг 4️⃣: Используйте приложение
|
||
|
||
Откройте в браузере: **http://localhost:5000**
|
||
|
||
1. Выберите вкладку **"AI Summary (OpenAI)"**
|
||
2. Укажите параметры:
|
||
- Путь к репозиторию (по умолчанию `.` - текущая папка)
|
||
- Период (квартал, полугодие или произвольный период)
|
||
3. Нажмите **"Получить AI Summary"**
|
||
4. Получите красивое резюме от GPT! 🎉
|
||
|
||
### 📍 Доступные адреса
|
||
|
||
- **Веб-интерфейс**: http://localhost:5000
|
||
- **Swagger документация**: http://localhost:5000/swagger
|
||
- **API Summary**: POST http://localhost:5000/api/summary/ai
|
||
|
||
### 🔧 Альтернативный способ конфигурации (переменные окружения)
|
||
|
||
Вместо `appsettings.json` можно использовать переменные окружения:
|
||
|
||
**Windows PowerShell:**
|
||
```powershell
|
||
$env:OPENAI__APIKEY = "sk-..."
|
||
dotnet run
|
||
```
|
||
|
||
**Windows CMD:**
|
||
```cmd
|
||
set OPENAI__APIKEY=sk-...
|
||
dotnet run
|
||
```
|
||
|
||
**Linux/Mac:**
|
||
```bash
|
||
export OPENAI__APIKEY=sk-...
|
||
dotnet run
|
||
```
|
||
|
||
### 🧪 Тестирование API
|
||
|
||
**Через curl:**
|
||
```bash
|
||
curl -X POST http://localhost:5000/api/summary/ai `
|
||
-H "Content-Type: application/json" `
|
||
-d '{"period":"quarter"}'
|
||
```
|
||
|
||
**Через PowerShell:**
|
||
```powershell
|
||
$body = @{ period = "quarter" } | ConvertTo-Json
|
||
Invoke-RestMethod -Uri "http://localhost:5000/api/summary/ai" `
|
||
-Method Post -Body $body -ContentType "application/json"
|
||
```
|
||
|
||
### ⚡ Что происходит под капотом?
|
||
|
||
1. Приложение читает коммиты из git репозитория
|
||
2. Извлекает сообщения коммитов
|
||
3. Отправляет их на OpenAI API с промптом
|
||
4. GPT анализирует и генерирует резюме на русском языке
|
||
5. Возвращает результат в красивом формате
|
||
|
||
### 🎯 Примеры использования
|
||
|
||
**Сценарий 1: Резюме за текущий квартал**
|
||
```json
|
||
POST /api/summary/ai
|
||
{
|
||
"period": "quarter"
|
||
}
|
||
```
|
||
|
||
**Сценарий 2: Резюме за полугодие для конкретного репозитория**
|
||
```json
|
||
POST /api/summary/ai
|
||
{
|
||
"repositoryPath": "C:/Projects/MyProject",
|
||
"period": "halfyear"
|
||
}
|
||
```
|
||
|
||
**Сценарий 3: Резюме за произвольный период**
|
||
```json
|
||
POST /api/summary/ai
|
||
{
|
||
"startDate": "2024-01-01",
|
||
"endDate": "2024-01-31"
|
||
}
|
||
```
|
||
|
||
### ❌ Решение проблем
|
||
|
||
**Ошибка: "OpenAI API ключ не найден в конфигурации"**
|
||
- ✅ Проверьте что API ключ добавлен в `appsettings.json`
|
||
- ✅ Убедитесь что ключ начинается с `sk-`
|
||
|
||
**Ошибка: "Ошибка OpenAI API: 401"**
|
||
- ✅ Ключ невалиден или истёк - получите новый на https://platform.openai.com/account/api-keys
|
||
- ✅ Проверьте что нет пробелов в начале/конце ключа
|
||
|
||
**Ошибка: "Ошибка OpenAI API: 429"**
|
||
- ✅ Слишком много запросов - подождите несколько минут
|
||
|
||
**Ошибка: "Ошибка OpenAI API: 500"**
|
||
- ✅ Проблема на стороне OpenAI - попробуйте позже
|
||
|
||
### 📚 Дополнительная информация
|
||
|
||
- [OpenAI документация](https://platform.openai.com/docs)
|
||
- [Pricing](https://openai.com/pricing) - GPT-3.5-turbo очень доступный
|
||
- [API Status](https://status.openai.com/)
|
||
|
||
---
|
||
|
||
**Наслаждайтесь автоматическим анализом ваших коммитов! 🎉**
|