赞
踩
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 集成到 SpringBoot 应用中,只需要以下简单 3 步即可:
1、在总pom.xml
中新增 SpringBoot Starter 依赖:
- <dependency>
- <groupId>io.springboot.ai</groupId>
- <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
- <version>1.0.0</version>
- </dependency>
2、在 SpringBoot 配置文件application.properties
中增加 Ollama 配置信息:
- server.port=8088
- spring.application.name=NTopicBootX
- spring.ai.ollama.base-url=http://localhost:11434
- spring.ai.ollama.chat.options.model=qwen:0.5b
配置文件指定了 Ollama API 地址和端口,同时指定了默认模型qwen:0.5b(注意:模型需要在本地已经存在)
3、使用OllamaChatClient
进行文字生成或者对话:
-
- import org.springframework.ai.chat.ChatResponse;
- import org.springframework.ai.chat.prompt.Prompt;
- import org.springframework.ai.ollama.OllamaChatClient;
- import org.springframework.ai.ollama.api.OllamaOptions;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- public class OllamaClientController {
-
- @Autowired
- @Qualifier("ollamaChatClient")
- private OllamaChatClient ollamaChatClient;
-
- /**
- * http://localhost:8088/ollama/chat/v1?msg=天空为什么是蓝色的?
- */
- @GetMapping("/ollama/chat/v1")
- public String ollamaChat(@RequestParam String msg) {
- return this.ollamaChatClient.call(msg);
- }
-
- /**
- * http://localhost:8088/ollama/chat/v2?msg=人为什么要不断的追求卓越?
- */
- @GetMapping("/ollama/chat/v2")
- public Object ollamaChatV2(@RequestParam String msg) {
- Prompt prompt = new Prompt(msg);
- ChatResponse chatResponse = ollamaChatClient.call(prompt);
- return chatResponse;
- }
-
- /**
- * http://localhost:8088/ollama/chat/v3?msg=你认为老牛同学的文章如何?
- */
- @GetMapping("/ollama/chat/v3")
- public Object ollamaChatV3(@RequestParam String msg) {
- Prompt prompt = new Prompt(
- msg,
- OllamaOptions.create()
- .withModel("qwen:0.5b")
- .withTemperature(0.4F));
- ChatResponse chatResponse = ollamaChatClient.call(prompt);
- return chatResponse.getResult().getOutput().getContent();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。