Skip to content

Commit d16f291

Browse files
committed
Add pickers for prompt to code chat/embedding model
1 parent 268c818 commit d16f291

File tree

2 files changed

+53
-2
lines changed

2 files changed

+53
-2
lines changed

Core/Sources/HostApp/FeatureSettings/ChatSettingsView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ struct ChatSettingsView: View {
4444
var chatSettingsForm: some View {
4545
Form {
4646
Picker(
47-
"Chat Feature Provider",
47+
"Chat Model",
4848
selection: $settings.defaultChatFeatureChatModelId
4949
) {
5050
if !settings.chatModels
@@ -63,7 +63,7 @@ struct ChatSettingsView: View {
6363
}
6464

6565
Picker(
66-
"Embedding Feature Provider",
66+
"Embedding Model",
6767
selection: $settings.defaultChatFeatureEmbeddingModelId
6868
) {
6969
if !settings.embeddingModels

Core/Sources/HostApp/FeatureSettings/PromptToCodeSettingsView.swift

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ struct PromptToCodeSettingsView: View {
1010
var promptToCodeGenerateDescription
1111
@AppStorage(\.promptToCodeGenerateDescriptionInUserPreferredLanguage)
1212
var promptToCodeGenerateDescriptionInUserPreferredLanguage
13+
@AppStorage(\.promptToCodeChatModelId)
14+
var promptToCodeChatModelId
15+
@AppStorage(\.promptToCodeEmbeddingModelId)
16+
var promptToCodeEmbeddingModelId
17+
18+
@AppStorage(\.chatModels) var chatModels
19+
@AppStorage(\.embeddingModels) var embeddingModels
1320
init() {}
1421
}
1522

@@ -18,6 +25,50 @@ struct PromptToCodeSettingsView: View {
1825
var body: some View {
1926
VStack(alignment: .center) {
2027
Form {
28+
Picker(
29+
"Chat Model",
30+
selection: $settings.promptToCodeChatModelId
31+
) {
32+
Text("Same as Chat Feature").tag("")
33+
34+
if !settings.chatModels
35+
.contains(where: { $0.id == settings.promptToCodeChatModelId }),
36+
!settings.promptToCodeChatModelId.isEmpty
37+
{
38+
Text(
39+
(settings.chatModels.first?.name).map { "\($0) (Default)" }
40+
?? "No Model Found"
41+
)
42+
.tag(settings.promptToCodeChatModelId)
43+
}
44+
45+
ForEach(settings.chatModels, id: \.id) { chatModel in
46+
Text(chatModel.name).tag(chatModel.id)
47+
}
48+
}
49+
50+
Picker(
51+
"Embedding Model",
52+
selection: $settings.promptToCodeEmbeddingModelId
53+
) {
54+
Text("Same as Chat Feature").tag("")
55+
56+
if !settings.embeddingModels
57+
.contains(where: { $0.id == settings.promptToCodeEmbeddingModelId }),
58+
!settings.promptToCodeEmbeddingModelId.isEmpty
59+
{
60+
Text(
61+
(settings.embeddingModels.first?.name).map { "\($0) (Default)" }
62+
?? "No Model Found"
63+
)
64+
.tag(settings.promptToCodeEmbeddingModelId)
65+
}
66+
67+
ForEach(settings.embeddingModels, id: \.id) { embeddingModel in
68+
Text(embeddingModel.name).tag(embeddingModel.id)
69+
}
70+
}
71+
2172
Toggle(isOn: $settings.promptToCodeGenerateDescription) {
2273
Text("Generate Description")
2374
}

0 commit comments

Comments
 (0)