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

2.3 KiB
Raw Permalink Blame History

Quick Reference: OpenAI ↔ Gemini Switcher

Переключение провайдера (30 сек)

Файл: appsettings.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 ключ и выбор провайдера

Пример использования в коде

// Простейший способ - просто 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:
"Gemini": {
  "ApiKey": "AIza_YOUR_KEY_HERE"
}

Поддерживаемые модели Gemini

  • gemini-1.5-flash (быстрая, дешёвая, рекомендуется)
  • gemini-1.5-pro (мощнее, дороже)
  • gemini-2.0-flash (новая версия)

Меняется в appsettings.json:

"Gemini": {
  "Model": "gemini-1.5-flash"
}

Обратная совместимость

Старый код с IOpenAiService всё ещё работает:

public async Task SomeMethod(IOpenAiService service)
{
    // Работает как раньше!
    var summary = await service.GenerateSummaryFromCommitMessagesAsync(messages);
}