当前位置:   article > 正文

springboot 使用 ollama 搭建的大模型_spring boot ollama

spring boot ollama

ollama环境变量配置

OLLAMA_MODELS:模型文件存放目录,默认目录为当前用户目录(Windows 目录:C:\Users%username%.ollama\models,MacOS 目录:~/.ollama/models,Linux 目录:/usr/share/ollama/.ollama/models),如果是 Windows 系统建议修改(如:D:\OllamaModels),避免 C 盘空间吃紧

OLLAMA_HOST:Ollama 服务监听的网络地址,默认为127.0.0.1,如果允许其他电脑访问 Ollama(如:局域网中的其他电脑),建议设置0.0.0.0,从而允许其他网络访问

OLLAMA_PORT:Ollama 服务监听的默认端口,默认为11434,如果端口有冲突,可以修改设置成其他端口(如:8080等)

OLLAMA_ORIGINS:HTTP 客户端请求来源,半角逗号分隔列表,若本地使用无严格要求,可以设置成星号,代表不受限制

OLLAMA_KEEP_ALIVE:大模型加载到内存中后的存活时间,默认为5m即 5 分钟(如:纯数字如 300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活);我们可设置成24h,即模型在内存中保持 24 小时,提高访问速度

OLLAMA_NUM_PARALLEL:请求处理并发数量,默认为1,即单并发串行处理请求,可根据实际情况进行调整

OLLAMA_MAX_QUEUE:请求队列长度,默认值为512,可以根据情况设置,超过队列长度请求被抛弃

OLLAMA_DEBUG:输出 Debug 日志标识,应用研发阶段可以设置成1,即输出详细日志信息,便于排查问题

OLLAMA_MAX_LOADED_MODELS:最多同时加载到内存中模型的数量,默认为1,即只能有 1 个模型在内存中

1、docker运行ollama容器

docker run -d --gpus=all -e OLLAMA_NUM_PARALLEL=4 -e OLLAMA_MAX_LOADED_MODELS=1 -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

2、进入ollama容器执行以下命令进行大模型下载,具体可以参考ollama可下载的模型library,本次选用qwen2:7b做为知识库的模型。

ollama run qwen2:7b

Ollama 客户端:Java API 应用(SpringBoot 应用)

我们也可以把 Ollama 集成到 SpringBoot 应用中,只需要以下简单 3 步即可:

1、在总pom.xml中新增 SpringBoot Starter 依赖:

  1. <dependency>
  2. <groupId>io.springboot.ai</groupId>
  3. <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
  4. <version>1.0.0</version>
  5. </dependency>

2、在 SpringBoot 配置文件application.properties中增加 Ollama 配置信息:

  1. server.port=8088
  2. spring.application.name=NTopicBootX
  3. spring.ai.ollama.base-url=http://localhost:11434
  4. spring.ai.ollama.chat.options.model=qwen:0.5b

配置文件指定了 Ollama API 地址和端口,同时指定了默认模型qwen:0.5b(注意:模型需要在本地已经存在)

3、使用OllamaChatClient进行文字生成或者对话:

  1. import org.springframework.ai.chat.ChatResponse;
  2. import org.springframework.ai.chat.prompt.Prompt;
  3. import org.springframework.ai.ollama.OllamaChatClient;
  4. import org.springframework.ai.ollama.api.OllamaOptions;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.beans.factory.annotation.Qualifier;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.RequestParam;
  9. import org.springframework.web.bind.annotation.RestController;
  10. @RestController
  11. public class OllamaClientController {
  12. @Autowired
  13. @Qualifier("ollamaChatClient")
  14. private OllamaChatClient ollamaChatClient;
  15. /**
  16. * http://localhost:8088/ollama/chat/v1?msg=天空为什么是蓝色的?
  17. */
  18. @GetMapping("/ollama/chat/v1")
  19. public String ollamaChat(@RequestParam String msg) {
  20. return this.ollamaChatClient.call(msg);
  21. }
  22. /**
  23. * http://localhost:8088/ollama/chat/v2?msg=人为什么要不断的追求卓越?
  24. */
  25. @GetMapping("/ollama/chat/v2")
  26. public Object ollamaChatV2(@RequestParam String msg) {
  27. Prompt prompt = new Prompt(msg);
  28. ChatResponse chatResponse = ollamaChatClient.call(prompt);
  29. return chatResponse;
  30. }
  31. /**
  32. * http://localhost:8088/ollama/chat/v3?msg=你认为老牛同学的文章如何?
  33. */
  34. @GetMapping("/ollama/chat/v3")
  35. public Object ollamaChatV3(@RequestParam String msg) {
  36. Prompt prompt = new Prompt(
  37. msg,
  38. OllamaOptions.create()
  39. .withModel("qwen:0.5b")
  40. .withTemperature(0.4F));
  41. ChatResponse chatResponse = ollamaChatClient.call(prompt);
  42. return chatResponse.getResult().getOutput().getContent();
  43. }
  44. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/969897
推荐阅读
相关标签
  

闽ICP备14008679号