基础练习:调用模型完成一句话解释
使用 OpenAI 兼容方式调用模型,从环境变量读取 OPENAI_API_KEY,提问"请用一句话解释提示词工程",打印模型回复。
查看参考答案 ▼
import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": "你是一个简洁的 AI 助手,请用中文回答。"},
{"role": "user", "content": "请用一句话解释提示词工程。"}
]
)
print(completion.choices[0].message.content)
✓ 正确
参考答案:import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": "你是一个简洁的 AI 助手,请用中文回答。"},
{"role": "user", "content": "请用一句话解释提示词工程。"}
]
)
print(completion.choices[0].message.content)
基础练习:设置计算器角色
使用 system 设定模型为计算器(只输出最终结果,不要解释),user 中提问 2 + 5 * 3 等于多少?
查看参考答案 ▼
import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=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": "2 + 5 * 3 等于多少?"}
]
)
print(completion.choices[0].message.content)
✓ 正确
参考答案:import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=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": "2 + 5 * 3 等于多少?"}
]
)
print(completion.choices[0].message.content)
基础练习:DashScope 调用模型
使用 dashscope 库调用模型,从环境变量读取 DASHSCOPE_API_KEY,提问"请用一句话解释 RAG"。
查看参考答案 ▼
import os
import dashscope
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
if not dashscope.api_key:
raise ValueError("没有读取到 DASHSCOPE_API_KEY,请配置环境变量后重启 PyCharm。")
response = dashscope.Generation.call(
model="qwen-plus",
messages=[
{"role": "system", "content": "你是一个简洁的 AI 助手,请用中文回答。"},
{"role": "user", "content": "请用一句话解释 RAG。"}
]
)
print(response.output["text"])
✓ 正确
参考答案:import os
import dashscope
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
if not dashscope.api_key:
raise ValueError("没有读取到 DASHSCOPE_API_KEY,请配置环境变量后重启 PyCharm。")
response = dashscope.Generation.call(
model="qwen-plus",
messages=[
{"role": "system", "content": "你是一个简洁的 AI 助手,请用中文回答。"},
{"role": "user", "content": "请用一句话解释 RAG。"}
]
)
print(response.output["text"])
进阶练习:客户反馈情绪分类
使用 system 设定模型为客户反馈分析助手,输入客户反馈,要求输出 JSON(emotion/problem/suggestion),情绪只能是正面、负面、中性。
查看参考答案 ▼
import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个客户反馈分析助手。
请分析用户反馈,并输出 JSON。
要求:
1. emotion 只能是:正面、负面、中性。
2. problem 提取客户提到的主要问题。
3. suggestion 给出一句适合客服回复的建议。
4. 只输出 JSON,不要输出解释文字。
"""
user_feedback = """
这个 AI 写作工具生成速度挺快,但是经常答非所问,导出的格式也有点乱。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_feedback},
]
)
print(completion.choices[0].message.content)
✓ 正确
参考答案:import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个客户反馈分析助手。
请分析用户反馈,并输出 JSON。
要求:
1. emotion 只能是:正面、负面、中性。
2. problem 提取客户提到的主要问题。
3. suggestion 给出一句适合客服回复的建议。
4. 只输出 JSON,不要输出解释文字。
"""
user_feedback = """
这个 AI 写作工具生成速度挺快,但是经常答非所问,导出的格式也有点乱。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_feedback},
]
)
print(completion.choices[0].message.content)
进阶练习:会议行动项提取
从会议内容中提取行动项,输出 JSON,每个行动项包含 item/owner/deadline,没有明确截止时间则 deadline 写 null。
查看参考答案 ▼
import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个会议行动项提取助手。
请从会议内容中提取明确有人负责的任务。
输出要求:
1. 只输出 JSON。
2. JSON 顶层字段为 action_items。
3. 每个行动项包含 item、owner、deadline。
4. 如果没有明确截止时间,deadline 写 null。
"""
meeting_text = """
本次周会决定,小王本周五前完成智能客服原型页面,小张负责整理客户反馈,但没有明确截止时间。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": meeting_text},
]
)
print(completion.choices[0].message.content)
✓ 正确
参考答案:import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个会议行动项提取助手。
请从会议内容中提取明确有人负责的任务。
输出要求:
1. 只输出 JSON。
2. JSON 顶层字段为 action_items。
3. 每个行动项包含 item、owner、deadline。
4. 如果没有明确截止时间,deadline 写 null。
"""
meeting_text = """
本次周会决定,小王本周五前完成智能客服原型页面,小张负责整理客户反馈,但没有明确截止时间。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": meeting_text},
]
)
print(completion.choices[0].message.content)
进阶练习:给模型一个示例
使用 few-shot 示例,让模型学习快递信息抽取。system 设定规则,user/assistant 提供示例,再输入真实文本,输出姓名/手机号/地址 JSON。
查看参考答案 ▼
import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个快递信息提取助手。
请提取姓名、手机号、地址。
只输出 JSON。
手机号中的横线和空格要去掉。
"""
example_user = "张明远,138-1234-5678
广东省深圳市南山区科技园南区高新南一道1000号腾讯大厦18层 1806室"
example_assistant = '{"name": "张明远", "phone": "13812345678", "address": "广东省深圳市南山区科技园南区高新南一道1000号腾讯大厦18层 180室"}'
real_user = """
李婉婷
151-9876-5432
北京市海淀区中关村大街1号海龙大厦8层805室
东西是一份文件,已经封装好了。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": example_user},
{"role": "assistant", "content": example_assistant},
{"role": "user", "content": real_user},
]
)
print(completion.choices[0].message.content)
✓ 正确
参考答案:import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个快递信息提取助手。
请提取姓名、手机号、地址。
只输出 JSON。
手机号中的横线和空格要去掉。
"""
example_user = "张明远,138-1234-5678
广东省深圳市南山区科技园南区高新南一道1000号腾讯大厦18层 1806室"
example_assistant = '{"name": "张明远", "phone": "13812345678", "address": "广东省深圳市南山区科技园南区高新南一道1000号腾讯大厦18层 180室"}'
real_user = """
李婉婷
151-9876-5432
北京市海淀区中关村大街1号海龙大厦8层805室
东西是一份文件,已经封装好了。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": example_user},
{"role": "assistant", "content": example_assistant},
{"role": "user", "content": real_user},
]
)
print(completion.choices[0].message.content)
综合案例:社媒内容分类
设计社媒内容分类提示词,将输入内容分为噪音/广告营销/弱相关/非噪音四类,要求输出 JSON(label + confidence)。
查看参考答案 ▼
import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个品牌社媒内容分类助手。
请将输入内容分类为以下四类之一:
1. 噪音:完全无关,比如成语、误匹配、人名等。
2. 广告营销:促销、打卡、优惠、正面分享。
3. 弱相关:只是顺带提到品牌,没有具体行为或评价。
4. 非噪音:真实评价、投诉、体验、负面内容或有效内容。
输出要求:
1. 只输出 JSON。
2. label 必须是:噪音、广告营销、弱相关、非噪音。
3. confidence 必须是:high、medium、low。
"""
content = "#海底捞# 今天生日去吃饭,服务员送了蛋糕,体验很好!"
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": content},
]
)
print(completion.choices[0].message.content)
✓ 正确
参考答案:import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个品牌社媒内容分类助手。
请将输入内容分类为以下四类之一:
1. 噪音:完全无关,比如成语、误匹配、人名等。
2. 广告营销:促销、打卡、优惠、正面分享。
3. 弱相关:只是顺带提到品牌,没有具体行为或评价。
4. 非噪音:真实评价、投诉、体验、负面内容或有效内容。
输出要求:
1. 只输出 JSON。
2. label 必须是:噪音、广告营销、弱相关、非噪音。
3. confidence 必须是:high、medium、low。
"""
content = "#海底捞# 今天生日去吃饭,服务员送了蛋糕,体验很好!"
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": content},
]
)
print(completion.choices[0].message.content)
综合案例:AI 产品需求整理
从需求描述中提取结构化信息,输出 JSON(product/scenario/channels/constraints/risk_handling)。
查看参考答案 ▼
import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个 AI 产品需求分析助手。
请从用户输入中提取结构化需求信息。
输出 JSON,字段包括:
1. product:产品名称或产品类型。
2. scenario:主要应用场景。
3. channels:使用渠道,数组格式。
4. constraints:约束条件,数组格式。
5. risk_handling:风险处理方式。
只输出 JSON,不要输出解释文字。
"""
requirement = """
我们想做一个 AI 客服助手,主要用于回答用户关于订单、退款、物流的问题。
希望先接入网页端,输出要简洁,遇到不确定的问题要提示转人工。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": requirement},
]
)
print(completion.choices[0].message.content)
✓ 正确
参考答案:import os
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("没有读取到 OPENAI_API_KEY,请配置环境变量后重启 PyCharm。")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
system_prompt = """
你是一个 AI 产品需求分析助手。
请从用户输入中提取结构化需求信息。
输出 JSON,字段包括:
1. product:产品名称或产品类型。
2. scenario:主要应用场景。
3. channels:使用渠道,数组格式。
4. constraints:约束条件,数组格式。
5. risk_handling:风险处理方式。
只输出 JSON,不要输出解释文字。
"""
requirement = """
我们想做一个 AI 客服助手,主要用于回答用户关于订单、退款、物流的问题。
希望先接入网页端,输出要简洁,遇到不确定的问题要提示转人工。
"""
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": requirement},
]
)
print(completion.choices[0].message.content)