Ollama

官网:Ollama

GitHub:GitHub - ollama/ollama: Get up and running with Llama 2, Mistral, and other large language models locally.

安装

Linux

这里的测试环境是:Ubuntu 22.04 + Intel(R)Xeon(R) CPU E5-2699 v4 2.20GHZ + RAM(512GB)

官网推荐

官网给的 Linux 的安装方式很简单,只需一个命令,如下:

curl https://ollama.ai/install.sh | sh
            

尝试了一下,安装失败了……看了一下原因,上面的脚本会在GitHub上下载文件,你懂的,被墙了,这台服务器又没有梯子……

自己动手

这点小事儿不能阻挡咱的脚步,是不?于是就看了一下上面的脚本,发现文件下载地址是这个:Releases · ollama/ollama · GitHub。于是就下了最新版本的(2024-02-01,版本是 0.1.22):ollama-linux-amd64

问了一下大模型,下载了文件之后怎么安装,下面是他的回复:

大语言模型是这样回答的

如果已经提前下载了Ollama的Linux版本(ollama-linux-amd64文件),可以按照以下步骤进行安装:

  1. 将下载的ollama-linux-amd64文件复制到你希望安装Ollama的目录中。
  2. 打开终端,并进入到包含ollama-linux-amd64文件的目录。
  3. 运行以下命令,将ollama-linux-amd64文件设置为可执行文件: chmod +x ollama-linux-amd64
  4. 运行以下命令,将ollama-linux-amd64文件移动到/usr/local/bin目录(或其他你希望安装的目录): sudo mv ollama-linux-amd64 /usr/local/bin/ollama
  5. 现在,你可以在终端中运行ollama命令来启动Ollama。

注意:在上述步骤中,假设你已经拥有足够的权限来执行sudo命令。如果没有sudo权限,请使用其他适当的方式来移动ollama-linux-amd64文件到所需的目录。

看了他的回复之后,瞬间明白了。这不就相当于 exe 嘛,不过这里是免安装的

sudo chmod +x ollama-linux-amd64
sudo mv ollama-linux-amd64 /usr/local/bin/ollama
            

安装 ollama-linux-amd64

跑起来

先看看他有哪些命令

ollama -h

看了这个deepseek-coder之后,选一个合适大小的大模型直接走起:

ollama run deepseek-coder:6.7b
            

执行命令: ollama run deepseek-coder:6.7b 异常

启动服务

按照上面的指示,需要先启动服务

#   默认监听 127.0.0.1
ollama serve
#   指定监听的IP地址
OLLAMA_HOST=192.168.x.x ollama serve
            

执行命令启动服务: ollama serve

注意:上面的截图并不是第一次执行ollama serve;第一次启动时还会提示生成一个Public Key,暂时还没有用到这个key,如下图:

第一次启动服务: ollama serve

2024-03-21
 
再次回味时(要测试 Continue - Claude, CodeLlama, GPT-4, and more 插件),首先启动了OLLAMA_HOST=192.168.x.x ollama serve,之后运行一个模型ollama run deepseek-coder:6.7b,没想到提示服务没启动……后来换成ollama serve就好了。说明ollama run只能在127.0.0.1使用,这个命令做了两件事:如果模型没有拉取,则先拉取;之后进入命令行交互模式。也就是说已经拉取了某些模型之后,如果你只是想调用他的API,只需要ollama serve即可。后面测试发现,ollama pull也只能在127.0.0.1使用。
#   只能本地使用
ollama serve
ollama run llava:13b
ollama pull llava:13b

#   指定监听的IP地址
OLLAMA_HOST=192.168.x.x ollama serve
OLLAMA_HOST=192.168.x.x ollama run llava:13b
OLLAMA_HOST=192.168.x.x ollama pull llava:13b

#   总之,OLLAMA_HOST 这个要使用就都使用,要不都不使用
                    

OLLAMA_HOST=192.168.x.x ollama serve 指定IP地址并启动服务,ollama pull llava:13b 拉取模型同样指定IP地址

拉取模型

#   拉取一个模型
ollama pull deepseek-coder:6.7b

