1 使用Ollama本地调用大模型

1.1 Ollama简介

Ollama 是一个开源的大语言模型运行和管理工具,它让用户能够轻松地在本地运行各种大语言模型。
主要功能:

  • 本地模型运行:允许在本地计算机上运行各种开源大语言模型,如 Llama、Mistral、Gemma 等
  • 简单易用:提供简单的命令行界面,一键下载和运行模型
  • 模型管理:支持模型的下载、删除、版本管理
  • API 服务:提供 REST API 接口,方便与应用程序集成
  • 跨平台支持:支持 Windows、macOS 和 Linux

1.2 Ollama及大模型本地安装

1.2.1 Ollama下载

根据操作系统版本,在官网下载即可,官网:https://ollama.com/
在这里插入图片描述

下载安装完成后,启动服务即可

ollama serve

在这里插入图片描述

1.2.2 本地安装大模型

官网:https://ollama.com/ 选择合适的大模型安装(结合本地的实际配置),这里以qwen3为例:
在这里插入图片描述

1.安装并运行,可以直接在控制台与大模型对话交流

ollama run qwen3:4b

在这里插入图片描述

2.查看现有的大模型

ollama list

在这里插入图片描述

1.3 调用Ollama大模型

使用langchain-ollama库:https://python.langchain.com/docs/integrations/providers/ollama/
演示环境:python3.12
示例代码1:

from langchain_ollama import ChatOllama


if __name__ == "__main__":
    llm = ChatOllama(model="qwen3:4b")
    resp = llm.invoke("你好, 你是谁?")
    print(resp)

在这里插入图片描述

示例代码2:
流式调用

from langchain_ollama import ChatOllama


if __name__ == "__main__":
    # 创建一个ChatOllama实例
    llm = ChatOllama(model="qwen3:4b")
    # 调用llm.stream方法,传入一个字符串,返回一个生成器
    resp = llm.stream("你好, 你是谁?")
    # 遍历生成器,打印生成的内容
    for chunk in resp:
        # 打印生成的内容
        print(chunk.content, end="")

在这里插入图片描述

2 阿里云百炼API调用大模型

阿里云百炼官网:https://bailian.console.aliyun.com/#/home

1.注册阿里云百炼账号,获取额度/充值,在模型广场选择需要的大语言模型
在这里插入图片描述

2.查看对应模型的api参考,这里以qwen3-flash为例,创建API key(该key注意保密)
在这里插入图片描述

3.进入业务空间对应的API key管理,给予相应的LLM模型授权
在这里插入图片描述

4.结合api参考调用百炼API,也可以将API key设置成环境变量,方便调用

from openai import OpenAI
import os

client = OpenAI(
    # 如果没有配置环境变量,请用阿里云百炼API Key替换:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

messages = [{"role": "user", "content": "你是谁"}]
completion = client.chat.completions.create(
    model="qwen-flash",  # 您可以按需更换为其它深度思考模型
    messages=messages,
    extra_body={"enable_thinking": True},
    stream=True
)
is_answering = False  # 是否进入回复阶段
print("\n" + "=" * 20 + "思考过程" + "=" * 20)
for chunk in completion:
    delta = chunk.choices[0].delta
    if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
        if not is_answering:
            print(delta.reasoning_content, end="", flush=True)
    if hasattr(delta, "content") and delta.content:
        if not is_answering:
            print("\n" + "=" * 20 + "完整回复" + "=" * 20)
            is_answering = True
        print(delta.content, end="", flush=True)


写在最后

本文已被专栏 AI agent实战开发 收录,欢迎 点击订阅专栏
 以上便是本文的全部内容啦!创作不易,如果你有任何问题,欢迎私信,感谢您的支持!

在这里插入图片描述

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