
一、引言:提示词驱动的AI应用与百度云智能API
在人工智能技术快速发展的今天,提示词驱动的AI应用已成为最贴近用户需求的开发方向之一。通过简单的文本指令(提示词),开发者可以快速构建智能对话、内容生成、信息查询等应用。百度云智能平台提供了丰富的API服务,其中千帆大模型平台整合了文心一言等先进大语言模型,为开发者提供了便捷的接口调用方式,无需深入了解模型训练细节即可实现AI功能集成。
本文将以提示词文本生成为例,带领开发入门者从零开始接入百度云智能API,构建一个简单的Web应用:用户输入提示词(如"写一首关于春天的诗"),应用调用百度千帆大模型API,返回AI生成的文本结果。我们将详细覆盖账号注册、API密钥获取、环境搭建、代码实现、错误处理等全流程,确保零基础开发者也能顺利完成。
二、准备工作:百度云智能平台账号与API密钥获取
2.1 注册百度智能云账号并完成实名认证
- 访问百度智能云官网:打开 百度智能云控制台,点击右上角"注册",使用百度账号登录(若无账号需先注册)。
- 完成实名认证:登录后,进入"个人中心"→"实名认证",选择"个人认证",通过身份证或人脸识别完成认证。注意:个人认证后可领取免费额度,每月提供一定次数的API调用权限(如文心一言API每月免费调用500次)。
2.2 创建千帆大模型应用并获取密钥
- 进入千帆大模型平台:在百度智能云控制台搜索"千帆大模型",进入千帆ModelBuilder平台。
- 创建应用:点击左侧"应用接入"→"创建应用",填写应用名称(如"提示词生成Demo")、应用描述(选填),选择"对话增强"场景,点击"立即创建"。
- 获取API密钥:应用创建后,在"应用详情"页面可查看API Key和Secret Key,这两个密钥是调用API的身份凭证,需妥善保存(后续代码中需使用)。
2.3 领取免费额度
进入千帆平台"资源管理"→"免费额度",领取"文心一言API"免费资源包(个人用户通常每月可领取500次调用额度)。若未领取,调用API时会提示"QPS超限"或"额度不足"错误。
三、开发环境搭建:Python与必要库安装
3.1 安装Python环境
确保本地安装Python 3.7及以上版本(推荐3.9+):
- Windows/macOS:从 Python官网 下载安装包,勾选"Add Python to PATH",按默认步骤安装。
- 验证安装:打开终端,输入
python --version
或python3 --version
,显示版本号即安装成功。
3.2 创建虚拟环境(可选但推荐)
为避免依赖冲突,建议使用虚拟环境:
# 创建虚拟环境
python -m venv ai-web-env
# 激活虚拟环境(Windows)
ai-web-env\Scripts\activate
# 激活虚拟环境(macOS/Linux)
source ai-web-env/bin/activate
3.3 安装核心依赖库
本项目需安装以下库:
qianfan
:百度千帆大模型Python SDK,简化API调用流程。flask
:轻量级Web框架,用于构建前端页面和后端接口。requests
:处理HTTP请求(SDK内部依赖,通常会自动安装)。
安装命令:
pip install qianfan flask
四、核心实现:调用百度千帆API生成提示词结果
4.1 百度千帆API调用基础
百度千帆大模型API支持通过SDK或HTTP请求调用,这里使用官方推荐的qianfan
SDK,其封装了鉴权、请求构造等细节。核心步骤包括:
- 使用API Key和Secret Key初始化客户端。
- 调用对话接口(如
chat.completions.create
),传入提示词。 - 解析返回结果,提取AI生成的文本。
4.2 编写API调用示例代码
创建baidu_ai.py
文件,实现提示词生成功能:
from qianfan import ChatCompletion
# 初始化千帆客户端(替换为你的API Key和Secret Key)
client = ChatCompletion(
ak="你的API Key", # 从应用详情获取
sk="你的Secret Key" # 从应用详情获取
)
def generate_text(prompt: str) -> str:
"""
调用百度千帆大模型API,根据提示词生成文本
:param prompt: 用户输入的提示词(如"写一首关于春天的诗")
:return: AI生成的文本结果
"""
try:
# 调用对话接口,使用ERNIE-Bot模型(文心一言)
response = client.create(
model="ernie-bot", # 模型名称,固定为"ernie-bot"
messages=[{"role": "user", "content": prompt}] # 对话历史,此处为单轮对话
)
# 解析返回结果(返回格式为JSON,具体字段参考官方文档)
result = response["result"]
return result
except Exception as e:
# 错误处理:打印错误信息并返回友好提示
print(f"API调用失败:{str(e)}")
return f"生成失败,请检查提示词或稍后重试。错误信息:{str(e)}"
# 测试代码
if __name__ == "__main__":
prompt = "写一首关于春天的五言绝句"
print(f"提示词:{prompt}")
print(f"生成结果:{generate_text(prompt)}")
代码说明:
ChatCompletion
:千帆SDK的对话接口类,需传入ak
(API Key)和sk
(Secret Key)完成鉴权。model="ernie-bot"
:指定使用文心一言基础模型,适合通用文本生成。messages
:对话历史列表,单轮对话只需传入用户角色("user")和提示词内容。- 错误处理:捕获API调用中的异常(如密钥错误、网络问题),返回用户友好提示。
五、Web应用开发:构建提示词输入与结果展示界面
5.1 项目结构设计
创建以下文件结构,分离前端页面和后端逻辑:
ai-web-app/
├── app.py # Flask后端主程序
├── templates/ # 前端HTML模板
│ └── index.html # 提示词输入与结果展示页面
└── static/ # 静态资源(CSS/JS,可选)
└── style.css # 简单样式美化
5.2 编写Flask后端代码(app.py)
实现Web服务,提供提示词输入接口和结果展示页面:
from flask import Flask, render_template, request, jsonify
from baidu_ai import generate_text # 导入API调用函数
app = Flask(__name__)
# 首页:展示提示词输入表单
@app.route("/")
def index():
return render_template("index.html")
# 处理提示词提交请求(AJAX异步接口)
@app.route("/generate", methods=["POST"])
def generate():
# 获取前端传入的提示词
prompt = request.form.get("prompt", "")
if not prompt:
return jsonify({"error": "请输入提示词"}), 400
# 调用百度AI生成结果
result = generate_text(prompt)
return jsonify({"result": result})
if __name__ == "__main__":
# 启动本地开发服务器(生产环境需使用Gunicorn等WSGI服务器)
app.run(debug=True, host="0.0.0.0", port=5000)
5.3 编写前端页面(templates/index.html)
创建简单的HTML页面,包含提示词输入框、提交按钮和结果展示区域,使用JavaScript实现异步提交:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>提示词驱动AI生成工具</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
<div class="container">
<h1>AI提示词生成工具</h1>
<div class="input-area">
<textarea id="prompt" placeholder="请输入提示词,例如:'写一首关于春天的诗'或'解释什么是人工智能'"></textarea>
<button id="submit-btn">生成结果</button>
</div>
<div class="result-area">
<h3>生成结果:</h3>
<pre id="result"></pre>
</div>
</div>
<script>
// 绑定按钮点击事件
document.getElementById("submit-btn").addEventListener("click", async () => {
const prompt = document.getElementById("prompt").value.trim();
const resultElement = document.getElementById("result");
// 简单验证
if (!prompt) {
alert("请输入提示词!");
return;
}
// 显示加载状态
resultElement.textContent = "生成中...";
try {
// 异步提交请求到后端
const response = await fetch("/generate", {
method: "POST",
headers: {"Content-Type": "application/x-www-form-urlencoded"},
body: `prompt=${encodeURIComponent(prompt)}` // 编码提示词,避免特殊字符问题
});
const data = await response.json();
if (data.error) {
resultElement.textContent = `错误:${data.error}`;
} else {
resultElement.textContent = data.result;
}
} catch (error) {
resultElement.textContent = "请求失败,请检查网络连接。";
}
});
</script>
</body>
</html>
5.4 美化页面样式(static/style.css,可选)
添加简单CSS样式,提升用户体验:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft YaHei", sans-serif;
}
.container {
max-width: 800px;
margin: 50px auto;
padding: 20px;
}
h1 {
color: #333;
text-align: center;
margin-bottom: 30px;
}
.input-area {
margin-bottom: 30px;
}
textarea {
width: 100%;
height: 150px;
padding: 15px;
border: 1px solid #ddd;
border-radius: 8px;
resize: vertical;
font-size: 16px;
}
button {
background-color: #007bff;
color: white;
border: none;
padding: 12px 20px;
border-radius: 8px;
cursor: pointer;
font-size: 16px;
margin-top: 10px;
}
button:hover {
background-color: #0056b3;
}
.result-area {
padding: 20px;
border: 1px solid #eee;
border-radius: 8px;
background-color: #f9f9f9;
}
h3 {
color: #555;
margin-bottom: 15px;
}
pre {
white-space: pre-wrap; /* 自动换行 */
word-wrap: break-word;
color: #333;
line-height: 1.6;
}
六、测试与调试:解决常见问题
6.1 本地运行与测试
- 启动Flask服务:在项目根目录运行
python app.py
,终端显示Running on http://0.0.0.0:5000/
即启动成功。 - 访问应用:打开浏览器,输入
http://localhost:5000
,进入提示词输入页面。 - 测试生成功能:输入提示词(如"写一段介绍Python的文字"),点击"生成结果",等待几秒后查看AI返回内容。
6.2 常见错误及解决方案
错误现象 | 可能原因 | 解决方案 |
---|---|---|
"API Key错误" | API Key或Secret Key填写错误 | 检查baidu_ai.py 中的ak 和sk 是否与应用详情一致 |
"QPS超限" | 免费额度QPS限制(通常为2次/秒) | 减少请求频率,或升级付费套餐 |
"额度不足" | 免费调用次数用尽 | 进入千帆平台领取新的免费额度 |
"网络连接失败" | 本地网络问题或防火墙拦截 | 检查网络连接,确保端口5000未被拦截 |
生成结果为空 | 提示词过长或格式错误 | 简化提示词,确保内容合规(避免敏感信息) |
七、部署建议:从本地到公网访问
7.1 本地测试环境
开发阶段可直接使用Flask内置服务器(app.run(debug=True)
),但不建议用于生产环境(性能和安全性不足)。
7.2 轻量部署方案(适合入门者)
推荐使用PythonAnywhere(免费计划支持小型应用):
- 注册账号:访问 PythonAnywhere,使用邮箱注册免费账号。
- 上传代码:通过"Files"页面上传项目文件(
app.py
、baidu_ai.py
、templates/
、static/
)。 - 创建Web应用:进入"Web"页面,点击"Add a new web app",选择"Flask",设置Python版本,填写项目路径和启动文件(
wsgi.py
)。 - 启动应用:点击"Reload",访问分配的域名(如
yourusername.pythonanywhere.com
)即可公网访问。
7.3 生产环境部署(进阶)
若需更高性能,可使用 Gunicorn+Nginx 部署:
- 安装Gunicorn:
pip install gunicorn
- 启动服务:
gunicorn -w 4 -b 0.0.0.0:8000 app:app
(4个工作进程,绑定8000端口) - 配置Nginx:作为反向代理,转发请求到Gunicorn(具体配置参考Nginx官方文档)。
八、扩展学习:探索更多百度AI能力
完成基础应用后,可进一步探索百度云智能平台的其他API服务:
- 文心一言高级功能:支持多轮对话、工具调用(如联网搜索、数学计算),通过
messages
参数传递历史对话即可实现上下文记忆。 - 语音合成/识别:使用百度语音API,将生成的文本转为语音,或语音输入提示词。
- 图像生成:通过文心一格API,根据文本提示生成图片(需单独申请权限)。
官方文档:百度千帆大模型开发文档
九、总结
本文以提示词文本生成为例,详细介绍了接入百度云智能API构建AI Web应用的全流程,包括账号注册、密钥获取、环境搭建、代码实现、测试部署等关键步骤。通过Flask框架和百度千帆SDK,开发者可快速实现从提示词输入到AI结果展示的闭环,无需深入AI模型细节。
作为入门者,建议先掌握基础API调用逻辑,再逐步扩展功能(如用户认证、历史记录保存)。百度云智能平台提供了丰富的免费额度和详细文档,是学习AI应用开发的理想选择。

本文作者为祝忽然,转载请注明。