Skip to content

Commit 166c286

Browse files
committed
update doc
1 parent b48a68a commit 166c286

File tree

2 files changed

+89
-1
lines changed
  • xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/src/test/java/com/xxl/job/executor/test

2 files changed

+89
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.xxl.job.executor.test.dify;
2+
3+
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
4+
import io.github.imfangs.dify.client.DifyClientFactory;
5+
import io.github.imfangs.dify.client.DifyWorkflowClient;
6+
import io.github.imfangs.dify.client.enums.ResponseMode;
7+
import io.github.imfangs.dify.client.model.workflow.WorkflowRunRequest;
8+
import io.github.imfangs.dify.client.model.workflow.WorkflowRunResponse;
9+
import org.junit.jupiter.api.Test;
10+
import org.slf4j.Logger;
11+
import org.slf4j.LoggerFactory;
12+
import org.springframework.boot.test.context.SpringBootTest;
13+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
14+
15+
import java.util.Map;
16+
17+
@SpringBootTest
18+
public class DifyTest {
19+
private static final Logger logger = LoggerFactory.getLogger(DifyTest.class);
20+
21+
// ignore
22+
@MockitoBean
23+
private XxlJobSpringExecutor xxlJobSpringExecutor;
24+
25+
@Test
26+
public void test() throws Exception {
27+
28+
String baseUrl = "https://xx.ai";
29+
String apiKey = "xx";
30+
String user = "zhangsan";
31+
Map<String, Object> inputs = Map.of(
32+
"input", "请写一个java程序,实现一个方法,输入一个字符串,返回字符串的长度。"
33+
);
34+
35+
// dify request
36+
WorkflowRunRequest request = WorkflowRunRequest.builder()
37+
.inputs(inputs)
38+
.responseMode(ResponseMode.BLOCKING)
39+
.user(user)
40+
.build();
41+
42+
// dify invoke
43+
DifyWorkflowClient workflowClient = DifyClientFactory.createWorkflowClient(baseUrl, apiKey);
44+
WorkflowRunResponse response = workflowClient.runWorkflow(request);
45+
46+
// response
47+
logger.info("input: " + inputs);
48+
logger.info("output: " + response.getData().getOutputs());
49+
}
50+
51+
}

xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/src/test/java/com/xxl/job/executor/test/ollama/OllamaTest.java

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
import org.springframework.ai.ollama.api.OllamaChatOptions;
1414
import org.springframework.boot.test.context.SpringBootTest;
1515
import org.springframework.test.context.bean.override.mockito.MockitoBean;
16+
import reactor.core.publisher.Flux;
17+
18+
import java.util.concurrent.TimeUnit;
1619

1720
@SpringBootTest
1821
public class OllamaTest {
@@ -27,7 +30,7 @@ public class OllamaTest {
2730
private OllamaChatModel ollamaChatModel;
2831

2932
@Test
30-
public void test() {
33+
public void chatTest() {
3134

3235
String model = "qwen3:0.6b";
3336
String prompt = "背景说明:你是一个研发工程师,擅长解决技术类问题。";
@@ -53,5 +56,39 @@ public void test() {
5356
logger.info("response: {}", response);
5457
}
5558

59+
@Test
60+
public void chatStreamTest() throws InterruptedException {
61+
62+
String model = "qwen3:0.6b";
63+
String prompt = "背景说明:你是一个研发工程师,擅长解决技术类问题。";
64+
String input = "请写一个java程序,实现一个方法,输入一个字符串,返回字符串的长度。";
65+
66+
67+
// build chat-client
68+
ChatClient ollamaChatClient = ChatClient
69+
.builder(ollamaChatModel)
70+
.defaultAdvisors(MessageChatMemoryAdvisor.builder(MessageWindowChatMemory.builder().build()).build())
71+
.defaultAdvisors(SimpleLoggerAdvisor.builder().build())
72+
.defaultOptions(OllamaChatOptions.builder().model(model).build())
73+
.build();
74+
75+
// call ollama
76+
logger.info("input: {}", input);
77+
Flux<String> flux = ollamaChatClient
78+
.prompt(prompt)
79+
.user(input)
80+
.stream()
81+
.content();
82+
83+
flux.subscribe(
84+
data -> System.out.println("Received: " + data), // onNext 处理
85+
error -> System.err.println("Error: " + error), // onError 处理
86+
() -> System.out.println("Completed") // onComplete 处理
87+
);
88+
89+
TimeUnit.SECONDS.sleep(10);
90+
91+
}
92+
5693

5794
}

0 commit comments

Comments
 (0)