Skip to content

Commit 94bfdd5

Browse files
committed
Add API key field for Ollama embedding API
1 parent 2bed2b6 commit 94bfdd5

3 files changed

Lines changed: 11 additions & 0 deletions

File tree

Core/Sources/HostApp/AccountSettings/EmbeddingModelManagement/EmbeddingModelEditView.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,9 @@ struct EmbeddingModelEditView: View {
344344
BaseURLTextField(store: store, prompt: Text("http://127.0.0.1:11434")) {
345345
Text("/api/embeddings")
346346
}
347+
348+
ApiKeyNamePicker(store: store)
349+
347350
TextField("Model Name", text: $store.modelName)
348351

349352
MaxTokensTextField(store: store)

Tool/Sources/OpenAIService/APIs/OllamaEmbeddingService.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ struct OllamaEmbeddingService: EmbeddingAPI {
1212
var embedding: [Float]
1313
}
1414

15+
let apiKey: String
1516
let model: EmbeddingModel
1617
let endpoint: String
1718

@@ -25,6 +26,10 @@ struct OllamaEmbeddingService: EmbeddingAPI {
2526
model: model.info.modelName
2627
))
2728
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
29+
30+
if !apiKey.isEmpty {
31+
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
32+
}
2833

2934
let (result, response) = try await URLSession.shared.data(for: request)
3035
guard let response = response as? HTTPURLResponse else {

Tool/Sources/OpenAIService/EmbeddingService.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public struct EmbeddingService {
2323
).embed(text: text)
2424
case .ollama:
2525
embeddingResponse = try await OllamaEmbeddingService(
26+
apiKey: configuration.apiKey,
2627
model: model,
2728
endpoint: configuration.endpoint
2829
).embed(text: text)
@@ -54,6 +55,7 @@ public struct EmbeddingService {
5455
).embed(texts: text)
5556
case .ollama:
5657
embeddingResponse = try await OllamaEmbeddingService(
58+
apiKey: configuration.apiKey,
5759
model: model,
5860
endpoint: configuration.endpoint
5961
).embed(texts: text)
@@ -85,6 +87,7 @@ public struct EmbeddingService {
8587
).embed(tokens: tokens)
8688
case .ollama:
8789
embeddingResponse = try await OllamaEmbeddingService(
90+
apiKey: configuration.apiKey,
8891
model: model,
8992
endpoint: configuration.endpoint
9093
).embed(tokens: tokens)

0 commit comments

Comments
 (0)