从零接入大模型:通义千问、Ollama 与 OpenAI SDK 入门(RAG与Agent实战学习笔记①)

📚 课程:《黑马程序员 · 大模型 RAG 与 Agent 智能体实战》

📝 学习章节:第01章 前置准备(第01~07集)

🎯 适合人群:AI 初学者、Python 开发者、准备学习 RAG 与 Agent 的同学


一、课程导学:学完能做什么?

随着 ChatGPT、DeepSeek、通义千问等大模型的爆发,AI 应用开发已经成为热门方向。

本课程的目标并不是训练大模型,而是教大家如何利用现有大模型开发实际项目。

学完后可以掌握:

✅ 调用通义千问、DeepSeek 等大模型 API

✅ 开发企业知识库问答系统(RAG)

✅ 开发能够自主规划任务的 Agent 智能体

✅ 掌握 LangChain、OpenAI SDK 等主流开发框架

本课程主要技术栈如下:

复制代码
Python
OpenAI SDK
LangChain
阿里云百炼
Ollama
RAG
Agent

二、接入通义千问大模型

目前最常见的两种使用大模型方式:

方式 平台 特点
云端模型 阿里云百炼 官方托管、效果最好、新用户有免费额度
本地模型 Ollama 私有化部署、不依赖网络

对于新手来说,推荐优先使用云端模型。

原因:

  • 配置简单

  • 无需高性能显卡

  • 模型能力最完整

  • 官方持续更新


2.1 开通阿里云百炼

具体流程:

第一步:注册并实名认证

进入阿里云百炼平台:

复制代码
https://bailian.console.aliyun.com

完成:

复制代码
注册账号
↓
登录
↓
实名认证

实名认证通常通过支付宝扫码完成。


第二步:获取 API Key

进入:

复制代码
API参考
↓
获取API Key
↓
创建API Key

生成类似:

复制代码
sk-xxxxxxxxxxxxxxxxxxxx

的密钥。


API Key 的作用

可以把 API Key 理解为:

复制代码
账号 + 密码

拥有它的人就能调用你的模型额度。

因此:

❌ 不要发给别人

❌ 不要提交到 GitHub

❌ 不要直接写进代码


三、使用 OpenAI SDK 调用通义千问

很多同学会有一个误区:

通义千问为什么使用 OpenAI 库调用?

原因是:

阿里云百炼兼容 OpenAI API 标准。

因此可以直接使用 OpenAI 官方 SDK。


3.1 安装依赖

复制代码
pip install openai

3.2 最简单的调用示例

python 复制代码
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {
            "role": "system",
            "content": "你是一个乐于助人的助手"
        },
        {
            "role": "user",
            "content": "你是谁"
        }
    ],
    stream=True
)

for chunk in completion:
    print(chunk.choices[0].delta.content, end="", flush=True)

print()

四、理解大模型对话格式

在 OpenAI API 中,对话由多个消息组成。

格式如下:

python 复制代码
messages = [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
]

4.1 System(系统角色)

用于设定 AI 的身份和规则。

例如:

python 复制代码
{
    "role":"system",
    "content":"你是一个只会说中文的助手"
}

作用:

复制代码
定义身份
定义规则
约束回答风格

整个对话过程中持续生效。


4.2 User(用户角色)

用户提出的问题。

例如:

python 复制代码
{
    "role":"user",
    "content":"介绍一下人工智能"
}

4.3 Assistant(助手角色)

AI 之前给出的回答。

用于实现多轮对话。

例如:

python 复制代码
{
    "role":"assistant",
    "content":"人工智能是..."
}

4.4 工作流程

python 复制代码
System
   ↓
User
   ↓
Assistant
   ↓
User
   ↓
Assistant

本质上就是不断向模型提交完整历史消息。


五、流式输出(Streaming)

调用模型时有一个重要参数:

复制代码
stream=True

流式输出

复制代码
stream=True

效果:

复制代码
边生成边返回

类似:

复制代码
你
好
,
我
是
...

用户体验更好。


非流式输出

python 复制代码
stream=False

效果:

复制代码
等待全部生成完成
↓
一次性返回

当回答较长时等待时间明显增加。


两者对比

参数 特点
stream=True 实时返回
stream=False 完整返回

实际项目中大部分都会使用流式输出。


六、环境变量管理 API Key

很多初学者会这样写:

复制代码
api_key="sk-xxxxxxxxxxxx"

虽然简单,但非常危险。

如果代码上传 GitHub:

复制代码
API Key 泄露
↓
额度被盗刷
↓
账户损失

正确做法:环境变量

Linux / Mac

编辑:

复制代码
~/.bashrc

或者:

复制代码
~/.zshrc

添加:

python 复制代码
export OPENAI_API_KEY=你的key
export DASHSCOPE_API_KEY=你的key

执行:

复制代码
source ~/.bashrc

使配置立即生效。


Windows

打开:

