Python AI应用基础
Python AI应用基础
AI基础概念、大模型部署方式、网络基础知识、HTTP协议、Apifox使用、提示词工程
一、初识AI
什么是AI
AI(Artificial Intelligence,人工智能),是一个学科领域的统称,目标就是使机器能够像人类一样思考、学习、推理和解决问题。
什么是AI大模型
AI大模型:也称为大语言模型(Large Language Models,LLM),是AI技术的一个分支。
- 用代码模拟人脑神经网络的程序
- 参数量极其庞大,通常达到数十亿至数千亿级别
- 通过大量数据训练后,使其具备理解人类语言、思考、推理并输出人类语言的能力
二、大模型部署
三种部署方式对比
| 部署方式 | 优点 | 缺点 |
|---|---|---|
| 本地部署 | 数据安全、自主可控、长期成本低 | 初始成本高、需长期维护、性能受限 |
| 官方开放API | 前期成本低、无需部署和维护、随时访问 | 隐私不能保障、长期成本高、可控性差 |
| 云服务平台 | 前期成本低、无需部署和维护、选择度高 | 安全及隐私不能保障、长期成本高 |
API概念
API:应用程序编程接口(Application Programming Interface),是软件间的标准化的”桥梁”,允许开发者无需知晓内部细节即可调用外部功能或数据。
本地部署 - Ollama
Ollama是一个在本地运行、管理大语言模型的工具。
- 官网:https://ollama.com/
- 支持macOS、Windows、Linux
官方开放API - DeepSeek
主流的大模型(如:DeepSeek、Kimi等)官方都提供了开放API,无需部署,就可以直接调用访问。
使用步骤:
- 注册账号
- 登录DeepSeek
- 充值(1元)
- 创建API Key
三、大模型调用
网络基础知识
IP地址
IP地址可以理解为就是设备在互联网中的地址(唯一身份证),每一个连入网络的设备都有一个自己的IP地址,用来定位设备在互联网中的位置。
| 类型 | 说明 |
|---|---|
| IPv4地址 | 32位二进制 |
| IPv6地址 | 128位二进制 |
- 每段范围:0~255
- 127.0.0.1 是本机地址(本地回环地址)
域名
域名(Domain Name),是由一串用点分隔的英文字母组成的。
- IP地址不便于记忆,因此设计出了域名
- 通过DNS(域名解析服务器)来将域名和IP地址相互映射,便于记忆和访问
- localhost 为本机域名
端口
端口号(Port)是整数,取值范围在0-65535,它是用来标识计算机设备中的运行中的程序。
网络基础知识小结
| 概念 | 作用 |
|---|---|
| IP | 唯一定位一台互联网上的设备(127.0.0.1为本机地址) |
| 域名 | 降低IP地址的书写与记忆成本(localhost为本机域名) |
| 端口 | 每一个程序启动运行后都会占用一个端口(0-65535) |
网络模型
互联网(Internet)连接了数以亿计的设备,网络四通八达就如同城市的复杂的道路。网络中传输的数据就像是城市道路中的车流,如果不加以管理那必然会出现混乱。在国际ISO组织就统一了程序在网络中通信的模型和标准。
OSI七层网络模型
| 层级 | 名称 |
|---|---|
| 7 | 应用层 |
| 6 | 表示层 |
| 5 | 会话层 |
| 4 | 传输层 |
| 3 | 网络层 |
| 2 | 数据链路层 |
| 1 | 物理层 |
TCP/IP四层网络模型
| 层级 | 名称 | 协议 | 作用 |
|---|---|---|---|
| 4 | 应用层 | HTTP、FTP、SMTP | 将用户与应用程序交互的数据按照协议格式进行封装 |
| 3 | 传输层 | UDP、TCP | 负责将数据准确送到对应的应用程序(端口) |
| 2 | 网络层 | IP | 负责基于IP地址将数据包路由给对应设备 |
| 1 | 网络接口层 | - | 负责数据在物理网络中的传输,处理与硬件设备交互 |
HTTP协议
HTTP(Hyper Text Transfer Protocol),超文本传输协议,规定了客户端和服务器之间数据传输的规则。
HTTP协议特点:
- 基于文本的协议:请求和响应的部分的协议内容为文本格式,底层通过TCP协议传输,稳定性强
- 基于请求-响应模型:一次请求对应一次响应,必须由客户端先发起请求,服务端才会返回响应
- 无状态:服务端不会记忆与客户端的历史交互信息,每次请求-响应都是独立的
HTTP请求数据格式
POST /api/courses HTTP/1.1Accept: application/json, text/plain, */*Accept-Encoding: gzip, deflate, br, zstdAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6Connection: keep-aliveContent-Length: 139Content-Type: application/jsonHost: localhost:90Origin: http://localhost:90Referer: http://localhost:90/resource/courseUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/143.0.0.0
{"phone":"18808088080","channel":1,"name":"虎咆","gender":1,"age":"32"}| 组成部分 | 说明 |
|---|---|
| 请求行 | 请求方式、资源路径、协议 |
| 请求头 | 格式 key: value |
| 请求体 | 请求参数部分,GET方式没有,POST可以有 |
GET与POST的区别
| 请求方式 | 参数位置 | 大小限制 |
|---|---|---|
| GET | 请求参数在请求行中,没有请求体 | 浏览器中有限制 |
| POST | 请求参数在请求体中 | 没有限制 |
HTTP响应数据格式
HTTP/1.1 200Server: nginx/1.24.0Date: Tue, 16 Dec 2025 12:38:08 GMTContent-Type: application/jsonTransfer-Encoding: chunkedConnection: keep-alive
{code: 1, msg: "success", data: null}| 组成部分 | 说明 |
|---|---|
| 响应行 | 协议、状态码 |
| 响应头 | 格式 key: value |
| 响应体 | 存放服务端响应的数据 |
常见状态码
| 状态码 | 说明 |
|---|---|
| 200 | 客户端请求成功 |
| 400 | 请求参数错误 |
| 404 | 请求资源不存在,url输入有误,或者网站资源被删除了 |
| 500 | 服务器发生了不可预期的错误 |
Apifox
Apifox是一款API设计、开发、测试的一体化协作平台,是项目开发中进行API接口测试的神器。
功能:
- API设计(接口文档)
- API开发&调试(后端开发)
- API Mock(前端开发)
- API文档(API使用者)
- API自动化测试(测试工程师)
JSON格式
JSON(JavaScript Object Notation)是前端的一种对象表示方法。表示形式类似于Python中的字典,都是key
JSON数据类型:
| 类型 | 说明 | 示例 |
|---|---|---|
| 对象 | 用{}表示,键是字符串,值可以是任意其它类型 | {"name": "jack"} |
| 数字 | 整数和小数都是数字 | 12、3.14 |
| 字符串 | 用""引起来 | "jack" |
| 布尔 | 有两种值:true或false | true、false |
| 列表 | 用[]表示,多个元素以,分割 | [1, 2, 3] |
调用大模型的请求示例
{ "model": "deepseek-chat", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ], "stream": false}Headers设置
| 参数名 | 参数值 |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer sk-xxxx(API Key) |
messages角色说明
| 角色 | 说明 |
|---|---|
| system | 设定AI的身份和行为准则(回答的风格、限制、规则等) |
| user | 用户实际提出的问题或指令 |
| assistant | AI模型的回复/响应 |
会话记忆
与AI大模型的交互本质是无状态的,每一次请求响应都是相互独立的。(AI大模型本身没有真正的会话记忆能力)
会话记忆处理方案(会话历史滚雪球):
将历史对话记录一起发送给大模型,实现上下文理解:
{ "messages": [ {"role": "system", "content": "你是一名可爱的AI助手"}, {"role": "user", "content": "12个苹果,3个人怎么均分?"}, {"role": "assistant", "content": "每个人可以分到4个苹果"}, {"role": "user", "content": "那2个人呢?"}, {"role": "assistant", "content": "每个人可以分到6个苹果"}, {"role": "user", "content": "那4个人呢?"} ]}代码调用测试
PyPI与pip
- PyPI:全称为 Python Package Index,是由Python官方和社区共同维护的Python第三方软件包的官方仓库
- pip:pip是Python官方提供的Python包的管理工具,提供了对Python包的查找、下载、安装、卸载等功能
pip常用命令
| 命令 | 说明 |
|---|---|
pip install openai | 安装软件包(最新版本) |
pip install openai==2.13.0 | 安装软件包(指定版本) |
pip uninstall openai | 卸载软件包 |
pip list | 列出已安装的包 |
pip show openai | 查看包详情 |
四、提示词工程
提示词(Prompt):是引导大模型(LLM)进行内容生成的命令(一句话、一个问题等)。
提示词工程(Prompt Engineering):通过有技巧的编写提示词,使大模型生成出尽可能符合预期的内容,这一持续性的过程就称为提示词工程。
提示词三要素
| 要素 | 说明 | 示例 |
|---|---|---|
| 角色 | 给大模型设定角色与能力 | 你是一名经验丰富的高中历史老师,擅长生动有趣的讲解复杂历史事件 |
| 任务 | 明确核心请求与任务 | 请向一位高中生解释法国大革命爆发的主要原因 |
| 要求 | 指定风格与语气、明确要求输出格式、提供输入输出的示例 | 请使用简洁、口语化、充满热情的语气 |
六大提示技巧
- 给大模型设定角色与能力:让AI有明确的身份定位
- 明确核心请求与任务:告诉AI具体要做什么
- 按步骤拆解复杂任务:将复杂问题分解为小步骤
- 指定风格与语气:控制AI回答的风格
- 明确要求输出格式:规定AI输出的结构
- 提供输入输出的示例:通过示例让AI理解期望
总结口诀
- AI大模型:模拟人脑神经网,海量参数训练出
- 部署方式:本地部署安全稳,API调用成本低,云服务选择多
- 网络三要素:IP定位设备,域名好记忆,端口找程序
- HTTP协议:请求响应无状态,文本传输靠TCP
- 请求格式:请求行+请求头+请求体,GET参数在URL,POST参数在体里
- 响应格式:响应行+响应头+响应体,200成功404没,500服务器出问题
- 会话记忆:大模型无状态,历史消息滚雪球
- 提示词工程:角色任务加要求,六技巧出好答案
评论区
如果你喜欢,那么欢迎来到我的世界!
了解更多













