下载ollama

地址:https://ollama.com/download
在这里插入图片描述

常用命令

操作 命令 描述
查看版本 ollama -version 查看ollama版本
下载模型 ollama pull 模型名 仅下载不运行
运行模型 ollama run 模型名 启动
查看下载的模型列表 ollama list 模型列表
查看模型详情 ollama show 模型名 模型详情
查看运行中的模型 ollama ps 查看正在运行中的模型
停止模型 ollama stop 模型名 关闭模型
删除模型 ollama rm 模型名 删除模型并释放硬盘

着重说下下载模型
在官网 Models中选择模型库,选择需要下载的模型,以deepseek-r1为例,点击模型名称,找到具体版心信息,点击复制
在这里插入图片描述
在这里插入图片描述
下载命令 将deepseek-r1:7b 换成你下载的模型

ollama pull deepseek-r1:7b

python调用ollama下载的模型

python版本用的3.12,用的langchain_openai库

注意:ollama默认端口11434,地址默认加/v1

配置模型信息

from langchain_openai import ChatOpenAI

# 本地私有化部署的大模型
llm = ChatOpenAI(
    model='gemma:7b',#模型名称
    api_key='xx',#没有key随便传
    base_url='http://localhost:11434/v1',#默认的端口跟地址
)

基本调用

from langchain_demo.my_llm import llm #此处llm为上一步的llm按自己存放路径

message = [
    ('system', '你是一个智能助手。'),
    ('human', "请介绍一下什么是深度学习?")
]

resp = llm.invoke(message)
print(resp)

在这里插入图片描述

使用with_structured_output结构化输出

import json
from typing import Optional
from langchain_core.prompts import MessagesPlaceholder, PromptTemplate
from pydantic import BaseModel, Field
from langchain_demo.my_llm import llm  #此处llm为上一步的llm按自己存放路径

# 使用pydantic定义一个类
class User(BaseModel):
    """申请人信息的结构类(数据模型类 POVO)"""

    name: str = Field(description="申请人名称")
    address: str = Field(description="申请人地址")
    tel: str = Field(description="申请人电话")

prompt_template = PromptTemplate.from_template("帮提取{topic}的信息。")
runnable = llm.with_structured_output(User)

chain = prompt_template | runnable
resp = chain.invoke({"topic": "申请人:周小明,男,汉族2000年1月20日出生,住山东省潍坊市奎文区,身份证号370705********2222,电话:13666666666。"})
print(resp)

print(resp.__dict__)

使用bind_tools结构化输出

from pydantic import BaseModel, Field
from langchain_demo.my_llm import llm

class ResponseFormatter(BaseModel):
    """始终使用此工具来结构化你的用户响应"""  # 文档字符串说明这个类用于格式化响应
    answer: str = Field(description="对用户问题的回答")  # 回答内容字段
    followup_question: str = Field(description="用户可能提出的后续问题")  # 后续问题字段

#有的模型不支持 tool_call 
runnable = llm.bind_tools([ResponseFormatter])

resp = runnable.invoke("大模型为什么会思考?")
print(resp.tool_calls[-1]['args'])
resp.pretty_print()

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