prompt提示词工程笔记

文章目录

提示词的作用

一句话,给AI下达清晰、严格、可执行的命令,让AI稳定、准确、听话地干活,而不是胡编乱造、跑偏、答非所问。

1、让AI真正"听懂"你的需求

AI没有脑子,只看文字。

提示词写得清楚,它就理解准确;

写得模糊,它就瞎猜。
作用: 减少误解,提高一次成功率。
2、控制输出格式(JSON、表格、列表、代码)

不加提示词:AI喜欢自由发挥,段落乱、格式乱。

加提示词:

-必须输出JSON

-必须分3点

-必须用表格

-只给代码,不解释
作用: 输出结果能直接被程序使用,不用人工整理。
3、禁止AI胡说八道(减少幻觉)

不加提示词:不知道也编,错了也敢说。

加提示词:

-不知道就说不知道

-只根据资料回答

-禁止编造数据
作用: 大幅降低幻觉,提升可靠性。
4、统一风格、语气、专业度

你可以让AI:

-像客服

-像律师

-像老师

-像程序员

-正式/口语/简洁/幽默
作用: 输出风格高度可控,适合业务场景。
5、让复杂任务一步步做对(推理变强)

比如数学、逻辑、代码、分析。

提示词加上:

-先思考

-再分步

-最后给答案

AI准确率会明显提升。

作用:让AI更聪明,而不是凭感觉回答。
6、让RAG系统真正可用(你现在正在做的)

在知识库检索里,提示词工程决定:

-要不要引用资料

-能不能拒绝回答

-会不会泄露无关信息

-回答是否专业合规

作用: RAG好不好用,80%看提示词。

提示词示例

以招聘为例,我有一份简历内容,也知道职位要求。

目的:优化简历内容。

1、简历内容

5年经验后端开发,负责订单系统,修过bug,参与双11。

2、职位要求

资深架构师,要求高并发、JVM调优、分布式事务经验。

项目准备:

1、准备好openAi的地址和token。

主流的都支持,例如千问api,这里我用的是魔搭社区的token,需要绑定阿里云账号。

2、环境变量配置MODELSCOPE_API_KEY,值为实际token值,并重启pycharm(否则环境变量无效)。

代码:

python 复制代码
import os
import json
from openai import OpenAI

# ================= 配置区域 =================
# 1. 填入你的魔搭 Access Token
API_KEY = os.getenv("MODELSCOPE_API_KEY", "YOUR_MODELSCOPE_TOKEN_HERE")
print(f"🔍 代码读取到的API_KEY:{API_KEY}")

# 2. 魔搭推理 API 地址
BASE_URL = "https://api-inference.modelscope.cn/v1"

# 3. 可用的完整模型 ID 列表 (必须是 组织/模型名 格式)
# 优先级: Qwen2.5-72B (最强) -> Qwen2.5-32B (较快) -> DeepSeek-V3 (备选)
AVAILABLE_MODELS = [
    "Qwen/Qwen3.5-35B-A3B"

]


# ===========================================

def get_client():
    if API_KEY == "YOUR_MODELSCOPE_TOKEN_HERE":
        print("❌ 错误:请先填入有效的 MODELSCOPE_API_KEY")
        return None
    return OpenAI(api_key=API_KEY, base_url=BASE_URL)


def build_prompt(resume, jd):
    system_role = "你是一位资深简历优化专家。请根据用户提供的简历和职位描述,输出优化的工作经历和建议。"

    prompt_content = f"""
    # 任务
    分析以下简历与职位的匹配度,并重写工作经历。

    # 原始简历
    {resume}

    # 目标职位 (JD)
    {jd}

    # 要求
    1. 使用 STAR 法则重写经历,量化成果。
    2. 指出缺失的关键技能。
    3. **严格只输出一个 JSON 对象**,不要包含任何解释性文字或 Markdown 标记。

    # JSON 格式
    {{
        "score": 0-100,
        "analysis": "简短分析",
        "missing_skills": ["技能1", "技能2"],
        "optimized_text": "重写后的经历段落",
        "tips": ["面试建议1"]
    }}
    """
    return [{"role": "user", "content": prompt_content}]


