File tree Expand file tree Collapse file tree 3 files changed +32
-1
lines changed
commonMain/kotlin/com.aallam.openai.client/internal/extension
commonTest/kotlin/com/aallam/openai/client/misc Expand file tree Collapse file tree 3 files changed +32
-1
lines changed Original file line number Diff line number Diff line change 6
6
7
7
### Fixed
8
8
- ** chat** : enhance flow cancel capability (#333 )
9
+ - ** config** : request options headers override previous values (#353 )
9
10
10
11
## 3.7.2
11
12
> Published 28 Apr 2024
Original file line number Diff line number Diff line change @@ -9,7 +9,10 @@ import io.ktor.client.request.*
9
9
*/
10
10
internal fun HttpRequestBuilder.requestOptions (requestOptions : RequestOptions ? = null) {
11
11
if (requestOptions == null ) return
12
- requestOptions.headers.forEach { (key, value) -> headers.append(key, value) }
12
+ requestOptions.headers.forEach { (key, value) ->
13
+ if (headers.contains(key)) headers.remove(key)
14
+ headers[key] = value
15
+ }
13
16
requestOptions.urlParameters.forEach { (key, value) -> url.parameters.append(key, value) }
14
17
requestOptions.timeout?.let { timeout ->
15
18
timeout {
Original file line number Diff line number Diff line change @@ -32,4 +32,31 @@ class TestRequestOptions {
32
32
client.models(requestOptions = requestOptions)
33
33
assertEquals(requestHeaders?.get(key), requestOptions.headers[key])
34
34
}
35
+
36
+ @Test
37
+ fun testOverride () = runTest {
38
+ val key = " OpenAI-Beta"
39
+ val requestOptions = RequestOptions (
40
+ headers = mapOf (key to " assistants=v0" ),
41
+ )
42
+ var requestHeaders: Map <String , String >? = null
43
+ val client = OpenAI (
44
+ token = token,
45
+ headers = mapOf (key to " assistants=v3" ),
46
+ httpClientConfig = {
47
+ install(" RequestInterceptor" ) {
48
+ requestPipeline.intercept(HttpRequestPipeline .Before ) {
49
+ requestHeaders = context.headers.entries().associate { it.key to it.value.first() }
50
+ }
51
+ }
52
+ }
53
+ )
54
+
55
+ try {
56
+ client.assistants(requestOptions = requestOptions)
57
+ } catch (e: Exception ) {
58
+ // skip
59
+ }
60
+ assertEquals(requestHeaders?.get(key), requestOptions.headers[key])
61
+ }
35
62
}
You can’t perform that action at this time.
0 commit comments