Skip to content

Commit e35f0c0

Browse files
committed
feat: add gemini 2.5 pro model
1 parent 1ec5e3a commit e35f0c0

File tree

3 files changed

+24
-22
lines changed

3 files changed

+24
-22
lines changed

src/main/kotlin/ee/carlrobert/codegpt/CodeGPTProjectActivity.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ class CodeGPTProjectActivity : ProjectActivity {
2424
override suspend fun execute(project: Project) {
2525
EditorActionsUtil.refreshActions()
2626

27-
val settings = service<GeneralSettings>().state
28-
if (settings.selectedService == ServiceType.CODEGPT) {
29-
project.service<CodeGPTService>().syncUserDetailsAsync()
30-
}
27+
project.service<CodeGPTService>().syncUserDetailsAsync()
3128

3229
if (!ApplicationManager.getApplication().isUnitTestMode
3330
&& service<ConfigurationSettings>().state.checkForNewScreenshots

src/main/kotlin/ee/carlrobert/codegpt/settings/service/codegpt/CodeGPTAvailableModels.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ object CodeGPTAvailableModels {
1616
return when (pricingPlan) {
1717
null, ANONYMOUS -> listOf(
1818
CodeGPTModel("o3-mini", "o3-mini", Icons.OpenAI, INDIVIDUAL),
19-
CodeGPTModel("GPT-4o", "gpt-4o", Icons.OpenAI, INDIVIDUAL),
19+
CodeGPTModel("Gemini 2.5 Pro", "gemini-pro-2.5", Icons.Google, INDIVIDUAL),
2020
CodeGPTModel("Claude 3.7 Sonnet", "claude-3.7-sonnet", Icons.Anthropic, INDIVIDUAL),
2121
CodeGPTModel("DeepSeek R1", "deepseek-r1", Icons.DeepSeek, INDIVIDUAL),
2222
CodeGPTModel("Gemini 2.0 Flash", "gemini-flash-2.0", Icons.Google, ANONYMOUS),
@@ -25,22 +25,23 @@ object CodeGPTAvailableModels {
2525

2626
FREE -> listOf(
2727
CodeGPTModel("o3-mini", "o3-mini", Icons.OpenAI, INDIVIDUAL),
28-
CodeGPTModel("GPT-4o", "gpt-4o", Icons.OpenAI, INDIVIDUAL),
28+
CodeGPTModel("Gemini 2.5 Pro", "gemini-pro-2.5", Icons.Google, INDIVIDUAL),
2929
CodeGPTModel("Claude 3.7 Sonnet", "claude-3.7-sonnet", Icons.Anthropic, INDIVIDUAL),
3030
CodeGPTModel("DeepSeek R1", "deepseek-r1", Icons.DeepSeek, INDIVIDUAL),
3131
CodeGPTModel("DeepSeek V3", "deepseek-v3", Icons.DeepSeek, FREE),
3232
CodeGPTModel("Qwen 2.5 Coder (32B)", "qwen-2.5-32b-chat", Icons.Qwen, FREE),
3333
CodeGPTModel("Llama 3.1 (405B)", "llama-3.1-405b", Icons.Meta, FREE),
3434
CodeGPTModel("Gemini 2.0 Flash", "gemini-flash-2.0", Icons.Google, ANONYMOUS),
35+
CodeGPTModel("GPT-4o mini", "gpt-4o-mini", Icons.OpenAI, ANONYMOUS),
3536
)
3637

3738
INDIVIDUAL -> listOf(
3839
CodeGPTModel("o3-mini", "o3-mini", Icons.OpenAI, INDIVIDUAL),
3940
CodeGPTModel("GPT-4o", "gpt-4o", Icons.OpenAI, INDIVIDUAL),
4041
CodeGPTModel("Claude 3.7 Sonnet", "claude-3.7-sonnet", Icons.Anthropic, INDIVIDUAL),
42+
CodeGPTModel("Gemini 2.5 Pro", "gemini-pro-2.5", Icons.Google, INDIVIDUAL),
4143
CodeGPTModel("DeepSeek R1", "deepseek-r1", Icons.DeepSeek, INDIVIDUAL),
4244
CodeGPTModel("DeepSeek V3", "deepseek-v3", Icons.DeepSeek, FREE),
43-
CodeGPTModel("Gemini 2.0 Flash", "gemini-flash-2.0", Icons.Google, ANONYMOUS),
4445
)
4546
}
4647
}
@@ -51,7 +52,7 @@ object CodeGPTAvailableModels {
5152
CodeGPTModel("GPT-4o", "gpt-4o", Icons.OpenAI, INDIVIDUAL),
5253
CodeGPTModel("GPT-4o mini", "gpt-4o-mini", Icons.OpenAI, ANONYMOUS),
5354
CodeGPTModel("Claude 3.7 Sonnet", "claude-3.7-sonnet", Icons.Anthropic, INDIVIDUAL),
54-
CodeGPTModel("Gemini 1.5 Pro", "gemini-pro-1.5", Icons.Google, INDIVIDUAL),
55+
CodeGPTModel("Gemini 2.5 Pro", "gemini-pro-2.5", Icons.Google, INDIVIDUAL),
5556
CodeGPTModel("Gemini 2.0 Flash", "gemini-flash-2.0", Icons.Google, ANONYMOUS),
5657
CodeGPTModel("Qwen 2.5 Coder (32B)", "qwen-2.5-32b-chat", Icons.Qwen, FREE),
5758
CodeGPTModel("Llama 3.1 (405B)", "llama-3.1-405b", Icons.Meta, FREE),

src/main/kotlin/ee/carlrobert/codegpt/settings/service/codegpt/CodeGPTService.kt

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import ee.carlrobert.codegpt.settings.GeneralSettings
1111
import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTUserDetailsNotifier.Companion.CODEGPT_USER_DETAILS_TOPIC
1212
import kotlinx.coroutines.*
1313

14-
@Service
14+
@Service(Service.Level.PROJECT)
1515
class CodeGPTService private constructor(val project: Project) {
1616

1717
private val serviceScope = CoroutineScope(SupervisorJob() + Dispatchers.Default)
@@ -22,22 +22,26 @@ class CodeGPTService private constructor(val project: Project) {
2222

2323
fun syncUserDetailsAsync(apiKey: String?) {
2424
serviceScope.launch {
25-
val userDetails = withContext(Dispatchers.IO) {
26-
if (apiKey.isNullOrEmpty()) null
27-
else CompletionClientProvider.getCodeGPTClient().getUserDetails(apiKey)
28-
}
29-
if (userDetails != null && userDetails.pricingPlan != null) {
30-
CODEGPT_USER_DETAILS.set(project, userDetails)
31-
if (!userDetails.fullName.isNullOrEmpty()) {
32-
service<GeneralSettings>().state.run {
33-
displayName = userDetails.fullName
34-
avatarBase64 = userDetails.avatarBase64 ?: ""
25+
try {
26+
val userDetails = withContext(Dispatchers.IO) {
27+
if (apiKey.isNullOrEmpty()) null
28+
else CompletionClientProvider.getCodeGPTClient().getUserDetails(apiKey)
29+
}
30+
if (userDetails != null && userDetails.pricingPlan != null) {
31+
CODEGPT_USER_DETAILS.set(project, userDetails)
32+
if (!userDetails.fullName.isNullOrEmpty()) {
33+
service<GeneralSettings>().state.run {
34+
displayName = userDetails.fullName
35+
avatarBase64 = userDetails.avatarBase64 ?: ""
36+
}
3537
}
3638
}
39+
project.messageBus
40+
.syncPublisher<CodeGPTUserDetailsNotifier>(CODEGPT_USER_DETAILS_TOPIC)
41+
.userDetailsObtained(userDetails)
42+
} catch (ex: Exception) {
43+
// ignore
3744
}
38-
project.messageBus
39-
.syncPublisher<CodeGPTUserDetailsNotifier>(CODEGPT_USER_DETAILS_TOPIC)
40-
.userDetailsObtained(userDetails)
4145
}
4246
}
4347
}

0 commit comments

Comments
 (0)