【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~(三)

简介: 【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~(三)

4.4 写ChatGPT提示时应避免的常见错误

写有效的 ChatGPT Prompt 需要仔细考虑并注意细节。然而,很容易犯错误,这可能会妨碍你的提示的有效性和对话的整体质量。以下是制作ChatGPT提示时要避免的几个常见错误:

  1. 在提示中加入过多的信息 —— 为 ChatGPT 提供足够的信息以了解对话的背景和目的是很重要的,但是过多的信息会让人不知所措和困惑。一定要保持你的提示简洁和集中,避免包括不必要的细节或指示。
  2. 使用行话或模棱两可的语言 —— 使用清晰易懂的语言很重要,尤其是在与 ChatGPT 这样的机器学习模型交流时。避免使用行话或可能对 ChatGPT 不熟悉或有歧义的语言。
  3. 过于模糊或开放式 —— 尽管开放式问题对于鼓励更详细的回答很有帮助,但过于模糊或开放式的提示会让人困惑,并且让 ChatGPT 难以理解。要确保提供足够的背景和方向,以有意义的方式引导对话。
  4. 忽略了必要的指示或约束 —— 为 ChatGPT 提供任何必要的指示或约束是很重要的,这样才能使对话有效。例如,如果你想让ChatGPT扮演一个特定电影或书籍中的人物,你应该在提示中说明。

在制作 ChatGPT 提示时,重要的是要避免包含过多的信息或使用过于开放的问题,因为这些会让 ChatGPT 感到困惑和难以理解。以下是避免这些陷阱的一些策略:

  • 使用具体的、有针对性的问题,而不是开放式的问题 —— 不要问一个广泛的、开放式的问题,如 "你对这个话题有什么看法?",试着问一个更具体的问题,集中在话题的某一方面。例如,"这种方法的主要好处是什么?"或 "你认为这种方法有什么挑战?"
  • 简明扼要,切中要害 —— 避免在你的提示中包括不必要的细节或指示。坚持基本信息,避免漫无边际或偏离主要话题。
  • 使用清晰、简明的语言 —— 仔细选择你的词语,避免使用专业术语或模棱两可的语言。一定要使用容易让 ChatGPT 理解的语言。

遵循这些提示,你可以帮助确保您的 ChatGPT 提示清晰、简明、有效,并使对话顺利、自然。

5、来试试?

image.png
古语云:“纸上得来终觉浅,绝知此事要躬行”,上面花了几千字说得神乎其技,真的有用吗?于是乎,Let me have a try! 我用上面的技巧随便编写了一个简单的 chatGPT Prompt

我希望你充当一个资深的前端开发者,教我用TypeScript写一个基于axios的接口请求方法,这个方法必须要包含请求和相应拦截。

I want you to be an experienced front-end developer and teach me how to write an Axios-based interface request method in TypeScript, which must include request intercept and response intercept.

image.png
这是完整的答案,我将其翻译成了中文,以便阅读:

当然,这里有一个使用请求和响应拦截器在 TypeScript 中编写基于 Axios 的接口请求方法的示例:

import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
interface ApiResponse<T> {
  success: boolean;
  data: T;
  message: string;
}
class ApiService {
  private axiosInstance: AxiosInstance;
  constructor(baseURL: string, headers: Record<string, string>) {
    this.axiosInstance = axios.create({
      baseURL,
      headers,
    });
    // Add a request interceptor
    this.axiosInstance.interceptors.request.use(
      (config: AxiosRequestConfig) => {
        // Do something before request is sent
        console.log(`Request sent to ${config.url}`);
        return config;
      },
      (error) => {
        // Do something with request error
        return Promise.reject(error);
      }
    );
    // Add a response interceptor
    this.axiosInstance.interceptors.response.use(
      (response: AxiosResponse<ApiResponse<any>>) => {
        // Do something with response data
        console.log(`Response received from ${response.config.url}`);
        if (!response.data.success) {
          throw new Error(response.data.message);
        }
        return response.data.data;
      },
      (error) => {
        // Do something with response error
        console.error(`Error occurred while receiving response: ${error.message}`);
        return Promise.reject(error);
      }
    );
  }
  public async get<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.get<ApiResponse<T>>(url, config);
    return response;
  }
  public async post<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.post<ApiResponse<T>>(url, data, config);
    return response;
  }
  public async put<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.put<ApiResponse<T>>(url, data, config);
    return response;
  }
  public async delete<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
    const response = await this.axiosInstance.delete<ApiResponse<T>>(url, config);
    return response;
  }
}
export default ApiService;

