史上不怎么全的Ollama+AnythingLLM部署及使用

1.下载及安装Ollama

Ollama的官网为:https://ollama.com/,点击右上角的Download即可下载模型。注意下载模型时根据自己电脑的配置情况下载。

Ollama支持macOS、Linux和Windows版本,下载后按照提示进行安装即可。

2. 下载预训练好的大语言模型

(1)打开Ollama官网后,点击Models菜单,根据需要下载需要的开源大模型。

 

(2)查看大模型的介绍信息

点击需要下载的大模型,进入大模型的详细介绍页面,包括大模型的参数量、大小、回复模板、问答表现等详细信息。

3. 本地命令行运行大模型

(1)下载好预训练的大模型后,打开电脑终端,在终端内输入 ollama run 大模型名 即可运行大模型。

运行之后即可在命令行中输入你的问题,此时会调用本地大模型进行回答。

(2)如果不知道大模型的名称,可以输入ollama list 查看已安装好的大模型

(3)ollama也可以采用服务的方式运行,具体命令为: ollama serve

4. ollama大模型本地API调用

除了在命令行中使用外,ollama还开放了大模型的API调用功能,具体方法如下:

(1)查看API调用地址

命令行执行ollama show --help 即可获取本地API调用接口,如本地的地址为:http://127.0.0.1:11434/

(2)调用API开展对话

① generate方法:该方法可以流式返回结果,具体用法如下:

curl http://localhost:11434/api/generate -d '{
  "model": "qwen2:latest",
  "prompt":"GIS的全称是什么"
}'

如果不想流式返回,想要一次性返回结果则需要添加参数:"stream": false

curl http://localhost:11434/api/generate -d '{
  "model": "gemma:2b",
  "prompt":"GIS的全称是什么",
  "stream": false
}'

② chat方法:对话方式

curl http://localhost:11434/api/chat -d '{
  "model": "gemma:2b",
  "messages": [
    { "role": "user", "content": "GIS的全称是什么" }
  ],
 "stream": false
}'

generate 和 chat 的区别在于,generate 是一次性生成的数据。chat 可以附加历史记录,多轮对话。

③ 也可采用Python进行调用

首先安装依赖库:

pip install ollama
pip install requests

按照如下代码调用接口:

import ollama
import requests

host="127.0.0.1"
port="11434"
llm_model="qwen2:latest"
url = f"http://{host}:{port}/api/chat"

# 方式1:
client= ollama.Client(host=url)
res=client.chat(model=llm_model,messages=[{"role": "user","content": "SAM是什么"}],options={"temperature":0}) 
print(res)

#方式2:
headers = {"Content-Type": "application/json"}
data = {
        "model": llm_model, #模型选择
        "options": {
            "temperature": 0.  #为0表示不让模型自由发挥,输出结果相对较固定,>0的话,输出的结果会比较放飞自我
         },
        "stream": False, #流式输出
        "messages": [{
            "role": "system",
            "content":"你能够将图片作为输入吗?"
        }] #对话列表
    }
response=requests.post(url,json=data,headers=headers,timeout=60)
res=response.json()
print(res)

方式2调用时需要开启ollama服务模式。

5. 基于Web UI的大模型调用

以上方法中,命令行方式较为局限,API需要做进一步的开发,因此目前也有基于ollama的相关Web UI应用可供选择,最常用的UI主要有:

open-webui:(openwebui.com)

AnythingLLM:AnythingLLM | The all-in-one AI application for everyone

如果仅是使用本地大模型,做一些本地的知识库,推荐使用AnythingLLM,较为简单,如果需要做一些UI的定制开发,建议使用Open WebUI。本教程以AnythingLLM为例介绍大模型的本地化构建方法。

6. 基于AnythingLLM的大模型应用

(1)运行本地大模型后,打开AnythingLLM,点击左下角的配置按钮,配置本地大模型。

(2)点击“AI Providers”菜单下的“LLM”菜单,根据实际情况按照如下配置。

其中,LLM Provider选择Ollama,Ollama Model选择你实际安装的预训练好的大模型,其余一般无需改动。

(3)设置向量数据库

点击“AI Providers”菜单下的“Vector Database”菜单,设置向量数据库,该向量数据库主要用于存储本地知识库,默认选择的向量数据库为“LanceDB”,适用于本地小批量数据库,较为简单,无需配置。

(4)设置嵌入词提供商

点击“AI Providers”菜单下的“Embedding Preference”菜单,设置嵌入词模型,默认为免费的“AnythingLLMEmbedder”,也可根据实际选择其它提供商。该设置主要用于处理上传的本地文档(如pdf文档)转换为词向量并存储到向量数据库中,主要用于构建知识库。

其余的默认设置即可。

(5)开启本地会话

点击“+ New Workspace”按钮即可打开新的会话,然后就可以愉快的使用了。

(6)构建本地知识库

如果你想要本地的大模型更加懂你,能够为你提供更加符合你需求的内容,则可以添加本地的文件自动化构建知识库,文件可以是可编辑的文本、word、pdf等。

① 点击会话的按钮,上传本地知识库。

② 选择需要上传的文件,并加载到会话中

③ 点击右下角“Save and Embed”等待构建成功提示即可使用。

④ 调用本地知识库

 

==============

优雅的分割线啊

==============

以上是基于Ollama和AnythingLLM构建本地大模型的示例,后续还会继续就大模型相关内容进行更新,TODO List如下:

多模态数据信息提取方法

RAG本地大模型知识库构建教程

提示词工程

定制化WebUI开发教程

阅读剩余
THE END