@@ -23,11 +23,29 @@ public struct ChatModel: Codable, Equatable, Identifiable {
2323 case openAICompatible
2424 case googleAI
2525 case ollama
26-
26+
2727 case unknown
2828 }
2929
3030 public struct Info : Codable , Equatable {
31+ public struct OllamaInfo : Codable , Equatable {
32+ @FallbackDecoding < EmptyString >
33+ public var keepAlive : String
34+
35+ public init ( keepAlive: String = " " ) {
36+ self . keepAlive = keepAlive
37+ }
38+ }
39+
40+ public struct OpenAIInfo : Codable , Equatable {
41+ @FallbackDecoding < EmptyString >
42+ public var organizationID : String
43+
44+ public init ( organizationID: String = " " ) {
45+ self . organizationID = organizationID
46+ }
47+ }
48+
3149 @FallbackDecoding < EmptyString >
3250 public var apiKeyName : String
3351 @FallbackDecoding < EmptyString >
@@ -38,35 +56,32 @@ public struct ChatModel: Codable, Equatable, Identifiable {
3856 public var maxTokens : Int
3957 @FallbackDecoding < EmptyBool >
4058 public var supportsFunctionCalling : Bool
41- @FallbackDecoding < EmptyBool >
42- public var supportsOpenAIAPI2023_11 : Bool
4359 @FallbackDecoding < EmptyString >
4460 public var modelName : String
45- public var azureOpenAIDeploymentName : String {
46- get { modelName }
47- set { modelName = newValue }
48- }
49- @FallbackDecoding < EmptyString >
50- public var ollamaKeepAlive : String
61+
62+ @FallbackDecoding < EmptyChatModelOpenAIInfo >
63+ public var openAIInfo : OpenAIInfo
64+ @FallbackDecoding < EmptyChatModelOllamaInfo >
65+ public var ollamaInfo : OllamaInfo
5166
5267 public init (
5368 apiKeyName: String = " " ,
5469 baseURL: String = " " ,
5570 isFullURL: Bool = false ,
5671 maxTokens: Int = 4000 ,
5772 supportsFunctionCalling: Bool = true ,
58- supportsOpenAIAPI2023_11: Bool = false ,
5973 modelName: String = " " ,
60- ollamaKeepAlive: String = " "
74+ openAIInfo: OpenAIInfo = OpenAIInfo ( ) ,
75+ ollamaInfo: OllamaInfo = OllamaInfo ( )
6176 ) {
6277 self . apiKeyName = apiKeyName
6378 self . baseURL = baseURL
6479 self . isFullURL = isFullURL
6580 self . maxTokens = maxTokens
6681 self . supportsFunctionCalling = supportsFunctionCalling
67- self . supportsOpenAIAPI2023_11 = supportsOpenAIAPI2023_11
6882 self . modelName = modelName
69- self . ollamaKeepAlive = ollamaKeepAlive
83+ self . openAIInfo = openAIInfo
84+ self . ollamaInfo = ollamaInfo
7085 }
7186 }
7287
@@ -83,7 +98,7 @@ public struct ChatModel: Codable, Equatable, Identifiable {
8398 return " \( baseURL) /v1/chat/completions "
8499 case . azureOpenAI:
85100 let baseURL = info. baseURL
86- let deployment = info. azureOpenAIDeploymentName
101+ let deployment = info. modelName
87102 let version = " 2023-07-01-preview "
88103 if baseURL. isEmpty { return " " }
89104 return " \( baseURL) /openai/deployments/ \( deployment) /chat/completions?api-version= \( version) "
@@ -109,3 +124,11 @@ public struct EmptyChatModelFormat: FallbackValueProvider {
109124 public static var defaultValue : ChatModel . Format { . unknown }
110125}
111126
127+ public struct EmptyChatModelOllamaInfo : FallbackValueProvider {
128+ public static var defaultValue : ChatModel . Info . OllamaInfo { . init( ) }
129+ }
130+
131+ public struct EmptyChatModelOpenAIInfo : FallbackValueProvider {
132+ public static var defaultValue : ChatModel . Info . OpenAIInfo { . init( ) }
133+ }
134+
0 commit comments