def main():
    client = get_client()
    if not client:
        return

    # 测试数据
    resume = "5年经验后端开发,负责订单系统,修过bug,参与双11。"
    jd = "资深架构师,要求高并发、JVM调优、分布式事务经验。"

    messages = build_prompt(resume, jd)

    success = False

    for model_id in AVAILABLE_MODELS:
        print(f"🚀 正在尝试调用: {model_id} ...")
        try:
            response = client.chat.completions.create(
                model=model_id,
                messages=messages,
                temperature=0.7,
                timeout=60  # 大模型可能需要更长时间
            )

            content = response.choices[0].message.content
            print(f"✅ 调用成功!模型: {model_id}")

            # 清理可能的 Markdown
            if content.startswith("```"):
                content = content.split("```")[1]
                if content.startswith("json"):
                    content = content[4:]
                content = content.strip().rstrip("```").strip()

            result = json.loads(content)

            print("\n" + "=" * 30)
            print("📊 优化结果")
            print("=" * 30)
            print(f"评分: {result.get('score')}")
            print(f"分析: {result.get('analysis')}")
            print(f"缺失技能: {result.get('missing_skills')}")
            print(f"优化后:\n{result.get('optimized_text')}")
            print("=" * 30)

            success = True
            break

        except Exception as e:
            err_str = str(e)
            print(f"⚠️ 失败: {err_str}")

            # 关键判断逻辑
            if "Invalid model id" in err_str:
                print("   -> 该模型ID在当前账户下不可用或未部署。")
            elif "no provider supported" in err_str:
                print("   -> 该模型暂无可用推理实例(可能正在维护或需付费)。")
            elif "quota" in err_str.lower() or "balance" in err_str.lower():
                print("   -> 额度不足,请去魔搭社区领取免费额度。")
            elif "bind" in err_str.lower():
                print("   -> 仍未绑定阿里云账号!请去个人中心绑定。")

            # 如果是第一个模型失败,继续尝试下一个;如果是网络错误等,也可以继续
            continue

    if not success:
        print("\n❌ 所有模型尝试失败。")
        print("💡 建议操作:")
        print("1. 访问 https://modelscope.cn/models 搜索 'Qwen2.5-72B-Instruct'")
        print("2. 点击模型页面上的 '体验' 或 'API 调用' 按钮,确认该模型对你当前账号可用。")
        print("3. 复制页面上显示的准确 'Model ID' 替换代码中的列表。")


if __name__ == "__main__":
    main()

输出结果:

复制代码
🚀 正在尝试调用: Qwen/Qwen3.5-35B-A3B ...
✅ 调用成功!模型: Qwen/Qwen3.5-35B-A3B

==============================
📊 优化结果
==============================
评分: 45
分析: 原简历描述过于浅显,仅体现基础维护工作,缺乏架构设计、性能优化及复杂场景解决方案的细节,与资深架构师岗位的核心要求严重不匹配。
缺失技能: ['JVM 深度调优', '分布式事务一致性设计', '高并发架构演进']
优化后:
负责核心订单系统架构升级,应对双 11 高并发挑战(S)。针对系统瓶颈进行 JVM 堆内存分析与 GC 调优,消除 OOM 风险(A);设计基于 Saga 模式的分布式事务方案解决数据一致性问题(A);通过分库分表与多级缓存策略提升吞吐能力(A)。最终实现 QPS 从 5000 提升至 50000,接口响应时间降低 60%,大促期间零故障(R)。
==============================

优化后的内容很明显比原始简历丰富了许多,成功了。

相关推荐
hanlin032 小时前
刷题笔记:力扣第6题-Z字形变换
笔记·算法·leetcode
一个人旅程~3 小时前
虚数与量子迷踪
经验分享·笔记·微信·电脑·量子计算
智者知已应修善业11 小时前
【proteus中lm339电压滞回比较器达到三角波转换成方波】2023-4-13
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
551只玄猫11 小时前
新编大学德语1第三版笔记 第5课Essen und Trinken
笔记·学习笔记·德语·外语·德语a1·自学德语·新编大学德语
不只会拍照的程序猿13 小时前
《嵌入式AI筑基笔记02:Python数据类型01,从C的“硬核”到Python的“包容”》
人工智能·笔记·python
中屹指纹浏览器16 小时前
2026指纹浏览器性能瓶颈分析与优化技巧
经验分享·笔记
雷工笔记18 小时前
随笔|走!跳楼去!
笔记
就叫飞六吧18 小时前
国产数据库gbase8s安装-网盘
笔记
网络工程小王18 小时前
【大数据技术详解】——Kibana(学习笔记)
大数据·笔记·学习