@@ -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 >
@@ -35,35 +53,32 @@ public struct ChatModel: Codable, Equatable, Identifiable {
3553 public var maxTokens : Int
3654 @FallbackDecoding < EmptyBool >
3755 public var supportsFunctionCalling : Bool
38- @FallbackDecoding < EmptyBool >
39- public var supportsOpenAIAPI2023_11 : Bool
4056 @FallbackDecoding < EmptyString >
4157 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
58+
59+ @FallbackDecoding < EmptyChatModelOpenAIInfo >
60+ public var openAIInfo : OpenAIInfo
61+ @FallbackDecoding < EmptyChatModelOllamaInfo >
62+ public var ollamaInfo : OllamaInfo
4863
4964 public init (
5065 apiKeyName: String = " " ,
5166 baseURL: String = " " ,
5267 isFullURL: Bool = false ,
5368 maxTokens: Int = 4000 ,
5469 supportsFunctionCalling: Bool = true ,
55- supportsOpenAIAPI2023_11: Bool = false ,
5670 modelName: String = " " ,
57- ollamaKeepAlive: String = " "
71+ openAIInfo: OpenAIInfo = OpenAIInfo ( ) ,
72+ ollamaInfo: OllamaInfo = OllamaInfo ( )
5873 ) {
5974 self . apiKeyName = apiKeyName
6075 self . baseURL = baseURL
6176 self . isFullURL = isFullURL
6277 self . maxTokens = maxTokens
6378 self . supportsFunctionCalling = supportsFunctionCalling
64- self . supportsOpenAIAPI2023_11 = supportsOpenAIAPI2023_11
6579 self . modelName = modelName
66- self . ollamaKeepAlive = ollamaKeepAlive
80+ self . openAIInfo = openAIInfo
81+ self . ollamaInfo = ollamaInfo
6782 }
6883 }
6984
@@ -80,7 +95,7 @@ public struct ChatModel: Codable, Equatable, Identifiable {
8095 return " \( baseURL) /v1/chat/completions "
8196 case . azureOpenAI:
8297 let baseURL = info. baseURL
83- let deployment = info. azureOpenAIDeploymentName
98+ let deployment = info. modelName
8499 let version = " 2024-02-15-preview "
85100 if baseURL. isEmpty { return " " }
86101 return " \( baseURL) /openai/deployments/ \( deployment) /chat/completions?api-version= \( version) "
@@ -104,3 +119,11 @@ public struct EmptyChatModelFormat: FallbackValueProvider {
104119 public static var defaultValue : ChatModel . Format { . openAI }
105120}
106121
122+ public struct EmptyChatModelOllamaInfo : FallbackValueProvider {
123+ public static var defaultValue : ChatModel . Info . OllamaInfo { . init( ) }
124+ }
125+
126+ public struct EmptyChatModelOpenAIInfo : FallbackValueProvider {
127+ public static var defaultValue : ChatModel . Info . OpenAIInfo { . init( ) }
128+ }
129+
0 commit comments