Ollama大模型本地部署调用

目录

一、OllamaAPI {#一、OllamaAPI}

1. 查看本地已下载模型 http://localhost:11434/api/tags

  • 功能:列出本地已下载的模型。
  • 响应格式:
  {
      "models": [
          {
              "name": "<model-name>", // 模型名称
              "size": "<model-size>", // 模型大小
              "modified_at": "<timestamp>" // 修改时间
          }
      ]
  }
  • 示例请求:
  curl http://localhost:11434/api/tags

2.拉取模型(Pull Model)

  • 端点:POST /api/pull
  • 功能:从模型库中拉取模型。
  • 请求格式:
  {
      "name": "<model-name>" // 模型名称
  }
  • 响应格式:
  {
      "status": "downloading", // 下载状态
      "digest": "<model-digest>" // 模型摘要
  }
  • 示例请求:
  curl http://localhost:11434/api/pull -d '{
      "name": "deepseek-coder"
  }'

3. 调用模型生成文本(Generate Text)

  • 端点:POST /api/generate
  • 功能:向模型发送提示词(prompt),并获取生成的文本。
  • 请求格式:
  {
      "model": "<model-name>",  // 模型名称
      "prompt": "<input-text>", // 输入的提示词
      "stream": false,          // 是否启用流式响应(默认 false)
      "options": {              // 可选参数
          "temperature": 0.7,   // 温度参数
          "max_tokens": 100     // 最大 token 数
      }
  }
  • 响应格式:
  {
      "response": "<generated-text>", // 生成的文本
      "done": true                    // 是否完成
  }
  • 示例请求:
  curl http://localhost:11434/api/generate -d '{
      "model": "deepseek-r1",
      "prompt": "帮我制定AI学习计划",
      "stream": false
  }'

4. 聊天(Chat)

  • 端点:POST /api/chat
  • 功能:支持多轮对话,模型会记住上下文。
  • 请求格式:
  {
      "model": "<model-name>",  // 模型名称
      "messages": [             // 消息列表
          {
              "role": "user",   // 用户角色
              "content": "<input-text>" // 用户输入
          }
      ],
      "stream": false,          // 是否启用流式响应
      "options": {              // 可选参数
          "temperature": 0.7,
          "max_tokens": 100
      }
  }
  • 响应格式:
  {
      "message": {
          "role": "assistant",    // 助手角色
          "content": "<generated-text>" // 生成的文本
      },
      "done": true
  }
  • 示例请求:
  curl http://localhost:11434/api/chat -d '{
      "model": "deepseek-r1",
      "messages": [
          {
              "role": "user",
              "content": "帮我制定AI学习计划"
          }
      ],
      "stream": false
  }'

二、命令行调用{#二、命令行调用}

//启动ollama服务 
ollama serve 

//停止ollama服务
ps aux | grep ollama
kill -9 {ollama serve的PID}

//查看本地模型
ollama ls 

//拉取远程模型
ollama pull deepseek-r1 

//运行本地模型
ollama run deepseek-r1 

进入会话后的操作命令:

(myenv) MBP-WD6RT4MYFV-0157:~ xxx$ Ollama run deepseek-r1 
>>> /help
Available Commands:
  /set            Set session variables
  /show           Show model information
  /load <model>   Load a session or model
  /save <model>   Save your current session
  /clear          Clear session context
  /bye            Exit
  /?, /help       Help for a command
  /? shortcuts    Help for keyboard shortcuts

Use """ to begin a multi-line message.

三、API调用{#三、API调用}

查看ollama运行状态 http://127.0.0.1:11434/,查看本地已下载模型 http://127.0.0.1:11434/api/tags
通过curl调用本地api - 单轮会话:

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1",
  "prompt": "制定AI学习计划", 
  "stream": false
}'

通过curl调用本地api - 多轮会话(记住上下文):

curl http://localhost:11434/api/chat -d '{
      "model": "deepseek-r1",
      "messages": [
          {
              "role": "user",
              "content": "帮我制定AI学习计划"
          }
      ],
      "stream": false
  }'

四、Python脚本调用{#四、Python脚本调用}

步骤 1:创建虚拟环境

  • 打开终端或命令行。
  • 创建虚拟环境:
    在项目目录下运行以下命令创建一个名为myenv的虚拟环境:
   python3 -m venv myenv

步骤 2:激活虚拟环境

  • 激活虚拟环境:
  • 在Linux 或 macOS上:
     source myenv/bin/activate
  • 在Windows上:
     myenv\Scripts\activate

激活后,你的终端提示符会显示虚拟环境的名称,例如:

   (myenv) user@host:~$

步骤 3:安装依赖

  • 安装requests库:
    在激活的虚拟环境中,运行以下命令安装requests库:
   pip3 install requests

步骤 4:编写 Python 脚本

  • 创建脚本文件:
    在桌面目录下创建一个名为ollama_api_call.py的文件。
  • 编写脚本内容:
    打开ollama_api_call.py文件,并写入以下代码:
   import requests
   # 设置 API 端点和请求数据
   url = "http://localhost:11434/api/chat"  # Ollama API 端点
   headers = {"Content-Type": "application/json"}  # 请求头
   data = {
       "model": "deepseek-r1",  # 模型名称
       "messages": [
           {"role": "user", "content": "为什么天空是蓝色的?"}  # 用户输入的消息
       ],
       "stream": False,  # 是否启用流式响应
       "options": {"temperature": 0.7}  # 可选参数,例如温度
   }

   # 发送 POST 请求
   response = requests.post(url, json=data, headers=headers)

   # 检查响应状态码
   if response.status_code == 200:
       # 打印响应内容
       print("API 响应:")
       print(response.json())
   else:
       print(f"请求失败,状态码:{response.status_code}")
       print(f"错误信息:{response.text}")

步骤 5:运行脚本

  • 运行脚本:
    在激活的虚拟环境中,运行以下命令执行脚本:
   python ollama_api_call.py
   python /Users/xxx/Desktop/ollama_api_call.py 

步骤 6:查看输出

  • 查看输出结果:
    如果 Ollama 服务正在运行且 API 调用成功,你将看到类似以下的输出:
   {
       "message": {
           "role": "assistant",
           "content": "天空是蓝色的,是因为大气中的气体分子会散射太阳光中的蓝色光波,而蓝色光波的波长较短,散射效果更明显。"
       },
       "done": true
   }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容