基于ollama,langchain,springboot从零搭建知识库二【简单的与大模子进行 ...

打印 上一主题 下一主题

主题 1045|帖子 1045|积分 3135

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
构建springboot项目,基于jdk17



添加langchain4j依赖(本demo仅支持ollama)


构建好项目之后就开始写代码啦
首先修改application.yml
  1. server:
  2.   tomcat:
  3.     uri-encoding: utf-8
  4.   port: 8888
  5. spring:
  6.   # 应用名称
  7.   application:
  8.     name: studyllm
  9.   # 默认执行的配置文件
  10.   main:
  11.     allow-bean-definition-overriding: true
复制代码
接着,新增一个ChatController类
  1. package com.example.studyllm.ollama;
  2. import dev.langchain4j.data.message.AiMessage;
  3. import dev.langchain4j.data.message.SystemMessage;
  4. import dev.langchain4j.data.message.UserMessage;
  5. import dev.langchain4j.model.chat.ChatLanguageModel;
  6. import dev.langchain4j.model.ollama.OllamaChatModel;
  7. import dev.langchain4j.model.output.Response;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RestController;
  11. @RestController
  12. @RequestMapping("/ollama")
  13. public class ChatController {
  14.     @GetMapping("/chat")
  15.     public String chat(String message){
  16.         ChatLanguageModel model = buildModel();
  17.         Response<AiMessage> response = model.generate
  18.                 (new SystemMessage("你是一个国产大模型,请使用中文回复所有问题")
  19.                         ,new UserMessage(message));
  20.         return response.content().text();
  21.     }
  22.     private ChatLanguageModel buildModel(){
  23.         return OllamaChatModel.builder()
  24.                 .baseUrl("http://127.0.0.1:11434")
  25.                 .modelName("qwen:4b")
  26.                 .temperature(0.1)
  27.                 .logRequests(true)
  28.                 .logResponses(true)
  29.                 .build();
  30.     }
  31. }
复制代码
至此,就可以通过http://localhost:8888/ollama/chat 接口跟大模子进行对话啦

若需要使用流式输出可以调整为:
在pom中引入依赖:
  1. <dependency>
  2.             <groupId>dev.langchain4j</groupId>
  3.             <artifactId>langchain4j-reactor</artifactId>
  4.             <version>0.36.0</version>
  5.         </dependency>
复制代码
  1. package com.example.studyllm.ollama;
  2. import dev.langchain4j.data.message.AiMessage;
  3. import dev.langchain4j.data.message.SystemMessage;
  4. import dev.langchain4j.data.message.UserMessage;
  5. import dev.langchain4j.memory.chat.MessageWindowChatMemory;
  6. import dev.langchain4j.model.chat.ChatLanguageModel;
  7. import dev.langchain4j.model.chat.StreamingChatLanguageModel;
  8. import dev.langchain4j.model.ollama.OllamaChatModel;
  9. import dev.langchain4j.model.ollama.OllamaStreamingChatModel;
  10. import dev.langchain4j.model.output.Response;
  11. import dev.langchain4j.service.AiServices;
  12. import org.springframework.web.bind.annotation.GetMapping;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import reactor.core.publisher.Flux;
  16. @RestController
  17. @RequestMapping("/ollama")
  18. public class ChatController {
  19.     @GetMapping(value="/chat", produces = "text/event-stream")
  20.     public Flux<String> chat(){
  21.         String message = "中國首都是哪裡";
  22.         StreamingChatLanguageModel model = buildModel();
  23.         Assistant assistant = AiServices.builder(Assistant.class)
  24.                 .streamingChatLanguageModel(model)
  25.                 .chatMemory(MessageWindowChatMemory.withMaxMessages(10))
  26.                 .build();
  27.         return assistant.chat(message);
  28.     }
  29.     private StreamingChatLanguageModel buildModel(){
  30.         return OllamaStreamingChatModel.builder()
  31.                 .baseUrl("http://127.0.0.1:11434")
  32.                 .modelName("qwen-4b")
  33.                 .temperature(0.1)
  34.                 .build();
  35.     }
  36. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表