diff --git a/pom.xml b/pom.xml
index 42cdb80..a0542ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,12 +4,14 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
xyz.wbsite
- start-ai
+ starter-ai
0.0.1-SNAPSHOT
jar
1.8
+
+ 1.0.0-beta1
@@ -40,9 +42,29 @@
- org.dromara.easyai
- easyAi
- 1.3.3
+ dev.langchain4j
+ langchain4j-core
+ ${langchain4j.version}
+
+
+ dev.langchain4j
+ langchain4j
+ ${langchain4j.version}
+
+
+ dev.langchain4j
+ langchain4j-ollama
+ ${langchain4j.version}
+
+
+ dev.langchain4j
+ langchain4j-embeddings
+ ${langchain4j.version}
+
+
+ dev.langchain4j
+ langchain4j-chroma
+ ${langchain4j.version}
\ No newline at end of file
diff --git a/src/main/java/xyz/wbsite/ai/Main.java b/src/main/java/xyz/wbsite/ai/Main.java
new file mode 100644
index 0000000..f8cf0e0
--- /dev/null
+++ b/src/main/java/xyz/wbsite/ai/Main.java
@@ -0,0 +1,91 @@
+package xyz.wbsite.ai;
+
+import cn.hutool.core.thread.ThreadUtil;
+import cn.hutool.json.JSONUtil;
+import com.fasterxml.jackson.annotation.JsonUnwrapped;
+import dev.langchain4j.data.message.AiMessage;
+import dev.langchain4j.data.message.ChatMessage;
+import dev.langchain4j.data.message.UserMessage;
+import dev.langchain4j.model.chat.ChatLanguageModel;
+import dev.langchain4j.model.chat.StreamingChatLanguageModel;
+import dev.langchain4j.model.chat.request.ChatRequest;
+import dev.langchain4j.model.chat.response.ChatResponse;
+import dev.langchain4j.model.chat.response.StreamingChatResponseHandler;
+import dev.langchain4j.model.ollama.OllamaChatModel;
+import dev.langchain4j.model.ollama.OllamaStreamingChatModel;
+
+/**
+ * 主函数入口
+ */
+public class Main {
+
+ public static void main(String[] args) {
+
+// testSimpleChat(args);
+ testStreamChat(args);
+ }
+
+ public static void testSimpleChat(String[] args) {
+
+ ChatLanguageModel model = OllamaChatModel.builder()
+ .baseUrl("http://36.138.207.178:11434")
+ .modelName("deepseek-r1:32B")
+ .build();
+
+ String generate = model.chat("请问,你是谁?");
+ System.out.println(generate);
+
+ ChatResponse chat = model.chat(new UserMessage("请问,你是谁?"));
+ String text = chat.aiMessage().text();
+ System.out.println(text);
+
+ ChatRequest build = ChatRequest.builder()
+ .messages(new ChatMessage[]{UserMessage.from("我想知道1+1等于几")})
+ .build();
+ ChatResponse chatResponse = model.chat(build);
+ System.out.println(chatResponse.aiMessage().text());
+
+ }
+
+ public static void testStreamChat(String[] args) {
+ final boolean[] end = {false};
+
+ StreamingChatLanguageModel model = OllamaStreamingChatModel.builder()
+ .baseUrl("http://36.138.207.178:11434")
+ .modelName("deepseek-r1:32B")
+ .build();
+
+ String question = "假如树上有10只鸟,10分钟前飞走了2只,5分钟前又飞回了1只,刚刚又来了3只,那现在树上有几只鸟?";
+
+ System.out.println("开始提问");
+
+ ChatRequest chatRequest = ChatRequest.builder().messages(new ChatMessage[]{UserMessage.from(question)}).build();
+
+ final StringBuilder sb = new StringBuilder();
+
+ model.chat(chatRequest, new StreamingChatResponseHandler() {
+ @Override
+ public void onPartialResponse(String s) {
+ System.out.print(s);
+ sb.append(s);
+ }
+
+ @Override
+ public void onCompleteResponse(ChatResponse chatResponse) {
+ System.out.println("-----回答结束-----");
+ System.out.println(JSONUtil.toJsonStr(chatResponse));
+ end[0] = true;
+ }
+
+ @Override
+ public void onError(Throwable throwable) {
+ System.err.println("-----回答出错-----");
+ end[0] = true;
+ }
+ });
+
+ while (!end[0]) {
+ ThreadUtil.safeSleep(1000);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/xyz/wbsite/start-ai/Main.java b/src/main/java/xyz/wbsite/start-ai/Main.java
deleted file mode 100644
index e69de29..0000000