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

70 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Quick Reference: OpenAI ↔ Gemini Switcher
## Переключение провайдера (30 сек)
**Файл:** `appsettings.json`
```json
"AiProvider": {
"Default": "openai" // ← Измените на "gemini" для Gemini
}
```
## Файлы которые были добавлены/изменены
| Файл | Статус | Описание |
|------|--------|----------|
| `Services/IAiService.cs` | ✨ Новый | Общий интерфейс для всех AI сервисов |
| `Services/GeminiService.cs` | ✨ Новый | Реализация Google Gemini |
| `Services/AiServiceFactory.cs` | ✨ Новый | Фабрика для выбора провайдера |
| `Services/IOpenAiService.cs` | 🔄 Обновлён | Теперь наследуется от IAiService |
| `Services/OpenAiService.cs` | 🔄 Обновлён | Реализует оба интерфейса |
| `Program.cs` | 🔄 Обновлён | Регистрация новых сервисов |
| `appsettings.json` | 🔄 Обновлён | Добавлены Gemini ключ и выбор провайдера |
## Пример использования в коде
```csharp
// Простейший способ - просто injectить IAiService
public async Task SomeMethod(IAiService aiService)
{
var summary = await aiService.GenerateSummaryFromCommitMessagesAsync(messages);
Console.WriteLine(summary);
}
```
## Получение Gemini API ключа (бесплатно)
1. Перейти: https://makersuite.google.com/app/apikey
2. Нажать "Create API Key"
3. Вставить в `appsettings.json`:
```json
"Gemini": {
"ApiKey": "AIza_YOUR_KEY_HERE"
}
```
## Поддерживаемые модели Gemini
- `gemini-1.5-flash` (быстрая, дешёвая, рекомендуется)
- `gemini-1.5-pro` (мощнее, дороже)
- `gemini-2.0-flash` (новая версия)
Меняется в `appsettings.json`:
```json
"Gemini": {
"Model": "gemini-1.5-flash"
}
```
## Обратная совместимость ✅
Старый код с `IOpenAiService` всё ещё работает:
```csharp
public async Task SomeMethod(IOpenAiService service)
{
// Работает как раньше!
var summary = await service.GenerateSummaryFromCommitMessagesAsync(messages);
}
```