2.3 KiB
2.3 KiB
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 ключа (бесплатно)
- Перейти: https://makersuite.google.com/app/apikey
- Нажать "Create API Key"
- Вставить в
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);
}