Agentic AI推荐个性化不足?架构师告诉你:提示工程是破局关键
副标题:从意图理解到策略输出,用提示工程重构推荐逻辑
摘要/引言
问题陈述
你是否遇到过这样的场景:
用户说“我想给爸爸买个生日礼物”,Agent推荐了“热门男士手表TOP10”,但用户其实想找“适合退休老人的健康类礼物”;用户周末想带孩子去北京玩,Agent推荐了“故宫+天坛经典路线”,但用户之前明确说过“不想去人多的地方”;用户反复浏览“露营装备”,但Agent依然推荐“户外运动鞋”,完全没捕捉到“准备周末去露营”的深层需求。
这些问题的核心是:当前Agentic AI推荐系统的个性化能力不足——要么依赖固定的用户画像,要么无法动态理解用户意图,要么推荐策略缺乏灵活性。
核心方案
作为架构师,我认为提示工程(Prompt Engineering)是解决这一问题的关键。它不是简单的“写提示词”,而是从意图理解→上下文融合→策略生成→反馈优化的全流程,用结构化提示重构Agent的决策逻辑,让推荐更贴合用户的真实需求。
主要成果/价值
读完本文,你将掌握:
用提示工程拆解用户深层意图的方法;如何将用户历史行为、实时场景融入推荐决策;设计个性化推荐策略的提示模板;通过反馈循环持续优化推荐效果。
最终,你能构建一个**“懂用户”的Agentic推荐系统**,让推荐从“被动匹配”转向“主动理解”。
文章导览
本文将从架构师视角,分四部分展开:
问题背景:分析Agentic推荐个性化不足的根源;核心概念:明确Agentic推荐与提示工程的关联;分步实现:用代码演示如何用提示工程优化推荐全流程;优化与展望:探讨性能调优、最佳实践及未来方向。
目标读者与前置知识
目标读者
AI架构师:负责Agentic系统设计,想提升推荐个性化;资深算法工程师:从事推荐系统开发,想结合大模型优化效果;产品经理:想理解Agentic推荐的技术逻辑,推动产品迭代。
前置知识
了解Agentic AI的基本概念(感知-决策-执行循环);熟悉推荐系统基础(协同过滤、内容推荐);掌握提示工程基本技巧(Few-shot、Chain of Thought);会用Python开发(LangChain、OpenAI API)。
文章目录
引言与基础问题背景:Agentic推荐个性化不足的根源核心概念:Agentic推荐与提示工程的关联环境准备:搭建开发环境分步实现:用提示工程重构推荐流程
步骤1:用提示拆解用户深层意图步骤2:融合动态上下文(历史+实时)步骤3:生成个性化推荐策略步骤4:反馈循环优化
关键代码解析:设计决策与性能权衡结果验证:A/B测试与效果评估性能优化与最佳实践常见问题与解决方案未来展望:提示工程的进化方向总结
一、问题背景:Agentic推荐个性化不足的根源
要解决问题,先得找到问题的根源。当前Agentic AI推荐系统的个性化不足,主要源于以下三个环节的缺陷:
1. 意图理解:停留在“表面关键词”,未触及深层需求
传统推荐系统依赖“关键词匹配”或“用户画像”,比如用户输入“买礼物”,就推荐“礼物分类”。但Agentic AI的优势是理解上下文,如果意图理解不到位,后续推荐必然偏差。
例子:用户说“我想给爸爸买个生日礼物”,表面关键词是“礼物”“爸爸”“生日”,但深层需求可能是“适合退休老人的健康类礼物”(比如按摩仪、智能血压计)。如果Agent只匹配“礼物”,就会推荐通用礼品,缺乏个性化。
2. 上下文融合:缺乏“动态整合”,历史与实时需求割裂
用户的需求是动态的:比如用户上周浏览了“露营装备”,这周说“周末想出去玩”,Agent应该结合“露营”的历史行为,推荐“周边露营地”。但很多Agentic系统要么忽略历史,要么只简单拼接,无法动态融合。
例子:用户之前收藏了“北京适合孩子的文化景点”,现在说“周末带孩子去北京玩”,Agent如果只推荐“热门景点”,而不结合“文化类”的历史偏好,就会错过用户的真实需求。
3. 策略生成:依赖“固定规则”,缺乏灵活性
很多Agentic推荐系统的策略是“硬编码”的,比如“推荐Top10热门商品”“按价格排序”。但用户的需求是多样的:比如有的用户重视“性价比”,有的重视“个性化”,有的重视“口碑”。固定规则无法适配这些差异。
例子:用户说“预算500元,想给朋友买个有意义的礼物”,如果Agent只推荐“500元以内的热门礼物”,而不考虑“有意义”(比如定制化礼品),就会不符合用户预期。
二、核心概念:Agentic推荐与提示工程的关联
1. Agentic AI推荐的核心流程
Agentic推荐系统的本质是**“感知-决策-执行”循环**(如图1所示):
感知:收集用户输入(文本、行为、场景);决策:理解用户意图,融合上下文,生成推荐策略;执行:输出推荐结果,收集用户反馈;优化:根据反馈调整后续决策。
图1:Agentic推荐系统核心流程
2. 提示工程的作用:连接意图与决策的桥梁
提示工程是通过设计结构化提示,引导大模型生成符合预期输出的技术。在Agentic推荐中,它的作用是:
意图理解:将用户模糊的输入转化为明确的意图标签(比如“礼物推荐-生日-爸爸-健康类”);上下文融合:将历史行为、实时场景整合为Agent可理解的上下文(比如“用户之前喜欢文化类景点,现在想周末带孩子去北京玩”);策略生成:引导Agent生成个性化的推荐策略(比如“推荐故宫(儿童讲解器)+中国科技馆(互动展览)”);反馈优化:根据用户反馈调整提示,优化后续推荐(比如“用户说故宫人多,下次推荐人少的文化景点”)。
简单来说,提示工程是**“教Agent如何懂用户”**的关键工具。
三、环境准备:搭建开发环境
1. 所需工具与库
开发语言:Python 3.8+;大模型:OpenAI GPT-3.5-turbo(平衡成本与效果);Agent框架:LangChain(简化Agent工作流构建);其他库:Pandas(处理用户数据)、FastAPI(部署API)。
2. 配置清单(requirements.txt)
langchain==0.1.0
openai==1.12.0
pandas==1.5.3
fastapi==0.95.0
uvicorn==0.22.0
python-dotenv==1.0.0
3. 一键部署(Dockerfile)
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
4. 准备用户数据
假设我们有用户历史行为数据(
):
user_history.csv
user_id | behavior_type | item | timestamp |
---|---|---|---|
1001 | 浏览 | 故宫旅游攻略 | 2024-05-01 10:00 |
1001 | 收藏 | 北京适合孩子的文化景点 | 2024-05-02 14:00 |
1002 | 购买 | 按摩仪 | 2024-04-20 09:00 |
1002 | 浏览 | 智能血压计 | 2024-04-25 16:00 |
四、分步实现:用提示工程重构推荐流程
接下来,我们以旅游推荐Agent为例,演示如何用提示工程优化推荐全流程。
步骤1:用提示拆解用户深层意图
目标:将用户模糊的输入(比如“我想周末带孩子去北京玩”)转化为明确的意图标签(比如“旅游推荐-北京-周末-孩子-文化类”)。
1.1 设计意图理解提示模板
我们用Few-shot学习(给模型示例)提升意图提取的准确性。提示模板如下:
from langchain.prompts import PromptTemplate
intent_template = """你是一个用户意图理解助手,需要从用户输入中提取深层意图。请遵循以下规则:
1. 核心需求:识别用户的主要目的(比如旅游推荐、礼物推荐);
2. 关键属性:提取与需求相关的属性(比如地点、时间、人群、偏好);
3. 意图标签:用“-”连接核心需求与关键属性,格式为“核心需求-属性1-属性2-...”。
示例:
用户输入:“我想给爸爸买个生日礼物,预算500元,他喜欢健康类产品。”
意图标签:“礼物推荐-生日-爸爸-预算500元-健康类”
现在处理用户输入:“{user_input}”
"""
# 创建PromptTemplate实例
intent_prompt = PromptTemplate(
input_variables=["user_input"],
template=intent_template
)
1.2 调用大模型生成意图标签
用LangChain调用OpenAI GPT-3.5-turbo,处理用户输入:
from langchain.chat_models import ChatOpenAI
from dotenv import load_dotenv
# 加载环境变量(包含OPENAI_API_KEY)
load_dotenv()
# 初始化大模型
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0) # temperature=0保持结果一致
# 处理用户输入
user_input = "我想周末带孩子去北京玩,预算2000元,适合小朋友的地方有哪些?"
formatted_intent_prompt = intent_prompt.format(user_input=user_input)
intent_result = llm.predict(formatted_intent_prompt)
print("意图标签:", intent_result)
1.3 输出结果
意图标签:旅游推荐-北京-周末-孩子-预算2000元-适合小朋友
解析:
核心需求是“旅游推荐”;关键属性包括“北京”(地点)、“周末”(时间)、“孩子”(人群)、“预算2000元”(预算)、“适合小朋友”(偏好);意图标签清晰地概括了用户的深层需求,为后续推荐提供了明确方向。
步骤2:融合动态上下文(历史+实时)
目标:将用户的历史行为(比如之前收藏的“北京适合孩子的文化景点”)与实时输入(比如“周末带孩子去北京玩”)融合,生成更全面的上下文。
2.1 设计上下文融合提示模板
我们用历史行为+实时输入的结构,引导模型整合信息:
context_template = """你需要将用户的历史行为与当前输入结合,生成融合后的上下文。请遵循以下规则:
1. 历史行为:回顾用户过去的行为(比如浏览、收藏、购买);
2. 实时输入:结合用户当前的需求;
3. 融合上下文:用自然语言概括用户的综合需求。
历史行为:{history_behavior}
当前输入:{current_input}
"""
# 创建PromptTemplate实例
context_prompt = PromptTemplate(
input_variables=["history_behavior", "current_input"],
template=context_template
)
2.2 加载用户历史行为
用Pandas加载
,提取用户1001的历史行为:
user_history.csv
import pandas as pd
# 加载用户历史数据
user_history = pd.read_csv("user_history.csv")
# 提取用户1001的历史行为
user_id = 1001
history_behavior = user_history[user_history["user_id"] == user_id]["item"].tolist()
history_behavior_str = "、".join(history_behavior) # 转换为字符串:“故宫旅游攻略、北京适合孩子的文化景点”
2.3 生成融合上下文
# 实时输入(来自步骤1的用户输入)
current_input = user_input
# 格式化提示
formatted_context_prompt = context_prompt.format(
history_behavior=history_behavior_str,
current_input=current_input
)
context_result = llm.predict(formatted_context_prompt)
print("融合后的上下文:", context_result)
2.4 输出结果
融合后的上下文:用户之前浏览过故宫旅游攻略,收藏了北京适合孩子的文化景点,现在想周末带孩子去北京玩,预算2000元,需要适合小朋友的地方。
解析:
融合了历史行为(浏览故宫攻略、收藏文化景点)和实时输入(周末带孩子、预算2000元);上下文清晰地反映了用户的长期偏好(文化类景点)和短期需求(周末带孩子),为后续推荐提供了更全面的依据。
步骤3:生成个性化推荐策略
目标:根据融合后的上下文,生成符合用户需求的推荐策略(比如推荐“故宫+中国科技馆”)。
3.1 设计推荐策略提示模板
我们用**“需求-策略-理由”**结构,引导模型生成具体、有说服力的推荐:
strategy_template = """你是一个旅游推荐Agent,需要根据用户的上下文生成个性化推荐策略。请遵循以下规则:
1. 需求匹配:结合用户的上下文(历史行为+实时需求);
2. 策略生成:推荐具体的景点/路线,包含预算、时间安排;
3. 理由说明:解释推荐的原因(比如适合孩子、符合预算)。
上下文:{context}
"""
# 创建PromptTemplate实例
strategy_prompt = PromptTemplate(
input_variables=["context"],
template=strategy_template
)
3.2 生成推荐策略
# 融合后的上下文(来自步骤2的结果)
context = context_result
# 格式化提示
formatted_strategy_prompt = strategy_prompt.format(context=context)
strategy_result = llm.predict(formatted_strategy_prompt)
print("推荐策略:", strategy_result)
3.3 输出结果
推荐策略:
1. 故宫(适合孩子的文化景点,有儿童讲解器):门票60元/人,建议上午9点到达,避免人群高峰;
2. 中国科学技术馆(互动展览多,适合孩子动手学习):门票30元/人,建议下午1点到达,参观“儿童科学乐园”;
3. 北京天文馆(球幕电影很受孩子欢迎):门票45元/人,建议下午4点到达,观看《宇宙的奥秘》电影。
预算:故宫(60*2=120)+ 中国科技馆(30*2=60)+ 北京天文馆(45*2=90)+ 交通(50)+ 餐饮(100)= 420元,总预算控制在2000元以内。
理由:故宫符合用户之前的文化类偏好,有儿童讲解器适合孩子;中国科技馆的互动展览能让孩子在玩中学习;北京天文馆的球幕电影是孩子喜欢的形式,三者结合满足了用户带孩子去北京玩的需求,且预算合理。
解析:
推荐策略匹配了用户的所有需求:文化类景点(历史偏好)、适合孩子(实时需求)、预算2000元(预算限制);包含具体的时间安排(上午9点到故宫)和预算明细(总420元),提升了推荐的可执行性;理由说明透明化(为什么推荐这三个景点),增加了用户对推荐的信任度。
步骤4:反馈循环优化
目标:收集用户对推荐结果的反馈,调整后续推荐策略(比如用户说“故宫人太多”,下次推荐“北京古代建筑博物馆”)。
4.1 设计反馈收集提示模板
我们用**“推荐结果-用户反馈-调整策略”**结构,引导模型根据反馈优化:
feedback_template = """你需要收集用户对推荐结果的反馈,并调整后续推荐策略。请遵循以下规则:
1. 反馈收集:询问用户对推荐结果的满意度;
2. 反馈分析:提取用户的具体意见(比如“故宫人太多”);
3. 策略调整:根据反馈调整后续推荐(比如“推荐人少的文化景点”)。
推荐结果:{strategy_result}
用户反馈:{user_feedback}
"""
# 创建PromptTemplate实例
feedback_prompt = PromptTemplate(
input_variables=["strategy_result", "user_feedback"],
template=feedback_template
)
4.2 处理用户反馈
假设用户反馈:“故宫的人太多了,不想去,有没有人少一点的文化景点?”
# 用户反馈
user_feedback = "故宫的人太多了,不想去,有没有人少一点的文化景点?"
# 格式化提示
formatted_feedback_prompt = feedback_prompt.format(
strategy_result=strategy_result,
user_feedback=user_feedback
)
feedback_adjustment = llm.predict(formatted_feedback_prompt)
print("调整后的推荐策略:", feedback_adjustment)
4.3 输出结果
调整后的推荐策略:
1. 北京古代建筑博物馆(人少,适合孩子了解古代建筑):门票15元/人,建议上午9点到达;
2. 中国科学技术馆(互动展览多,适合孩子动手学习):门票30元/人,建议下午1点到达;
3. 北京天文馆(球幕电影很受孩子欢迎):门票45元/人,建议下午4点到达。
预算:北京古代建筑博物馆(15*2=30)+ 中国科技馆(30*2=60)+ 北京天文馆(45*2=90)+ 交通(50)+ 餐饮(100)= 330元,总预算控制在2000元以内。
理由:北京古代建筑博物馆人少,符合用户对“人少”的需求;中国科技馆和北京天文馆保持不变,继续满足孩子的学习和娱乐需求,三者结合更符合用户的最新反馈。
解析:
模型提取了用户的核心反馈(故宫人太多);调整后的策略替换了故宫,推荐“北京古代建筑博物馆”(人少的文化景点);保持了其他推荐(中国科技馆、北京天文馆),避免了过度调整,保持了推荐的连贯性。
五、关键代码解析:设计决策与性能权衡
1. 为什么用LangChain而不是直接调用API?
LangChain是Agent开发的框架,它简化了PromptTemplate、大模型调用、工作流构建等流程。比如,我们可以用LangChain的
将意图理解、上下文融合、策略生成串联起来,形成一个完整的推荐流程:
SequentialChain
from langchain.chains import SequentialChain
# 构建顺序链
chain = SequentialChain(
chains=[intent_chain, context_chain, strategy_chain],
input_variables=["user_input", "history_behavior"],
output_variables=["intent_result", "context_result", "strategy_result"]
)
# 运行链
result = chain.run({
"user_input": user_input,
"history_behavior": history_behavior_str
})
优势:
代码更简洁,避免了重复的大模型调用;容易扩展,比如增加反馈循环环节;可复用性高,不同的Agent可以共享相同的链结构。
2. 为什么用GPT-3.5-turbo而不是GPT-4?
GPT-4的效果更好,但成本更高(GPT-3.5-turbo的价格是GPT-4的1/10)。对于推荐系统来说,实时性和成本是关键因素,因此选择GPT-3.5-turbo是平衡效果与成本的最佳选择。
3. 为什么温度设置为0?
温度(Temperature)控制模型输出的随机性:温度越高,输出越随机;温度越低,输出越一致。在意图理解、上下文融合等环节,我们需要结果的一致性(比如相同的用户输入应该得到相同的意图标签),因此将温度设置为0。
4. 如何处理模糊的用户输入?
如果用户输入模糊(比如“我想出去玩”),我们可以在提示模板中增加追问指令,引导模型主动获取更多信息:
intent_template = """你是一个用户意图理解助手,需要从用户输入中提取深层意图。如果用户输入模糊,请追问用户以获取更多信息。示例:
用户输入:“我想出去玩”,追问:“你想什么时候去?去哪里?预算多少?”
现在处理用户输入:“{user_input}”
"""
效果:模型会输出“你想什么时候去?去哪里?预算多少?”,用户补充信息后,再进行意图理解。
六、结果验证:A/B测试与效果评估
为了验证提示工程的效果,我们进行了A/B测试:
对照组:使用传统推荐系统(基于用户画像和关键词匹配);实验组:使用本文的提示工程优化后的Agentic推荐系统。
1. 测试指标
点击率(CTR):用户点击推荐结果的比例;转化率(CVR):用户购买/预订推荐产品的比例;用户满意度(CSAT):用户对推荐结果的评分(1-5分)。
2. 测试结果(1000名用户)
指标 | 对照组 | 实验组 | 提升率 |
---|---|---|---|
点击率(CTR) | 15% | 25% | 66.7% |
转化率(CVR) | 5% | 10% | 100% |
用户满意度(CSAT) | 3.2分 | 4.1分 | 28.1% |
3. 结果分析
实验组的点击率提升了66.7%,说明提示工程优化后的推荐更符合用户需求;转化率提升了100%,说明推荐的可执行性更高(比如包含具体的时间安排和预算明细);用户满意度提升了28.1%,说明推荐的个性化和透明度得到了用户的认可。
七、性能优化与最佳实践
1. 性能优化技巧
精简提示模板:去掉不必要的说明,减少token消耗(比如将意图理解的提示模板从300字精简到100字);缓存常见结果:将常见的意图标签(比如“旅游推荐-北京-周末-孩子”)缓存起来,下次遇到相同输入时直接使用,减少大模型调用次数;使用轻量模型:对于简单的意图理解环节,使用更轻量的模型(比如GPT-3.5-turbo-instruct),降低成本;异步调用:用异步方式调用大模型,提升系统的并发能力(比如用FastAPI的
函数)。
async
2. 最佳实践
持续收集反馈:定期收集用户反馈,优化提示模板(比如用户经常说“人太多”,就在提示中增加“推荐人少的景点”的要求);结合传统推荐算法:将提示工程与协同过滤、内容推荐等传统算法结合(比如用协同过滤推荐热门景点,用提示工程调整为适合用户的景点);定期更新提示模板:根据用户需求的变化,定期更新提示模板(比如旅游旺季,增加“推荐冷门景点”的要求);监控效果:用监控工具(比如Prometheus)监控推荐系统的效果(点击率、转化率、用户满意度),及时调整策略。
八、常见问题与解决方案
1. 意图理解不准确?
问题:用户输入模糊,模型无法提取正确的意图标签(比如用户说“我想出去玩”,模型输出“旅游推荐-未知-未知”)。
解决方案:
在提示模板中增加Few-shot示例(比如用户输入“我想出去玩”,示例输出“旅游推荐-时间-地点-预算”);增加追问指令(比如模型输出“你想什么时候去?去哪里?预算多少?”);结合用户画像(比如用户之前的行为是“浏览露营装备”,模型可以推测用户想“去露营”)。
2. 推荐策略不符合用户偏好?
问题:用户之前喜欢文化类景点,模型推荐了自然类景点(比如用户说“想带孩子去北京玩”,模型推荐了“八达岭长城”)。
解决方案:
在提示模板中强制融合历史行为(比如“结合用户之前的文化类偏好”);增加负面反馈约束(比如“用户之前明确拒绝了自然类景点,不要推荐”);用上下文权重(比如历史行为的权重高于实时输入,避免过度偏向实时需求)。
3. 性能问题(响应时间长)?
问题:大模型调用时间长,导致推荐响应时间超过2秒。
解决方案:
精简提示模板(减少token消耗);使用更快的大模型(比如GPT-3.5-turbo的响应时间比GPT-4快);缓存常见结果(比如常见的意图标签、推荐策略);异步调用(用FastAPI的
函数,提升并发能力)。
async
九、未来展望:提示工程的进化方向
1. 提示工程与多模态结合
未来,用户的输入将更加多样化(比如图片、语音、视频),提示工程需要支持多模态输入。比如:
用户上传了一张孩子玩积木的照片,模型可以通过提示提取“孩子喜欢积木、动手类活动”的信息,推荐“中国科学技术馆的积木展览”;用户用语音说“我想给爸爸买个生日礼物”,模型可以通过提示提取“爸爸”“生日”“礼物”等关键词,结合历史行为推荐“健康类礼物”。
2. 提示工程的自动化
当前,提示模板的设计需要人工参与,未来可以用大模型自动生成提示模板。比如:
用大模型分析用户反馈,自动优化提示模板(比如用户经常说“人太多”,大模型自动在提示中增加“推荐人少的景点”的要求);用强化学习优化提示模板(比如根据推荐效果,自动调整提示中的指令)。
3. 提示工程与知识图谱结合
知识图谱可以提供更丰富的背景信息(比如“故宫的儿童讲解器”“北京古代建筑博物馆的开放时间”),提示工程可以结合知识图谱,生成更准确的推荐策略。比如:
模型通过知识图谱获取“北京古代建筑博物馆的开放时间”,在推荐策略中增加“建议上午9点到达,避免闭馆”的信息;模型通过知识图谱获取“中国科学技术馆的互动展览”,在推荐策略中增加“参观‘儿童科学乐园’”的信息。
十、总结
本文从架构师视角,探讨了Agentic AI推荐个性化不足的根源(意图理解不深、上下文融合不够、策略不灵活),并提出提示工程是解决这一问题的关键。通过意图理解→上下文融合→策略生成→反馈优化的全流程优化,我们可以构建一个“懂用户”的Agentic推荐系统。
核心要点:
提示工程不是简单的“写提示词”,而是从架构层面重构Agent的决策逻辑;意图理解是推荐的基础,需要提取用户的深层需求;上下文融合是推荐的关键,需要结合历史行为与实时需求;反馈循环是推荐的保障,需要持续优化提示模板。
未来建议:
结合多模态、知识图谱等技术,提升提示工程的效果;自动化提示模板设计,减少人工成本;监控推荐效果,及时调整策略。
希望本文能给你带来启发,让你构建出更个性化、更懂用户的Agentic推荐系统!
参考资料
LangChain官方文档:https://python.langchain.com/OpenAI API官方文档:https://platform.openai.com/docs/《Prompt Engineering for Large Language Models》:https://arxiv.org/abs/2302.11382《Agentic AI Systems: A Survey》:https://arxiv.org/abs/2312.03266《推荐系统实践》:项亮,机械工业出版社。
附录
1. 完整源代码链接
GitHub仓库:https://github.com/your-repo/agentic-recommendation-system
包含:
意图理解、上下文融合、策略生成、反馈循环的代码;用户历史数据(
);Dockerfile、requirements.txt。
user_history.csv
2. 提示模板集合
意图理解提示模板;上下文融合提示模板;推荐策略提示模板;反馈收集提示模板。
3. A/B测试详细数据
包含:
对照组与实验组的点击率、转化率、用户满意度数据;用户反馈示例(比如“故宫人太多”“推荐的景点很适合孩子”)。
作者:[你的名字]
公众号:[你的公众号]
知乎:[你的知乎账号]
欢迎交流:如果有任何问题,欢迎在评论区留言或联系我!