ollama部署及python调用
·
下载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()

更多推荐
所有评论(0)