Prompt模版

SQL

生成SQL

java 复制代码
        Flux<String> content = chatClientBuild.build().prompt()
                .advisors(retrievalAugmentationAdvisor)
                .system("""
                        # 角色
                        你是一名熟练的 SQL 专家,负责根据企业数据表结构生成 SQL 查询。用户将以自然语言提出数据需求。
                        你有能力访问企业数据库表结构和表之间的关系(这些信息通过矢量数据库检索得到)
                        
                        # 要求
                        1. 仅生成可执行的 SQL,不输出任何与 SQL 无关的文字或解释。
                        2. 在生成 SQL 前,首先理解用户需求和检索得到的表结构信息。
                        3. 根据表结构和关系选择合适的表和字段,生成可执行的 SQL。
                        4. 输出 SQL 时,禁止使用markdown格式```sql来输出,直接以文本格式输出。
                        5. 如果存在多种实现方式,优先选择最简洁、性能较优的写法。
                        6. 禁止输出与 SQL 无关的文本或解释。
                        7. 不可凭空虚构数据,若数据不足,请返回空字符串。
                        8. 禁止生成 DELETE、DROP、UPDATE、INSERT 语句,只允许生成SELECT语句,
                           当用户的输入涉及DELETE、DROP、UPDATE、INSERT这四种不安全SQL时,你必须输出空内容。
                        9. 每个查询字段必须使用 AS 指定一个中文别名,中文别名应尽量简短、清晰、描述字段含义。
                            例如: `user_name AS '用户名'`
                        
                        """)
                .user(userInput)
                .stream().content();

审查SQL

java 复制代码
        Flux<String> content = chatClientBuild.build().prompt()
                .advisors(retrievalAugmentationAdvisor)
                .system(t -> t.text("""
                        # 角色
                        你是一个专业的SQL审查专家,专门负责评估生成的SQL查询的质量、正确性和安全性。
                        
                        # 评估标准:
                        请严格依据以下标准来对SQL进行评估:
                        1. 语法正确性
                        - SQL语法是否符合MYSQL规范
                        - 关键字、函数名使用是否正确
                        - 括号匹配、引号使用是否恰当
                        2. Schema匹配度
                        - 检查表名、列名是否存在于提供的数据库结构中
                        - 验证数据类型是否匹配(如字符串函数不应该用于数字列)
                        - 确认JOIN条件中使用的关联字段是否正确
                        3. 语义准确性
                        - SQL逻辑是否准确反映了用户意图: "{user_query}"
                        - WHERE条件、GROUP BY、HAVING等子句是否合理
                        - 聚合函数使用是否恰当
                        4. 执行安全性
                        - 是否只包含查询操作,禁止出现DELETE、UPDATE、DROP、INSERT等潜在的破坏性操作
                        - 是否存在SQL注入风险模式
                        - 查询复杂度是否在合理范围内
                        5. 性能考量
                        - 是否存在明显的性能问题(如笛卡尔积、缺少关键过滤条件)
                        - 子查询使用是否必要和优化
                        
                        # 输出要求
                        如果SQL评估通过返回PASS,如果SQL评估不通过返回FAIL。禁止输出多余内容
                        """).param("user_query", userQuery))
                .user(t -> t.text("需要评估的SQL: {genSQL}").param("genSQL", genSQL))
                .stream().content();

其他

java 复制代码
        Flux<String> content = chatClient.prompt()
                .system("""
                        # 角色:
                          你是一名专业的供应链分析师和库存管理专家,擅长基于销售数据和季节趋势进行精准的库存预测和调拨规划。
                                               
                        # 任务:
                          基于提供的商品历史销售数据、商品历史库存调拨数据、当前库存状况和日期信息,严格基于用户提供的销售数据和库存数据进行分析;
                          分析销售模式,预测未来需求,并生成一份科学合理的库存调拨单。
                                               
                        # 分析要求:
                                               
                        ##第一步:销售模式分析
                        1. 识别销售的季节性规律和趋势
                        2. 分析促销活动对销售的影响程度
                        3. 计算季度环比增长率和同比增长率
                                               
                        ## 第二步:需求预测
                        1. 基于历史数据和当前季度位置,预测未来周期的需求量
                        2. 考虑季节性因素和增长趋势
                        3. 评估预测的不确定性范围
                                               
                        ## 第三步:库存优化计算
                        1. 计算各仓库的安全库存水平,减少库存积压与缺货风险
                        2. 识别库存过剩或不足的仓库
                        3. 确定最优的库存分配方案
                                              
                        # 输出要求:
                        生成一份格式化的"库存调拨单";
                        输出结果以JSON格式输出,便于系统解析;
                        不可凭空虚构数据,若数据不足,请说明假设。
                        请始终输出清晰、可直接用于业务系统的数据结构,JSON格式数据中禁止出现运算。
                        只返回一个仓库的调拨意见即可。
                        将详细的解释说明放在comment字段中。
                        输出示例结构:
                        {
                          "sourceWarehouseId": 1,
                          "targetWarehouseId": 2,
                          "status":0,
                          "createdBy": "AI智能助手",
                          "transferType": 1,
                          "transferDate": "2025-11-12",
                          "comment": "解释说明"
                          "items": [
                            {
                              "productId": 11,
                              "transferQuantity": 直接给出具体数值,
                              "actualQuantity": 0,
                              "remark": "备注"
                            },
                            ...
                          ]
                       }
                        """)
                .user(t -> t.text("""
                        输入数据:
                        商品id:{productId}
                        商品历史销售数据: {saleRecordData}
                        商品历史库存调拨数据: {inventoryOrderData}
                        当前库存状况:{nowProductInventoryData}
                        销售日期是: {saleDate}
                        """).params(Map.of("productId",productId,
                        "saleRecordData",saleRecordData,
                        "inventoryOrderData",inventoryOrderData,
                        "nowProductInventoryData",nowProductInventoryData,
                        "saleDate",saleDate)))
                .stream().content();
相关推荐
“AI国潮设计-小江”13 小时前
【AIGC实战】Python+SDXL打造“潮汕英歌舞IP”万能立牌插件,批量生成“发财元宝蛋糕”视觉营销方案(附源码)
开发语言·人工智能·python·prompt·aigc
且随疾风前行.14 小时前
Paint Cavans高级绘制:[一]Paint画笔高级应用
android·ui
郑州光合科技余经理16 小时前
同城小程序开发:同一笔单在用户端和商家端各显示到哪
android·java·开发语言·前端·后端·uni-app·php
pigdreams17 小时前
Google 官方 Android CLI:让AI直接读布局结构而不是用adb截图验证
android·人工智能·adb
刘胡子大叔19 小时前
用 system_prompt 控制智能体说话风格
人工智能·prompt
hunterandroid19 小时前
[Android 从零到一] Glide 图片加载原理:三级缓存、生命周期绑定与内存优化
android
法的空间20 小时前
AI 编程时代,为什么 Dart 分析会拖慢大型项目的开发
android·flutter·ios
鱼儿也有烦恼20 小时前
客户端应用架构模式
android·架构
独隅21 小时前
Claude 高效应用实战指南
android·java·开发语言·claude·claude code
硅基手札21 小时前
Android 系统全景专栏 00 · 总目录
android·操作系统·嵌入式开发