@@ -25,6 +25,24 @@ public struct ChatModel: Codable, Equatable, Identifiable {
2525 }
2626
2727 public struct Info : Codable , Equatable {
28+ public struct OllamaInfo : Codable , Equatable {
29+ @FallbackDecoding < EmptyString >
30+ public var keepAlive : String
31+
32+ public init ( keepAlive: String = " " ) {
33+ self . keepAlive = keepAlive
34+ }
35+ }
36+
37+ public struct OpenAIInfo : Codable , Equatable {
38+ @FallbackDecoding < EmptyString >
39+ public var organizationID : String
40+
41+ public init ( organizationID: String = " " ) {
42+ self . organizationID = organizationID
43+ }
44+ }
45+
2846 @FallbackDecoding < EmptyString >
2947 public var apiKeyName : String
3048 @FallbackDecoding < EmptyString >
@@ -39,12 +57,11 @@ public struct ChatModel: Codable, Equatable, Identifiable {
3957 public var supportsOpenAIAPI2023_11 : Bool
4058 @FallbackDecoding < EmptyString >
4159 public var modelName : String
42- public var azureOpenAIDeploymentName : String {
43- get { modelName }
44- set { modelName = newValue }
45- }
46- @FallbackDecoding < EmptyString >
47- public var ollamaKeepAlive : String
60+
61+ @FallbackDecoding < EmptyChatModelOpenAIInfo >
62+ public var openAIInfo : OpenAIInfo
63+ @FallbackDecoding < EmptyChatModelOllamaInfo >
64+ public var ollamaInfo : OllamaInfo
4865
4966 public init (
5067 apiKeyName: String = " " ,
@@ -54,7 +71,8 @@ public struct ChatModel: Codable, Equatable, Identifiable {
5471 supportsFunctionCalling: Bool = true ,
5572 supportsOpenAIAPI2023_11: Bool = false ,
5673 modelName: String = " " ,
57- ollamaKeepAlive: String = " "
74+ openAIInfo: OpenAIInfo = OpenAIInfo ( ) ,
75+ ollamaInfo: OllamaInfo = OllamaInfo ( )
5876 ) {
5977 self . apiKeyName = apiKeyName
6078 self . baseURL = baseURL
@@ -63,7 +81,8 @@ public struct ChatModel: Codable, Equatable, Identifiable {
6381 self . supportsFunctionCalling = supportsFunctionCalling
6482 self . supportsOpenAIAPI2023_11 = supportsOpenAIAPI2023_11
6583 self . modelName = modelName
66- self . ollamaKeepAlive = ollamaKeepAlive
84+ self . openAIInfo = openAIInfo
85+ self . ollamaInfo = ollamaInfo
6786 }
6887 }
6988
@@ -80,7 +99,7 @@ public struct ChatModel: Codable, Equatable, Identifiable {
8099 return " \( baseURL) /v1/chat/completions "
81100 case . azureOpenAI:
82101 let baseURL = info. baseURL
83- let deployment = info. azureOpenAIDeploymentName
102+ let deployment = info. modelName
84103 let version = " 2024-02-15-preview "
85104 if baseURL. isEmpty { return " " }
86105 return " \( baseURL) /openai/deployments/ \( deployment) /chat/completions?api-version= \( version) "
@@ -104,3 +123,11 @@ public struct EmptyChatModelFormat: FallbackValueProvider {
104123 public static var defaultValue : ChatModel . Format { . openAI }
105124}
106125
126+ public struct EmptyChatModelOllamaInfo : FallbackValueProvider {
127+ public static var defaultValue : ChatModel . Info . OllamaInfo { . init( ) }
128+ }
129+
130+ public struct EmptyChatModelOpenAIInfo : FallbackValueProvider {
131+ public static var defaultValue : ChatModel . Info . OpenAIInfo { . init( ) }
132+ }
133+
0 commit comments