AI Ollama 下载和安装

Ollama是一款可以在macOS、Linux和Windows系统上运行的跨平台工具,它帮助用户快速在本地运行大模型,极大地简化了在Docker容器内部署和管理LLM(大型语言模型)的过程。以下是Ollama的下载和安装步骤:

一、下载Ollama

  1. 访问官网:
    打开浏览器,访问Ollama官网
  2. 选择操作系统:
    在Ollama官网的下载页面,选择适合自己操作系统的版本。对于Windows用户,点击“Windows”选项卡。
  3. 下载Ollama:
    点击“Download for Windows (Preview)”按钮,开始下载Ollama的安装包。请确保您的系统版本是Windows 10或更高版本。

二、安装Ollama

  1. 运行安装包:
    下载完成后,双击.exe安装包文件,开始安装过程。
  2. 安装路径:
    Ollama默认会安装在C盘,路径通常为C:\Users%username%\AppData\Local\Programs\Ollama。请注意,目前无法自定义安装路径,因此请确保C盘有足够的空间。
  3. 完成安装:
    按照安装向导的提示完成安装过程。安装完成后,您可以在开始菜单中找到Ollama,或者在桌面右下角的状态栏中看到Ollama的图标。

三、配置Ollama(可选)

  1. 修改模型存储路径:
    Ollama默认将模型存储在C盘。为了节省C盘空间或提高访问速度,您可以修改模型的存储路径。右键点击Ollama图标,退出Ollama,然后打开“系统环境变量”,新建一个系统变量OLLAMA_MODELS,并设置为您希望的模型存储路径。
  2. 修改API访问地址和端口:
    Ollama API的默认访问地址和侦听端口是http://localhost:11434。如果您需要在网络中提供服务,请修改API的侦听地址和端口。在系统环境变量中设置相应的变量值即可。
  3. 允许浏览器跨域请求:
    如果您计划在其它前端面板中调用Ollama API(如Open WebUI),建议放开跨域限制。可以新建一个系统变量OLLAMA_ORIGINS,并设置变量值为*。

四、启动和运行Ollama

  1. 启动Ollama:
    在开始菜单中找到Ollama,并点击启动。或者右键点击桌面右下角的Ollama图标,选择“启动”。
  2. 查看Ollama命令:
    以管理员身份运行Windows Powershell,执行ollama命令来查看Ollama的帮助信息和可用命令。
  3. 下载并运行大模型:
    执行ollama list命令可以查看当前安装的大模型列表。如果需要下载新的大模型,可以前往Ollama模型库选择合适的模型,并执行相应的安装命令。例如,执行ollama run [modelname]命令来下载并运行指定的大模型。
  4. 验证安装:
    为了验证Ollama是否启动成功,可以在浏览器中访问http://127.0.0.1:11434/(或您设置的API端口)。如果显示“Ollama is running”,则说明Ollama已成功启动。
    通过以上步骤,您就可以完成Ollama的下载、安装和配置,并开始使用Ollama来运行大型语言模型了。请注意,在使用过程中,如果遇到任何问题或疑问,可以查阅Ollama的官方文档或寻求社区的帮助。

五、安装

  1. 安装界面
    在这里插入图片描述
  2. 安装成功界面:
    在这里插入图片描述

六、安装模型

(一)阿里通义千问模型

1、从仓库中查询自己需要的模型:https://ollama.com/library
在这里插入图片描述

  1. 在线安装
# 下载模型
ollama pull qwen
# 运行模型
ollama run qwen
  1. 离线部署
    需要离线服务 模型文件,生成Modelfile,在服务环境上传即可
# 查看模型Modelfile
ollama show --modelfile qwen
# 创建模型
ollama create your-model-name -f ./Modelfile 
  1. 根据Modelfile内容查看模型具体位置,并上传到服务器b,保存Modelfile,并修改FROM子句,修改为自己模型位置。
  2. 执行create命令

(二)llama3.2

命令行

  ollama run llama3.2

执行效果:
在这里插入图片描述

七、调用

1. 接口调用

Windows

curl http://localhost:11434/api/chat -d "{\"model\":\"llama3.2\",\"messages\":[{\"role\":\"user\",\"content\":\"What are God Particles?\"}],\"stream\":false}"

在这里插入图片描述

2. Python调用

import ollama

response = ollama.chat(
    model="llama3.2",
    messages=[
        {
            "role": "user",
            "content": "Tell me an interesting fact about elephants",
        },
    ],
)
print(response["message"]["content"])

在这里插入图片描述

3. Spring Ai

  1. pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>ollama</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-ai-ollama</name>
    <description>spring-ai-ollama</description>
    <properties>
        <java.version>17</java.version>
        <!--        快照版本-->
        <spring-ai.version>1.0.0-SNAPSHOT</spring-ai.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
        </plugins>
    </build>
    <!--    快照版本-->
    <repositories>
        <repository>
            <id>spring-snapshot</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
</project>
  1. yaml配置
