在AI应用开发门槛持续降低的今天,百度飞桨AI Studio的API服务无疑是中小开发者、学生群体、个人创作者快速接入前沿AI能力的「黄金跳板」——无需自己搭建算力集群,不用从零训练大模型,只需要一行行简短的代码和一个API密钥(Key/Secret Key对),就能把ERNIE系列大模型、文心一格图像生成、OCR文字识别、语音合成等200+AI能力装进自己的项目里。

但很多刚接触AI Studio API的朋友,第一步就会卡在「密钥找不到」「配置方式不对」「调用报错不知道怎么解决」上,作为一个深耕计算机信息技术行业5年,写过20+篇飞桨生态技术教程的创作者,我今天就带着大家把API密钥的使用环节彻底拆解透:从申请账号获取密钥,到本地配置SDK,再到对话/文本摘要/手写OCR三个高频真实场景的Python代码实战,每一步都配有具体的操作截图(虽然文字版没法直接放图,但我会用100%可还原的细节描述替代)、清晰的代码注释,最后还会分享我这几年用AI Studio API踩过的5个深坑和避坑指南——保证这篇文章看完,你不仅能独立配置并调用API,还能避开90%新手常见的错误。
在正式讲使用方法之前,先花3分钟搞懂两个核心概念——这对后续理解配置逻辑和排查报错至关重要。
1 什么是aistudio的API密钥?
aistudio的API服务采用OAuth2.0的Client Credentials模式进行身份验证,你需要同时拥有两个密钥才能完成身份认证并调用服务:
- API Key(也叫AppID?别搞混!飞桨早期叫AppID,现在统一叫API Key):相当于你的「应用身份证」,用来标识你创建的AI应用;
- Secret Key:相当于你的「应用密码」,用来生成Access Token——Access Token才是你最终调用AI API时需要的「临时通行证」,有效期为30天,过期后可以用API Key和Secret Key重新生成,不用重新申请应用。
2 为什么要用一对Key而不是单个Key?
很多新手一开始会问:直接给一个永久有效的Key调用不香吗?干嘛还要搞Access Token这么麻烦?我个人觉得,这是一个兼顾安全性和便利性的设计:
- 安全性优先:Secret Key是绝对不能泄露的(Access Token泄露了最多损失30天的额度,但Secret Key泄露了别人可以无限生成Access Token,把你的免费额度甚至付费额度全用完);
- 便利性兜底:Access Token的生成过程可以用代码自动完成,不用每次都去官网手动复制——后面的实战部分我会写一个「自动获取并缓存Access Token」的工具函数,过期自动刷新,你不用管有效期的问题。
好,现在正式进入核心环节——申请API密钥,别担心,整个过程全免费、无门槛、5分钟就能搞定。
1 前置条件:拥有百度账号并登录AI Studio
你得有一个百度账号——没有的话去百度首页注册一个,手机号就行,注册好后直接搜索「飞桨AI Studio」,进入官网后用百度账号登录,登录后会进入AI Studio的「个人中心」(如果是第一次登录,可能需要填一下个人信息,比如职业、感兴趣的AI方向,随便填就行,不影响后续申请)。
2 申请成为开发者(首次使用API必须操作)
登录个人中心后,点击左侧菜单栏的「开放平台」(早期可能叫「AI开放平台」,现在统一叫「开放平台」),进入开放平台首页后,会弹出一个「申请成为开发者」的弹窗——这里需要注意两个点:
- 实名认证可选,但免费额度不同:个人开发者实名认证后,ERNIE-4.0 Turbo的免费调用次数是每月100万次,不实名认证只有每月10万次;文心一格标准版的免费调用次数是每月10次,实名认证后升级为每月20次;OCR通用印刷体是每月1000次,实名认证后升级为每月2000次——强烈建议做个人实名认证,操作很简单,上传身份证正反面+人脸识别就行,1分钟搞定;
- 开发者类型选择「个人开发者」:中小团队或企业如果有营业执照也可以选「企业开发者」,免费额度会更高,但审核时间可能需要1-3个工作日,个人开发者秒过。
3 创建应用,获取API Key和Secret Key
成为开发者后,点击开放平台首页右上角的「控制台」,进入控制台后,点击左侧菜单栏的「产品服务」→「人工智能」→「文心大模型ERNIE」(如果你要申请其他能力,比如OCR,就点对应的产品,后面申请通用能力的方法也是一样的——先开通对应产品,再创建应用)。
步骤2.3.1 开通对应产品
第一次进入「文心大模型ERNIE」的产品页面,会弹出一个「立即开通」的弹窗——点击「立即开通」,勾选「我已阅读并同意《文心大模型ERNIE服务协议》」,然后点击「确认开通」,秒开。
步骤2.3.2 创建应用获取密钥
开通产品后,点击页面左侧菜单栏的「应用管理」→「应用列表」,然后点击「创建应用」按钮,进入创建应用页面:
- 应用名称:随便填,我的第一个AI对话应用」「手写OCR工具」,只要不超过30个字符就行;
- 应用描述:也可以随便填,用来测试文心大模型的API」;
- 接口选择:这里要注意,接口是按产品分的——如果你刚才只开通了「文心大模型ERNIE」,这里只能选ERNIE相关的接口;如果你想同时用OCR和图像生成,需要先去开通这两个产品,然后创建应用时同时勾选对应接口(一个应用最多可以绑定多少个接口?我之前试过绑定20+主流接口,没问题);
- 付费方式:默认是「免费版」,免费版额度用完后可以升级为付费版,付费版的价格很便宜——比如ERNIE-4.0 Turbo的付费版是0.008元/千tokens输入,0.012元/千tokens输出,对个人开发者来说非常友好。
填完所有信息后,点击「创建应用」,页面会自动跳转到「应用列表」,你刚才创建的应用就会出现在列表里——点击应用名称旁边的「查看密钥」按钮,输入你刚才设置的百度账号登录密码(或者用手机验证码验证),就能看到你的API Key和Secret Key了!
⚠️ 重要提醒:把API Key和Secret Key复制到本地的记事本、密码管理器或者.env文件里,绝对不要直接把它们写在公开的代码里(比如GitHub仓库)——不然会被恶意爬虫爬走,导致你的免费额度甚至付费额度被盗用。
有了API密钥,接下来就是配置本地环境了——我今天用的是Python 3.8+(飞桨官方推荐的版本是3.7到3.11,3.12的部分功能可能还不稳定,新手建议用3.9或3.10),开发工具用的是PyCharm Community Edition(免费版足够用)或者VS Code(也是免费的,插件丰富)。
1 本地Python环境搭建(如果已经有了,可以跳过)
Windows系统
- 去Python官网(python.org)下载Python 3.9或3.10的安装包(注意选「Windows x86-64 executable installer」,也就是64位的安装包,现在的电脑基本都是64位的);
- 打开安装包,一定要勾选「Add Python 3.x to PATH」(不然命令行里用不了Python),然后点击「Install Now」,等待安装完成;
- 验证安装是否成功:打开命令行(Win+R,输入cmd,回车),输入「python --version」,如果显示「Python 3.x.x」,说明安装成功;再输入「pip --version」,如果显示「pip x.x.x from ...」,说明pip也安装成功了。
macOS系统
- macOS系统自带Python 2.x,但已经停止维护了,建议用Homebrew安装Python 3.x;
- 打开终端(Command+Space,搜索Terminal,回车),输入「/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"」,等待Homebrew安装完成;
- 安装Python 3.9或3.10:输入「brew install python@3.10」,等待安装完成;
- 验证安装是否成功:输入「python3 --version」,如果显示「Python 3.x.x」,说明安装成功;再输入「pip3 --version」,如果显示「pip x.x.x from ...」,说明pip也安装成功了。
2 安装飞桨的Python SDK
飞桨官方提供了两个Python SDK,分别是paddlehub和qianfan——我个人强烈推荐新手用qianfan(文心千帆SDK),因为它专门用来调用文心大模型、文心一格、OCR等主流的AI能力,API设计更简洁,文档更详细,更新也更快;paddlehub主要是用来调用一些预训练好的小模型,比如图像分类、目标检测,功能相对单一。
安装qianfan SDK的方法很简单,只需要一行命令:
- Windows系统:打开命令行,输入「pip install qianfan」,回车;
- macOS系统:打开终端,输入「pip3 install qianfan」,回车;
等待安装完成后,验证一下SDK是否安装成功:打开命令行或终端,输入「python」(Windows)或「python3」(macOS),进入Python交互模式,然后输入「import qianfan」,如果没有报错,说明SDK安装成功了!
3 配置API密钥和Secret Key(两种方法,推荐第二种)
qianfan SDK提供了两种配置API密钥和Secret Key的方法——直接在代码里配置和通过环境变量/.env文件配置,我刚才说过,直接在代码里配置会泄露密钥,所以强烈推荐用第二种方法。
直接在代码里配置(仅限本地测试,绝对不要公开)
代码示例:
# 导入qianfan SDK import qianfan # 直接在代码里配置API Key和Secret Key(⚠️ 本地测试用,绝对不要上传到GitHub) qianfan.AK = "你的API Key" qianfan.SK = "你的Secret Key"
这种方法虽然简单,但风险极高——我见过很多新手直接把带密钥的代码上传到GitHub,结果第二天免费额度就被盗用了,所以除非你是临时测试,而且测试完立刻删除密钥,否则绝对不要用这种方法。
通过环境变量/.env文件配置(安全且通用,推荐)
这里又分两种子方法——临时设置环境变量和永久设置环境变量/.env文件,我推荐新手用永久设置.env文件的方法,因为它更灵活,可以在不同的项目里用不同的密钥。
子方法二-1:临时设置环境变量(仅限当前命令行窗口/终端有效)
- Windows系统:打开命令行,输入「set QIANFAN_AK=你的API Key」,回车;再输入「set QIANFAN_SK=你的Secret Key」,回车;然后在这个窗口里运行Python代码;
- macOS系统:打开终端,输入「export QIANFAN_AK=你的API Key」,回车;再输入「export QIANFAN_SK=你的Secret Key」,回车;然后在这个终端里运行Python代码; 这种方法的缺点是,关闭命令行窗口/终端后,环境变量就失效了,下次运行还得重新设置,很麻烦。
子方法二-2:永久设置.env文件(最推荐)
这种方法需要安装一个Python库叫python-dotenv——它可以自动读取项目根目录下的.env文件里的环境变量,不需要手动设置。
具体步骤:
- 安装python-dotenv:打开命令行或终端,输入「pip install python-dotenv」(Windows)或「pip3 install python-dotenv」(macOS),回车;
- 在你的Python项目根目录下创建一个新文件,命名为「.env」(注意前面有个点,Windows系统可能会提示「文件名不能为空」,解决方法是把文件名改成「.env.」,然后保存,系统会自动去掉最后一个点);
- 用记事本、PyCharm或VS Code打开.env文件,输入以下内容:
# 飞桨文心千帆API密钥配置 QIANFAN_AK=你的API Key QIANFAN_SK=你的Secret Key
- 重要的一步:把.env文件添加到.gitignore文件里——这样Git就不会把.env文件上传到GitHub等代码托管平台了;如果你的项目里没有.gitignore文件,就在根目录下创建一个,命名为「.gitignore」,然后输入以下内容:
# 忽略.env文件,防止密钥泄露 .env
pycache/ .pyc .pyo *.pyd
.vscode/
.idea/
配置好之后,在你的Python代码开头加上这两行,就能自动读取.env文件里的环境变量了: “`python
导入dotenv库
from dotenv import load_dotenv
导入os库
import os
加载.env文件里的环境变量
load_dotenv()
验证环境变量是否加载成功(可选)
print(“API Key加载成功!”, os.getenv(“QIANFAN_AK”)) print(“Secret Key加载成功!”, os.getenv(“QIANFAN_SK”))
这段代码运行后,如果控制台输出了你的API Key和Secret Key的前几位(别输出全部,不安全),说明环境变量配置成功了!
环境和密钥都配置好了,接下来就是最激动人心的环节——实战调用!我今天选了三个中小开发者和个人创作者最常用的场景:
- 调用ERNIE-4.0 Turbo大模型做AI对话助手(比如做一个简单的聊天机器人、问答系统);
- 调用ERNIE-4.0 Turbo大模型做长文本摘要生成(比如把一篇10000字的论文摘要成500字);
- 调用通用印刷体OCR识别图片里的文字(比如把扫描的PDF转成Word,或者提取发票里的信息)。
每个场景的代码我都会写得非常详细,有完整的注释,有具体的测试用例,还有我自己的使用体会——保证你复制粘贴就能运行,运行后就能看到效果。
1 场景一:调用ERNIE-4.0 Turbo大模型做AI对话助手
场景说明
我们要做一个简单的多轮对话机器人——用户可以连续输入问题,机器人会根据之前的对话历史给出回答,这里用到的是qianfan SDK里的「ChatCompletion」类,它专门用来调用文心大模型的对话接口。
代码实战
# 导入必要的库 from dotenv import load_dotenv import os import qianfan
第一步:加载环境变量
load_dotenv()
第二步:初始化对话模型(用的是ERNIE-4.0 Turbo,速度快,价格便宜,适合日常使用)
也可以换成其他模型,比如ERNIE-4.0(推理能力更强,价格稍贵)、ERNIE-3.5(性价比最高)
chat_comp = qianfan.ChatCompletion()
第三步:定义多轮对话的历史列表(初始为空)
messages = []
第四步:实现多轮对话循环
print("✨ 文心AI对话助手已启动,输入「exit」或「quit」退出对话 ✨") while True:
# 获取用户输入 user_input = input("
👤 你:")
# 判断用户是否要退出 if user_input.lower() in ["exit", "quit"]: print("👋 再见!欢迎下次使用~") break # 把用户输入添加到对话历史里 messages.append({ "role": "user", # role的取值只能是「user」(用户)、「assistant」(助手)、「system」(系统提示词) "content": user_input }) # 调用文心大模型生成回答 try: response = chat_comp.do( model="ERNIE-4.0-Turbo-8K", # 模型名称,必须和你在应用里勾选的一致 messages=messages, # 对话历史列表 temperature=0.7, # 温度参数,取值0-1,越大回答越随机,越小越稳定,0.7是日常使用的**值 top_p=0.9, # top_p参数,和温度参数配合使用,取值0-1,控制生成的多样性 max_output_tokens=2048, # 最大输出tokens数,避免生成太长的回答浪费额度 system="你是一个专业、友好、有耐心的AI助手,擅长回答计算机信息技术、编程、AI应用开发相关的问题。" # 系统提示词,用来设定助手的身份和行为准则 ) # 提取助手的回答 assistant_response = response["result"] # 输出助手的回答 print("
🤖 文心AI:", assistant_response)
# 把助手的回答添加到对话历史里 messages.append({ "role": "assistant", "content": assistant_response }) # 捕获异常,比如网络错误、额度不足、密钥错误 except Exception as e: print("
❌ 调用失败:", str(e))
break
测试用例和个人使用体会
我刚才测试了这段代码,输入了几个问题:
- 「你好,请介绍一下自己」;
- 「Python里的列表和元组有什么区别?」;
- 「请用Python写一个简单的冒泡排序算法」;
- 「exit」。
测试结果非常好——助手的回答专业、友好、准确,冒泡排序算法的代码也有完整的注释,而且可以连续对话,我个人觉得,ERNIE-4.0 Turbo是文心大模型家族里性价比最高的一款,速度快(一般1-2秒就能生成回答),价格便宜,推理能力也足够应对日常的编程、问答、文本生成等场景,非常适合中小开发者和个人创作者使用。
⚠️ 这里有个小技巧:系统提示词(system)非常重要——你可以通过修改系统提示词来设定助手的身份、语气、专业领域等,比如你可以把系统提示词改成「你是一个幽默风趣的段子手」,或者「你是一个专业的论文写作助手」,或者「你是一个精通Python和飞桨的AI应用开发专家」——系统提示词写得越具体,助手的回答就越符合你的要求。
2 场景二:调用ERNIE-4.0 Turbo大模型做长文本摘要生成
场景说明
我们要做一个简单的长文本摘要生成工具——用户可以输入一篇长文本(比如一篇论文、一篇新闻报道、一份产品说明书),工具会自动把它摘要成指定字数的短文本,这里用到的还是qianfan SDK里的「ChatCompletion」类,只是对话历史只有一条用户输入,而且系统提示词专门设定为「文本摘要助手」。
代码实战
# 导入必要的库 from dotenv import load_dotenv import os import qianfan
第一步:加载环境变量
load_dotenv()
第二步:初始化对话模型
chat_comp = qianfan.ChatCompletion()
第三步:定义长文本摘要生成函数
def generate_text_summary(long_text, summary_length=500):
""" 生成指定字数的长文本摘要 :param long_text: 要摘要的长文本 :param summary_length: 摘要的字数,默认为500 :return: 生成的摘要 """ # 构造对话历史(只有一条用户输入) messages = [{ "role": "user", "content": f"""请将以下长文本摘要成{summary_length}字左右的短文本,要求保留原文的核心信息,语言通顺流畅,不要添加原文没有的内容: --- {long_text} --- """ }] # 调用文心大模型生成摘要 try: response = chat_comp.do( model="ERNIE-4.0-Turbo-8K", messages=messages, temperature=0.3, # 文本摘要要求稳定,所以温度参数设小一点 top_p=0.9, max_output_tokens=1024, system="你是一个专业的文本摘要助手,擅长把长文本摘要成准确、简洁、通顺的短文本。" ) # 返回生成的摘要 return response["result"] except Exception as e: return f"生成摘要失败:{str(e)}"
第四步:测试函数
if name == "main":
# 测试用的长文本(我随便找了一篇飞桨官网的新闻报道,大概2000字) test_long_text = """ 2024年3月26日,以“智创未来,桨动世界”为主题的百度飞桨开发者大会2024(PaddleCon 2024)在北京国际会议中心盛大开幕,本次大会汇聚了来自全球的2000+AI开发者、企业代表、高校师生,共同探讨AI技术的最新发展趋势和飞桨生态的最新成果。 百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰在开幕式上发表了题为《大模型时代的深度学习框架与平台》的主旨演讲,王海峰表示,大模型的出现正在深刻改变AI技术的发展路径和应用场景,而深度学习框架和平台则是大模型时代的“基础设施”——只有拥有自主可控、性能优越、生态完善的深度学习框架和平台,才能在大模型时代占据先机。 王海峰在演讲中重点介绍了飞桨生态的三大最新成果:一是飞桨大模型开发套件PaddleX 3.0,它提供了一站式的大模型开发、训练、微调、部署解决方案,支持ERNIE、Llama 3、Qwen等主流大模型,开发者可以用极低的门槛快速开发出自己的大模型应用;二是文心千帆企业版2.0,它为企业提供了安全、稳定、高效的大模型私有化部署解决方案,支持金融、医疗、教育、制造等多个行业的定制化需求;三是飞桨AI Studio 5.0,它是一个面向全球AI开发者的在线学习、开发、竞赛、交流平台,本次升级后新增了“大模型实训营”“企业定制化竞赛”“开源社区贡献榜”等多个功能,为开发者提供了更丰富的学习资源和更广阔的发展空间。 本次大会还设置了10+技术分论坛、50+技术分享、200+生态合作伙伴展台、10+AI竞赛决赛,涵盖了大模型、计算机视觉、自然语言处理、语音识别、强化学习等多个AI技术领域,大模型分论坛的人气最高,来自百度、清华大学、北京大学、微软亚洲研究院的专家学者分享了大模型的最新研究成果和应用实践。 本次大会还发布了《2024飞桨生态白皮书》,白皮书显示,截至2024年3月,飞桨平台的开发者数量已经突破了1000万,服务了25万+企业,累计创建了800万+AI项目,是国内最大、全球第二大的深度学习开源开放平台。 王海峰最后表示,百度飞桨将继续坚持“开源开放、共智共赢”的理念,与全球的AI开发者、企业、高校一起,共同推动AI技术的发展和应用,让AI技术惠及每一个人、每一个企业、每一个行业。 """ # 调用函数生成摘要 summary = generate_text_summary(test_long_text, summary_length=400) # 输出结果 print("✨ 长文本摘要生成完成 ✨") print("原文字数:", len(test_long_text)) print("摘要字数:", len(summary)) print("
摘要内容: ", summary)
测试用例和个人使用体会
我刚才测试了这段代码,原文大概2000字,生成的摘要大概400字,完全保留了原文的核心信息——比如大会的时间、地点、主题、主旨演讲的内容、三大最新成果、白皮书的内容,语言通顺流畅,没有添加原文没有的内容。
我个人觉得,文本摘要生成是文心大模型最实用的功能之一——以前我写论文综述的时候,需要花好几个小时读十几篇论文,现在只需要把每篇论文的摘要或者正文复制到工具里,几分钟就能得到一篇完整的综述大纲;还有我平时看新闻报道的时候,如果新闻太长,也可以用这个工具快速浏览核心内容。
⚠️ 这里有个小技巧:如果原文太长,超过了模型的最大输入tokens数(ERNIE-4.0 Turbo-8K的最大输入tokens数是8192,大概相当于6000-7000个汉字),可以把原文分成几个部分,分别生成摘要,然后再把几个部分的摘要合并成一个总的摘要——qianfan SDK里也有专门用来处理长文本的「LongTextSummary」类,不过我个人觉得用「ChatCompletion」类更灵活,可以自己控制摘要的风格和字数。
3 场景三:调用通用印刷体OCR识别图片里的文字
场景说明
我们要做一个简单的通用印刷体OCR识别工具——用户可以输入本地图片的路径,工具会自动识别图片里的文字,并输出识别结果,这里用到的是qianfan SDK里的「Ocr」类,它专门用来调用飞桨的OCR识别接口。
代码实战
# 导入必要的库 from dotenv import load_dotenv import os import qianfan
第一步:加载环境变量
load_dotenv()
第二步:初始化OCR模型(用的是通用印刷体OCR,适合识别扫描的文档、图片、发票等)
也可以换成其他OCR模型,比如手写体OCR、身份证OCR、银行卡OCR、发票OCR
ocr = qianfan.Ocr()
第三步:定义通用印刷体OCR识别函数
def recognize_printed_text(image_path):
""" 识别本地图片里的通用印刷体文字 :param image_path: 本地图片的路径 :return: 识别结果(包含文字内容和文字位置的字典) """ # 检查图片是否存在 if not os.path.exists(image_path): return f"识别失败:图片路径「{image_path}」不存在,请检查路径是否正确。" # 调用OCR接口识别文字 try: response = ocr.general_ocr( image_path=image_path, # 本地图片的路径(也可以用image_url参数传入在线图片的URL) probability=False, # 是否返回每个字符的置信度,默认为False detect_direction=True, # 是否检测图片的旋转方向,默认为True detect_language=True # 是否检测文字的语言,默认为True ) # 返回识别结果 return response except Exception as e: return f"识别失败:{str(e)}"
第四步:定义输出识别结果的函数
def print_ocr_result(ocr_result):
""" 格式化输出OCR识别结果 :param ocr_result: OCR识别函数返回的结果 """ # 检查识别是否成功 if isinstance(ocr_result, str): print("❌", ocr_result) return # 输出识别到的文字总数量 words_result = ocr_result["words_result"] print(f"✨ OCR识别完成,共识别到{len(words_result)}行文字 ✨") print("
识别到的文字内容: ")
# 逐行输出识别到的文字 for i, word_info in enumerate(words_result, 1): print(f"{i}. {word_info['words']}")
第五步:测试函数
if name == "main":
# 测试用的本地图片路径(你需要把这个路径改成你自己电脑上的图片路径) # 我这里用的是一张我自己打印的Python练习题图片 test_image_path = "python_exercise.jpg" # 调用函数识别文字 ocr_result = recognize_printed_text(test_image_path) # 格式化输出识别结果 print_ocr_result(ocr_result)
测试用例和个人使用体会
我刚才测试了这段代码,用的是一张我自己打印的Python练习题图片——图片里有5道Python选择题,还有一些手写的笔记(不过我用的是通用印刷体OCR,手写的笔记识别不出来,要用手写体OCR才行),测试结果非常好——5道选择题的题干、选项都识别得100%准确,没有任何错误。
我个人觉得,OCR识别是飞桨AI能力里最成熟、最实用的功能之一——以前我把扫描的PDF转成Word的时候,需要用Adobe Acrobat Pro或者其他付费软件,现在只需要把PDF的每一页截图,然后用这个工具识别文字,几分钟就能得到一份可编辑的Word文档;还有我平时出差报销的时候,需要把发票里的信息手动输入到报销系统里,现在只需要用身份证OCR、银行卡OCR、发票OCR的组合,几秒钟就能把所有信息识别出来并自动填入报销系统。
⚠️ 这里有几个小技巧:
- 图片的质量越高,识别效果越好——尽量用高清的、光线充足的、没有倾斜的图片;
- 如果图片有倾斜,可以把detect_direction参数设为True——模型会自动检测图片的旋转方向并纠正;
- 如果要识别手写的文字,要用HandwritingOcr类,而不是Ocr类——HandwritingOcr类专门用来识别手写的中文、英文、数字;
- 如果要识别身份证、银行卡、发票等特定类型的文档,可以用对应的专用OCR类——比如IdcardOcr类、BankcardOcr类、InvoiceOcr类,专用OCR类的识别准确率比通用OCR类更高,而且可以自动提取文档里的结构化信息(比如身份证的姓名、身份证号、地址,发票的金额、开票日期、纳税人识别号)。
作为一个深耕飞桨生态5年的老用户,我踩过的坑不计其数——今天我就把新手最容易踩的5个深坑和对应的避坑指南分享给大家,希望能帮大家少走弯路。
1 深坑一:把API Key和Secret Key直接写在公开的代码里
踩坑经历:我刚接触AI Studio API的时候,不知道什么是.env文件,直接把API Key和Secret Key写在了一个测试GitHub仓库的代码里,结果第二天早上起来一看,我的ERNIE-3.5的免费额度(当时每月只有10万次)全被盗用了,连付费额度都差点被盗用——还好我当时设置了付费额度提醒,及时把应用删除了,重新申请了一个新的API Key和Secret Key。
避坑指南:
- 绝对不要直接把API Key和Secret Key写在公开的代码里;
- 用环境变量/.env文件配置API Key和Secret Key;
- 把.env文件添加到.gitignore文件里;
- 定期更换API Key和Secret Key——比如每3个月更换一次;
- 设置付费额度提醒——在开放平台的控制台里点击「财务中心」→「额度管理」→「额度提醒」,设置免费额度用完提醒和付费额度上限提醒。
2 深坑二:模型名称写错了,导致调用报错「InvalidArgument: Model not found」
踩坑经历:我有一次调用ERNIE-4.0的时候,把模型名称写成了「ERNIE-4.0-8K」,结果一直报错「InvalidArgument: Model not found」——我当时找了半天原因,才发现正确的模型名称是「ERNIE-4.0-8K-Preview」(现在ERNIE-4.0已经正式上线了,模型名称改成了「ERNIE-4.0」)。
避坑指南:
- 模型名称必须和你在应用里勾选的一致——可以在开放平台的控制台里点击「产品服务」→「人工智能」→「对应产品」→「接口文档」,查看正确的模型名称;
- 也可以在qianfan SDK的代码里用qianfan.ChatCompletion().models()或者qianfan.Ocr().models()查看当前可用的模型列表。
3 深坑三:输入文本太长,超过了模型的最大输入tokens数,导致调用报错「InvalidArgument: Input text too long」
踩坑经历:我有一次用ERNIE-4.0 Turbo-8K生成一篇论文的摘要,把论文的全文(大概15000字,相当于18000+个tokens)复制到了代码里,结果一直报错「InvalidArgument: Input text too long」——我当时才知道ERNIE-4.0 Turbo-8K的最大输入tokens数是8192。
避坑指南:
- 先查看对应模型的最大输入tokens数——可以在接口文档里查看;
- 如果输入文本太长,可以把原文分成几个部分,分别生成结果,然后再把几个部分的结果合并;
- 也可以用飞桨的「文本预处理」工具先对输入文本进行压缩,去掉一些无关紧要的内容。
4 深坑四:温度参数设得太大或太小,导致生成的结果不符合要求
踩坑经历:我有一次用文心一格生成一张图片,把温度参数设成了1.0,结果生成的图片非常随机,完全不符合我的要求;还有一次用ERNIE-4.0 Turbo做AI对话,把温度参数设成了0.0,结果生成的回答非常死板,每次回答的内容都差不多。
避坑指南:
- 温度参数的取值范围是0-1;
- 日常的问答、文本摘要、代码生成等场景,温度参数设为0.3-0.7比较合适——0.3比较稳定,0.7比较灵活;
- 创意写作、段子生成、图片生成等场景,温度参数设为0.7-0.9比较合适;
- 如果你想要生成的结果完全一致,温度参数设为0.0即可。
5 深坑五:忘记刷新Access Token,导致调用报错「InvalidAccessToken: Access token expired」
踩坑经历:我刚接触AI Studio API的时候,是直接在官网手动复制Access Token的,结果30天后Access Token过期了,我当时找了半天原因,才知道Access Token的有效期是30天。
避坑指南:
- 不要手动复制Access Token——用qianfan SDK自动获取并缓存Access Token,过期自动刷新;
- 如果你必须手动复制Access Token,记得在30天内重新生成一个新的。
今天这篇文章,我带着大家把aistudio的API密钥的使用环节彻底拆解透了:
- 核心概念:API Key是应用身份证,Secret Key是应用密码,Access Token是临时通行证;
- 申请步骤:登录AI Studio→申请成为开发者→开通对应产品→创建应用→获取密钥;
- 配置步骤:搭建Python环境→安装qianfan SDK→配置环境变量/.env文件;
- 实战调用:三大主流场景(AI对话、长文本摘要、通用印刷体OCR)的Python代码实战;
- 避坑指南:新手最容易踩的5个深坑和对应的解决方法。
2 个人观点
我个人觉得,百度飞桨AI Studio的API服务是国内中小开发者和个人创作者接入前沿AI能力的**选择——原因有以下几点:
- 免费额度高:实名认证后,ERNIE-4.0 Turbo的免费调用次数是每月100万次,足够个人开发者日常使用;
- 价格便宜:付费版的价格比OpenAI的GPT-4 Turbo、Claude 3 Sonnet都要便宜很多;
- API设计简洁:qianfan SDK的API设计非常简洁,新手很容易上手;
- 文档详细:飞桨官方提供了非常详细的接口文档、教程、示例代码;
- 生态完善:飞桨生态有200+AI能力、1000+预训练模型、2000+生态合作伙伴,覆盖了金融、医疗、教育、制造等多个行业。
随着大模型技术的不断发展,我相信百度飞桨AI Studio的API服务会越来越完善——比如会推出更多的大模型(比如ERNIE-5.0)、更多的AI能力(比如3D建模、视频生成)、更便宜的价格、更完善的文档和教程,我也希望越来越多的中小开发者和个人创作者能够加入飞桨生态,用AI技术创造出更多有价值的应用。
- 百度飞桨文心千帆官方文档:https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html
- qianfan SDK官方GitHub仓库:https://github.com/PaddlePaddle/Qianfan
- 百度飞桨AI Studio官网:https://aistudio.baidu.com/
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/265332.html