Commit f7ab30c50a7b8a899dacaab08f94cbf086b9f1f2

Authored by YunaiV
1 parent 07fe6167

【功能新增】AI:新增 Dify、FastGPT 的接入例子

yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DifyChatModelTests.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.ai.chat;
  2 +
  3 +import org.junit.jupiter.api.Disabled;
  4 +import org.junit.jupiter.api.Test;
  5 +import org.springframework.ai.chat.messages.Message;
  6 +import org.springframework.ai.chat.messages.SystemMessage;
  7 +import org.springframework.ai.chat.messages.UserMessage;
  8 +import org.springframework.ai.chat.model.ChatResponse;
  9 +import org.springframework.ai.chat.prompt.Prompt;
  10 +import org.springframework.ai.openai.OpenAiChatModel;
  11 +import org.springframework.ai.openai.api.OpenAiApi;
  12 +import reactor.core.publisher.Flux;
  13 +
  14 +import java.util.ArrayList;
  15 +import java.util.List;
  16 +
  17 +/**
  18 + * 基于 {@link OpenAiChatModel} 集成 Dify 测试
  19 + *
  20 + * @author 芋道源码
  21 + */
  22 +public class DifyChatModelTests {
  23 +
  24 + private final OpenAiChatModel chatModel = OpenAiChatModel.builder()
  25 + .openAiApi(OpenAiApi.builder()
  26 + .baseUrl("http://127.0.0.1:3000")
  27 + .apiKey("app-4hy2d7fJauSbrKbzTKX1afuP") // apiKey
  28 + .build())
  29 + .build();
  30 +
  31 + @Test
  32 + @Disabled
  33 + public void testCall() {
  34 + // 准备参数
  35 + List<Message> messages = new ArrayList<>();
  36 + messages.add(new SystemMessage("你是一个优质的文言文作者,用文言文描述着各城市的人文风景。"));
  37 + messages.add(new UserMessage("1 + 1 = ?"));
  38 +
  39 + // 调用
  40 + ChatResponse response = chatModel.call(new Prompt(messages));
  41 + // 打印结果
  42 + System.out.println(response);
  43 + System.out.println(response.getResult().getOutput());
  44 + }
  45 +
  46 + @Test
  47 + @Disabled
  48 + public void testStream() {
  49 + // 准备参数
  50 + List<Message> messages = new ArrayList<>();
  51 + messages.add(new SystemMessage("你是一个优质的文言文作者,用文言文描述着各城市的人文风景。"));
  52 + messages.add(new UserMessage("1 + 1 = ?"));
  53 +
  54 + // 调用
  55 + Flux<ChatResponse> flux = chatModel.stream(new Prompt(messages));
  56 + // 打印结果
  57 + flux.doOnNext(response -> {
  58 +// System.out.println(response);
  59 + System.out.println(response.getResult().getOutput());
  60 + }).then().block();
  61 + }
  62 +
  63 +}
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/FastGPTChatModelTests.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.ai.chat;
  2 +
  3 +import org.junit.jupiter.api.Disabled;
  4 +import org.junit.jupiter.api.Test;
  5 +import org.springframework.ai.chat.messages.Message;
  6 +import org.springframework.ai.chat.messages.SystemMessage;
  7 +import org.springframework.ai.chat.messages.UserMessage;
  8 +import org.springframework.ai.chat.model.ChatResponse;
  9 +import org.springframework.ai.chat.prompt.Prompt;
  10 +import org.springframework.ai.openai.OpenAiChatModel;
  11 +import org.springframework.ai.openai.api.OpenAiApi;
  12 +import reactor.core.publisher.Flux;
  13 +
  14 +import java.util.ArrayList;
  15 +import java.util.List;
  16 +
  17 +/**
  18 + * 基于 {@link OpenAiChatModel} 集成 FastGPT 测试
  19 + *
  20 + * @author 芋道源码
  21 + */
  22 +public class FastGPTChatModelTests {
  23 +
  24 + private final OpenAiChatModel chatModel = OpenAiChatModel.builder()
  25 + .openAiApi(OpenAiApi.builder()
  26 + .baseUrl("https://cloud.fastgpt.cn/api")
  27 + .apiKey("fastgpt-aqcc61kFtF8CeaglnGAfQOCIDWwjGdJVJHv6hIlMo28otFlva2aZNK") // apiKey
  28 + .build())
  29 + .build();
  30 +
  31 + @Test
  32 + @Disabled
  33 + public void testCall() {
  34 + // 准备参数
  35 + List<Message> messages = new ArrayList<>();
  36 + messages.add(new SystemMessage("你是一个优质的文言文作者,用文言文描述着各城市的人文风景。"));
  37 + messages.add(new UserMessage("1 + 1 = ?"));
  38 +
  39 + // 调用
  40 + ChatResponse response = chatModel.call(new Prompt(messages));
  41 + // 打印结果
  42 + System.out.println(response);
  43 + System.out.println(response.getResult().getOutput());
  44 + }
  45 +
  46 + @Test
  47 + @Disabled
  48 + public void testStream() {
  49 + // 准备参数
  50 + List<Message> messages = new ArrayList<>();
  51 + messages.add(new SystemMessage("你是一个优质的文言文作者,用文言文描述着各城市的人文风景。"));
  52 + messages.add(new UserMessage("1 + 1 = ?"));
  53 +
  54 + // 调用
  55 + Flux<ChatResponse> flux = chatModel.stream(new Prompt(messages));
  56 + // 打印结果
  57 + flux.doOnNext(response -> {
  58 +// System.out.println(response);
  59 + System.out.println(response.getResult().getOutput());
  60 + }).then().block();
  61 + }
  62 +
  63 +}