Skip to content

Commit b768c09

Browse files
committed
feat(openAi): add organizationId field
1 parent d927bb8 commit b768c09

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/openAi/OpenAiClientConfiguration.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ package com.github.blarc.ai.commits.intellij.plugin.settings.clients.openAi
22

33
import com.github.blarc.ai.commits.intellij.plugin.Icons
44
import com.github.blarc.ai.commits.intellij.plugin.settings.clients.LLMClientConfiguration
5-
import com.github.blarc.ai.commits.intellij.plugin.settings.clients.LLMClientSharedState
65
import com.intellij.openapi.vcs.ui.CommitMessage
76
import javax.swing.Icon
87

9-
class OpenAiClientConfiguration(displayName: String = "OpenAI") : LLMClientConfiguration(
8+
class OpenAiClientConfiguration(
9+
displayName: String = "OpenAI",
10+
var organizationId: String? = null
11+
) : LLMClientConfiguration(
1012
displayName,
1113
"https://api.openai.com/v1",
1214
null,
@@ -18,7 +20,7 @@ class OpenAiClientConfiguration(displayName: String = "OpenAI") : LLMClientConfi
1820
return Icons.OPEN_AI
1921
}
2022

21-
override fun getSharedState(): LLMClientSharedState {
23+
override fun getSharedState(): OpenAiClientSharedState {
2224
return OpenAiClientSharedState.getInstance()
2325
}
2426

@@ -35,6 +37,7 @@ class OpenAiClientConfiguration(displayName: String = "OpenAI") : LLMClientConfi
3537
copy.proxyUrl = proxyUrl
3638
copy.timeout = timeout
3739
copy.modelId = modelId
40+
copy.organizationId = organizationId
3841
copy.temperature = temperature
3942
return copy
4043
}

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/openAi/OpenAiClientPanel.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ import com.intellij.ui.components.JBPasswordField
77
import com.intellij.ui.dsl.builder.AlignX
88
import com.intellij.ui.dsl.builder.bindText
99
import com.intellij.ui.dsl.builder.panel
10+
import com.intellij.ui.dsl.builder.toNonNullableProperty
1011

11-
class OpenAiClientPanel(private val client: OpenAiClientConfiguration) : LLMClientPanel(client) {
12+
class OpenAiClientPanel(private val clientConfiguration: OpenAiClientConfiguration) : LLMClientPanel(clientConfiguration) {
1213

1314
private val tokenPasswordField = JBPasswordField()
1415

@@ -21,7 +22,7 @@ class OpenAiClientPanel(private val client: OpenAiClientConfiguration) : LLMClie
2122
label(message("settings.llmClient.token"))
2223
.widthGroup("label")
2324
cell(tokenPasswordField)
24-
.bindText(client::token)
25+
.bindText(clientConfiguration::token)
2526
.emptyText(message("settings.openAI.token.example"))
2627
.resizableColumn()
2728
.focused()
@@ -33,6 +34,15 @@ class OpenAiClientPanel(private val client: OpenAiClientConfiguration) : LLMClie
3334
}
3435

3536
modelIdRow()
37+
38+
row {
39+
label(message("settings.openAi.organizationId"))
40+
.widthGroup("label")
41+
textField()
42+
.bindText(clientConfiguration::organizationId.toNonNullableProperty(""))
43+
.widthGroup("input")
44+
}
45+
3646
temperatureRow()
3747
verifyRow()
3848

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/openAi/OpenAiClientService.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class OpenAiClientService(cs: CoroutineScope) : LLMClientService<OpenAiClientCon
2020
}
2121

2222
override fun buildChatModel(client: OpenAiClientConfiguration): ChatLanguageModel {
23-
// TODO @Blarc: Add OPENAI_ORG
2423
val builder = OpenAiChatModel.builder()
2524
.apiKey(client.token)
2625
.modelName(client.modelId)
@@ -32,6 +31,11 @@ class OpenAiClientService(cs: CoroutineScope) : LLMClientService<OpenAiClientCon
3231
val uri = URI(it)
3332
builder.proxy(Proxy(Proxy.Type.HTTP, InetSocketAddress(uri.host, uri.port)))
3433
}
34+
35+
client.organizationId?.takeIf { it.isNotBlank() }?.let {
36+
builder.organizationId(it)
37+
}
38+
3539
return builder.build()
3640
}
3741

src/main/resources/messages/MyBundle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,4 @@ settings.llmClient.temperature.comment=What sampling temperature to use, between
7474
settings.openAI.token.example=sk-ABCdefgHIjKlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7575
settings.openAi.token.comment=\
7676
<p>You can get your token <a href="https://platform.openai.com/account/api-keys">here.</a/></p>
77+
settings.openAi.organizationId=Organization ID

0 commit comments

Comments
 (0)