@@ -20,6 +20,7 @@ public struct FIMModel: Codable, Equatable, Identifiable {
2020 public enum Format : String , Codable , Equatable , CaseIterable {
2121 case mistral
2222 case ollama
23+ case ollamaCompatible
2324
2425 case unknown
2526 }
@@ -35,6 +36,15 @@ public struct FIMModel: Codable, Equatable, Identifiable {
3536 public var maxTokens : Int
3637 @FallbackDecoding < EmptyString >
3738 public var modelName : String
39+ @FallbackDecoding < EmptyFIMModelAuthenticationMode >
40+ public var authenticationMode : AuthenticationMode
41+ @FallbackDecoding < EmptyString >
42+ public var authenticationHeaderFieldName : String
43+
44+ public enum AuthenticationMode : Codable , Equatable , CaseIterable {
45+ case header
46+ case bearerToken
47+ }
3848
3949 @FallbackDecoding < EmptyChatModelOllamaInfo >
4050 public var ollamaInfo : ChatModel . Info . OllamaInfo
@@ -45,6 +55,8 @@ public struct FIMModel: Codable, Equatable, Identifiable {
4555 isFullURL: Bool = false ,
4656 maxTokens: Int = 4000 ,
4757 modelName: String = " " ,
58+ authenticationMode: AuthenticationMode = . bearerToken,
59+ authenticationHeaderFieldName: String = " " ,
4860 ollamaInfo: ChatModel . Info . OllamaInfo = ChatModel . Info. OllamaInfo ( )
4961 ) {
5062 self . apiKeyName = apiKeyName
@@ -53,6 +65,8 @@ public struct FIMModel: Codable, Equatable, Identifiable {
5365 self . maxTokens = maxTokens
5466 self . modelName = modelName
5567 self . ollamaInfo = ollamaInfo
68+ self . authenticationMode = authenticationMode
69+ self . authenticationHeaderFieldName = authenticationHeaderFieldName
5670 }
5771 }
5872
@@ -67,6 +81,11 @@ public struct FIMModel: Codable, Equatable, Identifiable {
6781 let baseURL = info. baseURL
6882 if baseURL. isEmpty { return " http://localhost:11434/api/generate " }
6983 return " \( baseURL) /api/generate "
84+ case . ollamaCompatible:
85+ let baseURL = info. baseURL
86+ if baseURL. isEmpty { return " http://localhost:11434/api/generate " }
87+ if info. isFullURL { return baseURL }
88+ return " \( baseURL) /api/generate "
7089 case . unknown:
7190 return " "
7291 }
@@ -81,3 +100,6 @@ public struct EmptyFIMModelFormat: FallbackValueProvider {
81100 public static var defaultValue : FIMModel . Format { . unknown }
82101}
83102
103+ public struct EmptyFIMModelAuthenticationMode : FallbackValueProvider {
104+ public static var defaultValue : FIMModel . Info . AuthenticationMode { . bearerToken }
105+ }
0 commit comments