复制代码
系统属性
↓
高级系统设置
↓
环境变量
↓
新建

添加:

复制代码
OPENAI_API_KEY
DASHSCOPE_API_KEY

即可。


Python 中读取

python 复制代码
import os

api_key = os.environ.get(
    "DASHSCOPE_API_KEY"
)

这样代码中不会出现敏感信息。


七、Ollama:本地部署大模型

除了云端模型外,还可以在自己的电脑上运行大模型。

最流行的方案就是:

复制代码
Ollama

7.1 什么是 Ollama?

简单理解:

复制代码
阿里云百炼 = 云端模型平台

Ollama = 本地模型平台

区别:

项目 百炼 Ollama
运行位置 云端 本地
是否联网 需要 不需要
模型维护 官方负责 用户负责
算力来源 云服务器 自己电脑

7.2 常见模型

Ollama 支持大量开源模型:

模型 特点
Qwen 中文能力优秀
DeepSeek-R1 推理能力强
Llama Meta 开源模型
Phi-4 微软轻量模型

参数量含义

例如:

复制代码
1.5B
7B
14B
32B
70B

B = Billion(十亿参数)

一般规律:

复制代码
参数越大
↓
能力越强
↓
资源消耗越高

八、安装 Ollama

官网:

复制代码
https://ollama.com

下载安装完成后即可使用。


下载并运行模型

例如:

复制代码
ollama run deepseek-r1:1.5b

首次运行会自动下载。

下载完成后即可直接聊天:

复制代码
>>> 你是谁

查看已安装模型

复制代码
ollama list

输出示例:

复制代码
NAME
deepseek-r1:1.5b
qwen3:8b
llama3:8b

九、代码调用本地 Ollama

有趣的是:

调用本地模型与调用云端模型几乎完全一致。


云端版本

python 复制代码
client = OpenAI(
    api_key=os.environ.get("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

本地版本

python 复制代码
client = OpenAI(
    api_key="ollama",
    base_url="http://localhost:11434/v1",
)

调用代码

python 复制代码
completion = client.chat.completions.create(
    model="deepseek-r1:1.5b",
    messages=[
        {
            "role":"user",
            "content":"你好"
        }
    ]
)

除了:

复制代码
api_key
base_url
model

其它代码完全一致。


十、本章总结

本章主要完成了大模型开发环境的搭建,并掌握了两种主流调用方式。

整体架构如下:

云端调用流程

复制代码
Python代码
     ↓
OpenAI SDK
     ↓
阿里云百炼API
     ↓
通义千问模型
     ↓
返回结果

本地调用流程

复制代码
Python代码
     ↓
OpenAI SDK
     ↓
Ollama服务
     ↓
本地模型
     ↓
返回结果

核心知识点速记

知识点 关键内容
API Key 身份凭证,必须妥善保管
Environment Variable 推荐存储密钥方式
System 定义角色和规则
User 用户输入
Assistant 模型历史回复
Stream 流式输出
Ollama 本地运行大模型
Base URL 决定请求发送到哪里

写在最后

这一章属于整个 RAG 与 Agent 学习路线的基础篇。

虽然内容不复杂,但后续所有内容------包括 Prompt Engineering、LangChain、RAG 知识库、Agent 工具调用------都建立在这一章的基础之上。

如果你是第一次接触大模型开发,建议亲手完成以下实践:

  • 成功调用一次通义千问 API

  • 配置环境变量管理 Key

  • 安装并运行 Ollama

  • 用同一套代码切换云端和本地模型

完成这些之后,再进入下一章《OpenAI SDK 基础与提示词工程》,学习如何编写高质量 Prompt 和实现多轮对话。


系列文章:

  • 第01章:前置准备(本文)

  • 第02章:OpenAI库基础与提示词工程(更新中)

  • 第03章:LangChain基础(待更新)

  • 第04章:RAG知识库实战(待更新)

  • 第05章:Agent智能体开发(待更新)

相关推荐
我命由我123451 小时前
BOM 极简理解
运维·经验分享·笔记·物联网·学习·运维开发·学习方法
xian_wwq1 小时前
【学习笔记】大模型应用安全落地实践
笔记·学习·ai安全
江华森1 小时前
Jenkins 从入门到精通 — 完整学习笔记
笔记·学习·jenkins
牢七1 小时前
契约锁逆向(失败,已老实正在学习)
学习
江华森1 小时前
Kafka 从入门到精通 — 完整学习笔记
笔记·学习·kafka
chushiyunen1 小时前
elasticsearch笔记
笔记·elasticsearch·jenkins
dusk_star1 小时前
go语言--笔记--接口
java·笔记·golang
小陈phd1 小时前
多模态大模型学习笔记(四十二)——从像素到语义的精准问询——视觉问答(VQA)
笔记·学习
Brilliantwxx1 小时前
【算法从零到千】【1-7】 双指针算法
开发语言·c++·笔记·算法·leetcode·推荐算法