GPT-Prompt 加工厂

2024-03-28  本文已影响0人  一个记事本

一、加工厂使用方式

Profile:

背景:

约束:

目标:

技能:

工作流程:

原始Prompt:

"Hi, 我是一名前端开发工程师,我需要编写一个 vue3的框架代码,在组件初始化时调用'service/list/data'接口,入参登录id,返回保单列表。"


二、前端 Prompt加工案例

prompt调优.png

三、进阶结构化Prompt

任务:

结果

角色:前端开发工程师  
技术栈:Vue 3  
任务:编写基于Vue3的MyComponent组件  
  
组件功能:  
- 在MyComponent组件的mounted生命周期钩子中,使用axios库调用接口  
- 接口路径:'service/list/data'  
- 接口入参:登录id,从localStorage中获取  
- 接口返回:保单列表  
- 将保单列表渲染到页面上  
- 使用v-if指令控制加载状态的显示  
  
错误处理:  
- 使用try-catch语句或axios拦截器处理可能出现的错误  
- 显示友好的错误提示给用户

<template>  
  <div>  
    <div v-if="loading">加载中...</div>  
    <div v-else-if="error">发生错误:{{ error }}</div>  
    <div v-else>  
      <!-- 渲染保单列表 -->  
      <ul>  
        <li v-for="policy in policyList" :key="policy.id">{{ policy.name }}</li>  
      </ul>  
    </div>  
  </div>  
</template>  
  
<script>  
import { ref, onMounted } from 'vue';  
import axios from 'axios';  
  
export default {  
  name: 'MyComponent',  
  setup() {  
    const loading = ref(true);  
    const error = ref('');  
    const policyList = ref([]);  
  
    onMounted(async () => {  
      try {  
        // 从localStorage获取登录id  
        const loginId = localStorage.getItem('loginId');  
        if (!loginId) {  
          throw new Error('登录id未找到');  
        }  
  
        // 调用接口获取保单列表  
        const response = await axios.get('service/list/data', {  
          params: {  
            id: loginId  
          }  
        });  
  
        // 处理响应数据  
        if (response.data && response.data.success) {  
          policyList.value = response.data.policies;  
        } else {  
          throw new Error('获取保单列表失败');  
        }  
      } catch (err) {  
        // 处理错误  
        error.value = err.message;  
      } finally {  
        // 无论成功还是失败,都结束加载状态  
        loading.value = false;  
      }  
    });  
  
    return {  
      loading,  
      error,  
      policyList  
    };  
  }  
};  
</script>  
  
<style scoped>  
/* 组件样式 */  
</style>

四、Java Prompt 案例

"Hi, 我是一名Java开发工程师,我需要编写一个发送邮件的功能,
要示每天晚上12点发送邮件给用户,邮件内容是今天的天气情况,并且需要使用SMTP协议发送邮件。"
Hi, 我是一名Java开发工程师,正在编写一个发送邮件的功能。请帮我构建一个Java方法,实现以下功能:
一、功能描述
每天晚上12点(UTC时间)自动发送邮件给用户。
邮件内容包含当天的天气情况。

二、天气数据获取
天气数据应来源于OpenWeatherMap API。
请使用以下API密钥:[请在此处插入API密钥]。
调用OpenWeatherMap API获取天气数据的示例请求为:[请在此处提供示例请求]。

三、时间处理
确保时间处理的准确性,考虑时区转换和时间同步问题。
使用Java中的定时任务(如Timer或ScheduledExecutorService)来实现每天定时发送邮件。

四、SMTP配置
使用SMTP协议发送邮件。
SMTP服务器地址:[请在此处插入SMTP服务器地址]。
SMTP服务器端口:[请在此处插入SMTP服务器端口]。
SMTP认证方式:用户名和密码。
用户名:[请在此处插入用户名]。
密码:[请在此处插入密码]。

五、失败处理
实现邮件发送的失败处理机制。
在发送邮件失败时,进行重试或记录异常日志。

