This commit is contained in:
2025-08-27 19:58:26 +08:00
parent 3681fe985a
commit feb3641eae

View File

@@ -0,0 +1,138 @@
/*
* Copyright (c) 2023-2025, Agents-Flex (fuhai999@gmail.com).
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.agentsflex.core.llm;
import com.agentsflex.core.util.Maps;
import java.util.List;
import java.util.Map;
/**
* 每个大模型都可以有自己的实现类
*/
public class ChatOptions {
public static final ChatOptions DEFAULT = new ChatOptions() {
@Override
public void setTemperature(Float temperature) {
throw new IllegalStateException("Can not set temperature to the default instance.");
}
@Override
public void setMaxTokens(Integer maxTokens) {
throw new IllegalStateException("Can not set maxTokens to the default instance.");
}
};
private String model;
private String seed;
private Float temperature = 0.8f;
private Float topP;
private Integer topK;
private Integer maxTokens;
private List<String> stop;
/**
* 是否开启思考模式,适用于 Qwen3 等模型模型。
*/
private Boolean enableThinking;
/**
* 额外的参数,用于传递给模型。
*/
private Map<String, Object> extra;
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public Float getTemperature() {
return temperature;
}
public void setTemperature(Float temperature) {
this.temperature = temperature;
}
public Float getTopP() {
return topP;
}
public void setTopP(Float topP) {
this.topP = topP;
}
public Integer getTopK() {
return topK;
}
public void setTopK(Integer topK) {
this.topK = topK;
}
public Integer getMaxTokens() {
return maxTokens;
}
public void setMaxTokens(Integer maxTokens) {
this.maxTokens = maxTokens;
}
public List<String> getStop() {
return stop;
}
public void setStop(List<String> stop) {
this.stop = stop;
}
public Boolean getEnableThinking() {
return enableThinking;
}
public void setEnableThinking(Boolean enableThinking) {
this.enableThinking = enableThinking;
}
public Map<String, Object> getExtra() {
return extra;
}
public void setExtra(Map<String, Object> extra) {
this.extra = extra;
}
public void addExtra(String key, Object value) {
if (extra == null) {
extra = Maps.of(key, value);
} else {
extra.put(key, value);
}
}
}