前言
了解了OpenAI API 基础调用实践后,接下来实现文本分类和内容生成的功能。
文本分类
文本分类是自然语言处理(NLP)中的一项基础任务,指的是将一段文本自动分配到预定义的类别或标签中的过程,例如提供一段或几段文本,模型进行进行分类
下面提供了两个文本,一个是科技类的,一个政治新闻,让AI进行基础的文本分类
还是原来的文件,用 python test_openai.py 运行
python
import os
from dotenv import load_dotenv
from openai import OpenAI
# 加载环境变量
load_dotenv()
# 初始化客户端
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-5-nano",
messages=[
{"role": "system", "content": "你是一个文本分类助手。请将以下文本分类为:科技、体育、娱乐或政治。"},
{"role": "user", "content": "SpaceX 成功发射了星舰,这是人类航天史上的重要里程碑。"}
]
)
print(f"分类结果: {response.choices[0].message.content}")
response2 = client.chat.completions.create(
model="gpt-5-nano",
messages=[
{"role": "system", "content": "你是一个文本分类助手。请将以下文本分类为:科技、体育、娱乐或政治。"},
{"role": "user", "content": "特朗普下令特种部队把委内瑞拉总统马杜罗给抓到了美国"}
]
)
print(f"分类结果: {response2.choices[0].message.content}")
运行结果是 科技 和 政治,没啥毛病

上面是简单文本,给它个稍微长点的文本看看,并且不提供类别,看看能不能分出个一二三
这是文本内容,将三段新闻合起来
小米中国区前市场部总经理王腾新公司"今日宜休"已启动公开招聘,引发关注。租客每年交租时闹着要减租:林女士告诉记者,她的房子位于上城区,"当时租客说自己生意不好,妈妈生病。"13岁男生校内死亡系心源性疾病:2026年1月11日,新蔡县联合调查组就"13岁男生校内死亡"事件发布最新通报
python
response3 = client.chat.completions.create(
model="gpt-5-nano",
messages=[
{"role": "system", "content": "你是一个文本分类助手。请将以下文本分类"},
{"role": "user", "content": "小米中国区前市场部总经理王腾新公司"今日宜休"已启动公开招聘,引发关注。租客每年交租时闹着要减租:林女士告诉记者,她的房子位于上城区,"当时租客说自己生意不好,妈妈生病。"13岁男生校内死亡系心源性疾病:2026年1月11日,新蔡县联合调查组就"13岁男生校内死亡"事件发布最新通报"}
]
)
print(f"分类结果: {response3.choices[0].message.content}")

很奇怪的情况,怎么三段内容分成了四个,难道是数据格式问题?把数据格式改一下
小米中国区前市场部总经理王腾新公司'今日宜休'已启动公开招聘,引发关注。租客每年交租时闹着要减租:林女士告诉记者,她的房子位于上城区,'当时租客说自己生意不好,妈妈生病'。13岁男生校内死亡系心源性疾病:2026年1月11日,新蔡县联合调查组就'13岁男生校内死亡'事件发布最新通报
把文本内容里面的双引号的地方改了一下,改成单引号,然后再次运行
python
response3 = client.chat.completions.create(
model="gpt-5-nano",
messages=[
{"role": "system", "content": "你是一个文本分类助手。请将以下文本分类"},
{"role": "user", "content": "小米中国区前市场部总经理王腾新公司'今日宜休'已启动公开招聘,引发关注。租客每年交租时闹着要减租:林女士告诉记者,她的房子位于上城区,'当时租客说自己生意不好,妈妈生病'。13岁男生校内死亡系心源性疾病:2026年1月11日,新蔡县联合调查组就'13岁男生校内死亡'事件发布最新通报"}
]
)
print(f"分类结果: {response3.choices[0].message.content}")
这次就正常了,分成了三类,并且子标题描述相对准确

由此可见数据的质量对模型的影响是很大的,一个操作不好就变成智障了

好了,文本分类的功能效果大概了解了,接下来看下内容生成
内容生成
内容生成(Content Generation)也是自然语言处理(NLP)中的一项重要任务,指的是利用AI模型自动创建各种形式的文本内容的过程。与文本分类不同,内容生成是一个生成式任务,模型需要根据给定的输入(如提示、指令或上下文)创建全新的文本内容
内容生成对于我们日常来讲可就太常见了,例如现在的开发/产品日常让AI写代码,嘴遁一段文字或需求,或者输入一段需求,让AI写代码,或者问一些AI相关的问题,让AI生成对应的答案等
例如,下面继续调用 gpt-5-nano 模型,让它给 '草帽lufei' 写一段自我介绍和宣传文案
python
response_gen = client.chat.completions.create(
model="gpt-5-nano",
messages=[
{"role": "system", "content": "你是一个创意专业的文案撰写专家"},
{"role": "user", "content": "请为'草帽lufei'这个研究AI Agent的公众号博主,写一段吸引人的自我介绍文案和宣传文案。"}
]
)
print(f"生成结果: {response_gen.choices[0].message.content}")
单纯文本相关调用的话,除了提示内容不一样,剩下的代码一毛一样,API调用是真简单,一行代码加个参数就行了,不得不感叹现在的AI模型能力是真强,看下输出结果

简单提示词的话,生成出来就仿佛是模板直接输出的一样,那种浓浓的专业感,浓浓的AI味儿,对于实际的我来讲,生成结果毛用没有
要是我自己写介绍自己的话,我即兴发挥一下
大家好,我是草帽lufei,一个有几年搬砖经验的开发吊毛,现在的主要关注方向就是Agent相关应用和开发相关的内容,平时主要还是用AI来搬砖,抽空看一些前沿的AI相关的技术,也进行一些相关技术的实践和学习,之前的个人签名是"用计算机创造美和艺术,用AI改变世界",现在的计划是,熟练的用好AI,及时更进AI相关的应用和相关的技术,自己不被公司第一波裁掉,有口饭吃就行

小结
目前复制改的python代码就那么两行,调用起来很简单,通过自己实际调用,能熟悉一下现在API的调用方式和参数怎么用,以及实际遇到的数据格式小问题对模型的理解,接下来将继续学习Prompt Engineering相关技巧
欢迎留言交流,如果觉得有帮助,可以
点个赞支持一下公众号:草帽lufei