六、方法定义
方法名:sendDailyWeatherEmail。
该方法应包含所有必要的逻辑,以自动获取天气数据、设置邮件内容、配置SMTP并发送邮件。
方法应在每天晚上12点(UTC时间)被调用。
import javax.mail.*;  
import javax.mail.internet.*;  
import java.util.*;  
import java.util.concurrent.Executors;  
import java.util.concurrent.ScheduledExecutorService;  
import java.util.concurrent.TimeUnit;  
import org.json.JSONObject;  
import java.net.HttpURLConnection;  
import java.net.URL;  
import java.io.BufferedReader;  
import java.io.InputStreamReader;  
  
public class EmailService {  
  
    private static final String API_KEY = "YOUR_OPENWEATHERMAP_API_KEY";  
    private static final String SMTP_HOST = "YOUR_SMTP_HOST";  
    private static final int SMTP_PORT = YOUR_SMTP_PORT;  
    private static final String SMTP_USERNAME = "YOUR_SMTP_USERNAME";  
    private static final String SMTP_PASSWORD = "YOUR_SMTP_PASSWORD";  
    private static final String FROM_EMAIL = "your-email@example.com";  
    private static final String TO_EMAIL = "recipient-email@example.com";  
  
    public static void main(String[] args) {  
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);  
        scheduler.scheduleAtFixedRate(EmailService::sendDailyWeatherEmail, 0, 24, TimeUnit.HOURS);  
    }  
  
    public static void sendDailyWeatherEmail() {  
        try {  
            // 获取天气数据  
            String weatherData = getWeatherData();  
  
            // 设置邮件内容  
            String subject = "Today's Weather Report";  
            String body = "Here's the weather for today: " + weatherData;  
  
            // 配置邮件发送  
            Properties props = new Properties();  
            props.put("mail.smtp.auth", "true");  
            props.put("mail.smtp.starttls.enable", "true");  
            props.put("mail.smtp.host", SMTP_HOST);  
            props.put("mail.smtp.port", SMTP_PORT);  
  
            Session session = Session.getInstance(props,  
                new javax.mail.Authenticator() {  
                    protected PasswordAuthentication getPasswordAuthentication() {  
                        return new PasswordAuthentication(SMTP_USERNAME, SMTP_PASSWORD);  
                    }  
                });  
  
            Message message = new MimeMessage(session);  
            message.setFrom(new InternetAddress(FROM_EMAIL));  
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(TO_EMAIL));  
            message.setSubject(subject);  
            message.setText(body);  
  
            // 发送邮件  
            Transport.send(message);  
            System.out.println("Email sent successfully.");  
  
        } catch (MessagingException e) {  
            e.printStackTrace();  
            // 在这里添加失败处理逻辑,如重试或记录异常日志  
        }  
    }  
  
    private static String getWeatherData() {  
        String weatherData = "";  
        try {  
            String apiUrl = "http://api.openweathermap.org/data/2.5/weather?q=YourCityName&appid=" + API_KEY;  
            URL url = new URL(apiUrl);  
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
            connection.setRequestMethod("GET");  
  
            try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {  
                String inputLine;  
                StringBuilder content = new StringBuilder();  
                while ((inputLine = in.readLine()) != null) {  
                    content.append(inputLine);  
                }  
                JSONObject json = new JSONObject(content.toString());  
                // 解析JSON获取天气数据,例如温度、湿度、风速等  
                // 这里只是简单示例,实际应根据API返回的数据结构来解析  
                weatherData = "Temperature: " + json.getJSONObject("main").getString("temp") + "°C";  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
            // 在这里添加异常处理逻辑  
        }  
        return weatherData;  
    }  
}

/***
*说明:
*sendDailyWeatherEmail 方法是核心,它负责获取天气数据、配置邮件内容,并通过SMTP服务器发送邮件。
*getWeatherData 方法使用OpenWeatherMap API获取天气数据,并返回一个简单的字符串描述。这里需要根据实际返回的JSON数据结构来解析并提取所需信息。
*定时任务使用 ScheduledExecutorService 来实现,每天定时调用 sendDailyWeatherEmail 方法。
*邮件发送使用JavaMail API,并配置SMTP服务器、端口、用户名和密码等信息。
*异常处理在 getWeatherData 和 sendDailyWeatherEmail 方法中都有体现,你需要根据实际情况进一步完善异常处理逻辑,比如添加重试机制或记录日志。
*/
上一篇下一篇

猜你喜欢

热点阅读