让我们逐步分析代码:

  1. 首先,我们导入 Axios 及其类型,以及将用作 API 请求的响应类型的 ApiResponse 接口。
  2. 接下来,我们定义一个名为“ApiService”的类,它将负责向我们的 API 发出请求。构造函数采用两个参数:API 的“baseURL”和应随每个请求发送的“headers”
  3. 在构造函数中,我们使用传入的 baseURLheaders 创建了一个 Axios 实例。我们还定义了两个拦截器:一个用于请求,一个用于响应。
  4. 请求拦截器使用 axiosInstance.interceptors.request.use 定义。它需要一个函数,该函数将在发送每个请求之前调用,并且可以修改请求配置对象。在此示例中,我们只是将请求的 URL 记录到控制台。
  5. 响应拦截器使用 axiosInstance.interceptors.response.use 定义。它有两个功能:一个用于成功响应,一个用于错误。成功的响应函数以响应对象为参数,必要时可以修改响应数据或抛出错误。在此示例中,我们将响应的 URL 记录到控制台,并使用 ApiResponse 接口的 success 属性检查响应是否成功。如果不成功,我们会使用 ApiResponsemessage 属性抛出错误。如果请求失败,将调用错误函数,我们只需将错误记录到控制台即可。
  6. 接下来,我们定义四种发出请求的方法:getpostputdelete。每个方法都接受一个 URL、可选数据和可选配置对象,并返回一个包含响应数据的 Promise。 Promise 使用“T”类型参数进行类型化,该参数用作“ApiResponse”的“数据”属性的类型。
  7. 最后,我们导出 ApiService 类,以便它可以在我们应用程序的其他部分使用。

要使用 ApiService,您首先要使用要使用的 baseURLheaders 创建一个实例,如下所示:

const apiService = new ApiService('https://example.com/api', {
  Authorization: 'Bearer YOUR_TOKEN_HERE',
});

然后,您可以在 apiService 实例上调用 getpostputdelete 方法来向您的 API 发出请求:

// GET request example
const data = await apiService.get<User[]>('/users');
console.log(data);
// POST request example
const newUser = { name: 'John Doe', email: 'john.doe@example.com' };
const createdUser = await apiService.post<User>('/users', newUser);
console.log(createdUser);
// PUT request example
const updatedUser = { id: 1, name: 'Jane Doe', email: 'jane.doe@example.com' };
const savedUser = await apiService.put<User>('/users/1', updatedUser);
console.log(savedUser);
// DELETE request example
const deletedUser = await apiService.delete<User>('/users/1');
console.log(deletedUser);

我希望这个例子能帮助你理解如何使用请求和响应拦截器在 TypeScript 中编写基于 Axios 的接口请求方法!

NB!image.png

相关文章
|
1月前
|
数据采集 自然语言处理 数据挖掘
利用ChatGPT进行数据分析——如何提出一个好的prompt
利用ChatGPT进行数据分析——如何提出一个好的prompt
|
1月前
|
自然语言处理
从原理上总结chatGPT的Prompt的方法
从原理上总结chatGPT的Prompt的方法
32 0
ChatGPT高效提问—prompt实践(智能翻译)
ChatGPT高效提问—prompt实践(智能翻译)
|
1月前
|
人工智能
ChatGPT高效提问—prompt实践(文案助手)
ChatGPT高效提问—prompt实践(文案助手)
|
1月前
|
机器学习/深度学习 算法 搜索推荐
ChatGPT高效提问—prompt实践(智能辅导-心理咨询-职业规划)
ChatGPT高效提问—prompt实践(智能辅导-心理咨询-职业规划)
|
1月前
|
安全 搜索推荐
ChatGPT高效提问—prompt实践(健康助手)
ChatGPT高效提问—prompt实践(健康助手)
ChatGPT高效提问—prompt实践(白领助手)
ChatGPT高效提问—prompt实践(白领助手)
|
1月前
|
搜索推荐
ChatGPT高效提问—prompt实践(教师助手)
ChatGPT高效提问—prompt实践(教师助手)
|
1月前
|
搜索推荐
ChatGPT高效提问—prompt实践(法律助手)
ChatGPT高效提问—prompt实践(法律助手)
|
1月前
|
自然语言处理 搜索推荐 程序员
ChatGPT高效提问—prompt实践(智能开发)
ChatGPT高效提问—prompt实践(智能开发)

热门文章

最新文章