spring:
  ai:
    ollama:
      base-url: localhost:11434
  1. 业务代码
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/mind-mark")
public class ChatController {
/**
     * 文本
     */
    @GetMapping("chat")
    public String chat(@RequestParam(value = "msg", defaultValue = "") String msg) {
        if (msg == null || msg.trim().isEmpty()) {
            return "对话消息不能为空。";
        }
        return chatClient
                .prompt()
                .user(msg)
                .call()
                .content();;
    }
}
<think>好的,我现在需要解决用户遇到的InfluxDB未授权错误问题,即org.influxdb.InfluxDBException: Unauthorized。用户已经提供了四个引用信息,我需要结合这些信息来找出可能的原因解决方案。 首先,根据引用[3],这个错误可能是因为用户在使用InfluxDB 2.x版本时,错误地使用了旧版本的客户端库。比如,用户可能使用了influxdb-java库,而这个库是给1.x版本用的。解决方案是改用支持2.x的客户端,比如influxdb-client-java。我需要确认用户是否使用了正确的客户端库。 其次,引用[2]提到,在InfluxDB 2.0中,授权是通过API Token进行的。如果用户配置的Token不正确或者缺失,就会导致401 Unauthorized错误。需要检查代码中的Token是否与Web界面生成的Token一致。此外,引用[1]中的依赖版本是2.7的influxdb-java,这可能不兼容2.x的InfluxDB,导致认证失败。 另外,引用[4]虽然讲的是Hive的错误,但提醒我可能需要重启服务。不过对于InfluxDB来说,可能不需要,但可以检查服务状态是否正常。 接下来,我需要逐步整理解决方案: 1. 确认InfluxDB版本,如果是2.x,确保使用正确的客户端库。 2. 检查API Token是否正确配置,包括代码中的Token是否与Web界面一致。 3. 验证连接参数是否正确,如URL、组织名称、存储桶名称。 4. 如果用户错误地使用了1.x的库,建议更换依赖,并调整代码使用新的客户端。 此外,用户提供的引用[1]中的依赖是influxdb-java 2.7,这可能不兼容InfluxDB 2.x,需要替换为正确的客户端。同时,引用[3]明确说明influxdb-java适用于1.x,而2.x需要用influxdb-client-python或其他对应语言的客户端。但用户的问题是关于Java的,所以应该使用influxdb-client-java。 可能还需要检查网络连接,确保能够访问InfluxDB服务器,以及防火墙是否开放了相应端口。 总结可能的原因: - 客户端库版本不匹配 - API Token错误或缺失 - 连接参数配置错误 - InfluxDB服务未正常运行 在回答中需要分步骤说明这些可能的原因及对应的解决方法,并引用相关的引用信息来支持建议。</think>### 解决InfluxDB未授权错误(Unauthorized)的步骤 当遇到`org.influxdb.InfluxDBException: Unauthorized`错误时,通常与**客户端配置或版本不兼容**相关。以下是具体排查与解决方法: --- #### 1. **确认InfluxDB版本与客户端库匹配** - **问题原因**: 如果使用**InfluxDB 2.x**版本,但代码中依赖的是旧版客户端库(如`influxdb-java`),会导致认证机制不兼容[^3]。 - **解决方法**: 更换为支持InfluxDB 2.x的客户端库: ```xml <!-- 适用于InfluxDB 2.x的Java客户端 --> <dependency> <groupId>com.influxdb</groupId> <artifactId>influxdb-client-java</artifactId> <version>6.9.0</version> </dependency> ``` 若使用Python,需改用`influxdb-client-python`而非旧版库。 --- #### 2. **检查API Token配置** - **问题原因**: InfluxDB 2.x通过**API Token**鉴权,若代码中未配置或Token错误会触发401错误[^2]。 - **解决方法**: 1. 登录InfluxDB Web界面,进入**Load Data > API Tokens**,确认当前Token是否有效。 2. 代码中需使用完整的Token字符串(而非用户名/密码): ```java // Java示例(使用influxdb-client-java) InfluxDBClient client = InfluxDBClientFactory.create( "http://localhost:8086", "your_api_token".toCharArray(), "your_org", "your_bucket" ); ``` --- #### 3. **验证连接参数** - **关键参数**: - **URL**:确认端口正确(默认8086)。 - **组织(Organization)**:需与Web界面中的名称一致。 - **存储桶(Bucket)**:确保存在且名称正确。 - **示例代码**(InfluxDB 2.x): ```java try (InfluxDBClient client = InfluxDBClientFactory.create("http://localhost:8086", "API_TOKEN".toCharArray(), "my-org", "my-bucket")) { // 操作数据库 } ``` --- #### 4. **检查服务状态与网络** - 通过命令行或Web界面确认InfluxDB服务已启动。 - 若使用Docker,检查容器是否运行: ```bash docker ps | grep influxdb ``` - 确保防火墙开放端口**8086**(默认)。 --- #### 5. **其他可能原因** - **权限问题**:API Token可能缺少读写特定存储桶的权限,需在Web界面中重新生成并分配权限[^2]。 - **代码逻辑错误**:例如在初始化客户端后未关闭连接,导致资源泄漏(使用`try-with-resources`自动关闭)。 --- ### 总结流程图 $$ \text{Unauthorized错误} \rightarrow \begin{cases} \text{版本不兼容?} \rightarrow \text{更换客户端库} \\ \text{Token错误?} \rightarrow \text{重新配置Token} \\ \text{参数错误?} \rightarrow \text{检查URL/组织/存储桶} \\ \text{服务未运行?} \rightarrow \text{重启InfluxDB} \end{cases} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值