Skip to content

Commit b2f0458

Browse files
authored
feat: 添加ai任务命令 (jetlinks#105)
* feat: 添加ai任务命令 * feat: 优化
1 parent 0d82826 commit b2f0458

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.jetlinks.sdk.server.ai.llm.agent;
2+
3+
import io.swagger.v3.oas.annotations.media.Schema;
4+
import org.jetlinks.core.command.AbstractCommand;
5+
import reactor.core.publisher.Flux;
6+
7+
import java.util.Optional;
8+
9+
@Schema(title = "任务命令")
10+
public class StartTaskCommand extends AbstractCommand<Flux<TaskResponse>, StartTaskCommand> {
11+
12+
13+
@Schema(title = "是否异步执行")
14+
public boolean getAsync() {
15+
return Optional.ofNullable(getOrNull("async", Boolean.class)).orElse(true);
16+
}
17+
18+
public StartTaskCommand setAsync(boolean async) {
19+
return with("async", async);
20+
}
21+
22+
public ChatRequest<?> asRequest() {
23+
return as(ChatRequest.class);
24+
}
25+
26+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package org.jetlinks.sdk.server.ai.llm.agent;
2+
3+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
4+
import com.fasterxml.jackson.annotation.JsonAnySetter;
5+
import lombok.NoArgsConstructor;
6+
import org.hswebframework.ezorm.core.Extendable;
7+
import org.jetlinks.core.GenericHeaderSupport;
8+
import org.jetlinks.core.utils.SerializeUtils;
9+
10+
import java.io.Externalizable;
11+
import java.io.IOException;
12+
import java.io.ObjectInput;
13+
import java.io.ObjectOutput;
14+
import java.util.Map;
15+
import java.util.concurrent.ConcurrentHashMap;
16+
17+
@NoArgsConstructor
18+
public class TaskResponse extends GenericHeaderSupport<TaskResponse> implements Extendable, Externalizable {
19+
20+
private volatile Map<String, Object> extensions;
21+
22+
public TaskResponse(Map<String, Object> extensions) {
23+
this.extensions = new ConcurrentHashMap<>(extensions);
24+
}
25+
26+
@Override
27+
public void writeExternal(ObjectOutput out) throws IOException {
28+
SerializeUtils.writeKeyValue(getHeaders(), out);
29+
SerializeUtils.writeKeyValue(extensions, out);
30+
}
31+
32+
@Override
33+
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
34+
SerializeUtils.readKeyValue(in, this::addHeader);
35+
SerializeUtils.readKeyValue(in,this::setExtension);
36+
}
37+
38+
39+
@Override
40+
@JsonAnyGetter
41+
public Map<String, Object> extensions() {
42+
return extensions;
43+
}
44+
45+
@Override
46+
@JsonAnySetter
47+
public void setExtension(String property, Object value) {
48+
if (extensions == null) {
49+
synchronized (this) {
50+
if (extensions == null) {
51+
extensions = new ConcurrentHashMap<>();
52+
}
53+
}
54+
}
55+
extensions.put(property, value);
56+
}
57+
}

0 commit comments

Comments
 (0)