#   运行一个模型。如果本地没有,会先拉取。之后进入命令行交互模式
ollama run deepseek-coder:6.7b
            

ollama run deepseek-coder:6.7b  拉取模型部分

ollama run deepseek-coder:6.7b  命令行交互部分

2024-04-08
ollama 拉取的模型放到哪里了?
ubuntu 22.04 为例,路径为:/home/xxx/.ollama/models/blobs
ollama 缓存模型的位置
上面是默认的缓存位置,你也可以动态设置缓存位置:OLLAMA_MODELS=/home/xxx/llm/0-model/ollama/models OLLAMA_HOST=192.168.xxx.xxx ollama serve

客户端

curl

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-coder:6.7b",
  "prompt":"javascript 实现斐波那契数列"
}'


curl http://localhost:11434/api/chat -d '{
  "model": "deepseek-coder:6.7b",
  "messages": [
    { "role": "user", "content": "javascript 实现斐波那契数列" }
  ]
}'
            

Postman

Postman api/chat 测试

你要看着有些费劲,你可以在请求参数中添加:"stream": false来禁用流式响应

Visual Studio Code

VS Code 算是客户端的一种,放在这里突出他的重要性……

Privy

市场位置:Privy - AI coding assistant like GitHub Copilot that runs locally.

这款插件支持的功能还挺多:自动补全|AI聊天|解释代码|生成测试|查找bug |诊断错误(说明:从上面的网址翻译的)。使用起来比较简单,下面看一下如何配置以及对话:

Visual Studio Code 插件 Privy 配置以及AI对话

选中你要搞的代码,看一下 Privy 具体能够干啥

Privy 功能:自动补全|AI聊天|解释代码|生成测试|查找bug |诊断错误

下面测试了一下【解释代码】功能,代码来自Javascript库a2bei4中的MyId。该类库已经上传至a2bei4 - npm;或者直接点击unpkg.com/a2bei4查看

Privy 解释代码

竟然是用英文回答的……他怎么知道咱的英文水平很溜,😅😅😅

Code GPT: Chat & AI Agents

官网:Code like a Pro with the CodeGPT AI Copilot | 关于CodeGPT | CodeGPT

这个插件感觉挺厉害,下载量不小,支持的 Provider 挺多的,当然这里测试的是Ollama。测试时发现,你只能在下拉框中选择 Provider ,选择之后没有配置IP地址和端口的地方,访问的是localhost:11434……我去,这是让我们人手一个的意思啊!之后查了一下,看看能不能配置IP地址,在 GitHub 的官方仓储上搜索的,有不少关于这个话题。其中的解决办法有:

选择 Provider 时,选择 Custom
配置 Custom Link,这里配置的是: http://IP:11434/api/chat ; Key,随便写了一个
对话时,从Ollama 服务打印的日志来看,访问的地址竟然是 http://IP:11434/chat/completions 。这不是 openai api 的格式吗?后来用 LM Studio 启动服务做测试,还真的可以
用代理
提到了LiteLLM,这里没有测试
倒是想到了正在使用的 nginx ,后面细说

凑巧正在尝试 nginx ,下面是conf\nginx.conf文件的配置内容:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       11434;
        server_name  localhost;

        location / {
            #   访问 localhost:11434 时,会转发到下面的地址
            proxy_pass http://192.168.xxx.xxx:11434;
            proxy_connect_timeout 600s;
        } 
    }
}
            

配置好之后,选择 Provider 时就可以选择 Ollama 了,测试如下图:

Code GPT: Chat & AI Agents 插件测试

Continue - Claude, CodeLlama, GPT-4, and more

插件地址:Continue - Claude, CodeLlama, GPT-4, and more - Visual Studio Marketplace

GitHub官网:GitHub - continuedev/continue: ⏩ The easiest way to code with any LLM—Continue is an open-source autopilot for VS Code and JetBrains

先占位置,知道有这么个插件,先简单的说一下该插件怎么使用

如何配置

按照下图中的步骤操作即可

Continue - Claude, CodeLlama, GPT-4, and more 插件配置过程

对话测试

Continue - Claude, CodeLlama, GPT-4, and more 插件对话测试