|
1 | 1 | package com.sap.ai.sdk.foundationmodels.openai.spring; |
2 | 2 |
|
| 3 | +import com.sap.ai.sdk.foundationmodels.openai.OpenAiChatCompletionConfig; |
3 | 4 | import com.sap.ai.sdk.foundationmodels.openai.generated.model.ChatCompletionTool; |
4 | 5 | import com.sap.ai.sdk.foundationmodels.openai.generated.model.ChatCompletionTool.TypeEnum; |
5 | 6 | import com.sap.ai.sdk.foundationmodels.openai.generated.model.FunctionObject; |
| 7 | + |
| 8 | +import java.math.BigDecimal; |
6 | 9 | import java.util.List; |
7 | 10 | import java.util.Map; |
8 | 11 | import java.util.Set; |
9 | 12 | import javax.annotation.Nonnull; |
10 | 13 | import javax.annotation.Nullable; |
| 14 | + |
| 15 | +import io.vavr.control.Option; |
11 | 16 | import lombok.AccessLevel; |
12 | 17 | import lombok.Data; |
13 | 18 | import lombok.Getter; |
|
21 | 26 | @Data |
22 | 27 | public class OpenAiChatOptions implements ToolCallingChatOptions { |
23 | 28 |
|
24 | | - // @Nonnull |
25 | | - // private final OpenAiChatCompletionConfig config; |
| 29 | + @Nonnull private OpenAiChatCompletionConfig config; |
26 | 30 |
|
27 | 31 | @Nonnull private List<ToolCallback> toolCallbacks = List.of(); |
28 | 32 |
|
@@ -71,51 +75,51 @@ public String getModel() { |
71 | 75 | } |
72 | 76 |
|
73 | 77 | @Override |
74 | | - @Nonnull |
| 78 | + @Nullable |
75 | 79 | public Double getFrequencyPenalty() { |
76 | | - return 0.0; |
| 80 | + return Option.of(config.getFrequencyPenalty()).map(BigDecimal::doubleValue).getOrNull(); |
77 | 81 | } |
78 | 82 |
|
79 | 83 | @Override |
80 | | - @Nonnull |
| 84 | + @Nullable |
81 | 85 | public Integer getMaxTokens() { |
82 | | - return 0; |
| 86 | + return config.getMaxTokens(); |
83 | 87 | } |
84 | 88 |
|
85 | 89 | @Override |
86 | | - @Nonnull |
| 90 | + @Nullable |
87 | 91 | public Double getPresencePenalty() { |
88 | | - return 0.0; |
| 92 | + return Option.of(config.getPresencePenalty()).map(BigDecimal::doubleValue).getOrNull(); |
89 | 93 | } |
90 | 94 |
|
91 | 95 | @Override |
92 | | - @Nonnull |
| 96 | + @Nullable |
93 | 97 | public List<String> getStopSequences() { |
94 | | - return List.of(); |
| 98 | + return config.getStop(); |
95 | 99 | } |
96 | 100 |
|
97 | 101 | @Override |
98 | | - @Nonnull |
| 102 | + @Nullable |
99 | 103 | public Double getTemperature() { |
100 | | - return 0.0; |
| 104 | + return Option.of(config.getTemperature()).map(BigDecimal::doubleValue).getOrNull(); |
101 | 105 | } |
102 | 106 |
|
103 | 107 | @Override |
104 | | - @Nonnull |
| 108 | + @Nullable // this is available here but not in OpenAiChatCompletionConfig so added it there ? |
105 | 109 | public Integer getTopK() { |
106 | | - return 0; |
| 110 | + return config.getTopK(); |
107 | 111 | } |
108 | 112 |
|
109 | 113 | @Override |
110 | | - @Nonnull |
| 114 | + @Nullable |
111 | 115 | public Double getTopP() { |
112 | | - return 0.0; |
| 116 | + return Option.of(config.getTopP()).map(BigDecimal::doubleValue).getOrNull(); |
113 | 117 | } |
114 | 118 |
|
115 | 119 | @Override |
116 | 120 | @Nonnull |
117 | 121 | public <T extends ChatOptions> T copy() { |
118 | | - final OpenAiChatOptions copy = new OpenAiChatOptions(); |
| 122 | + final OpenAiChatOptions copy = new OpenAiChatOptions(new OpenAiChatCompletionConfig()); |
119 | 123 | copy.setToolCallbacks(this.toolCallbacks); |
120 | 124 | copy.setInternalToolExecutionEnabled(this.internalToolExecutionEnabled); |
121 | 125 | copy.setTools(this.tools); |
|
0 commit comments