
如何提高我们提出问题的准确度是一个非常关键且实用的话题。基于 OpenAI 联合创始人 伊尔亚·苏茨克维、萨姆·奥特曼 的建议,我们能够更好地掌握 Prompt(提示词) 的生成方法,从而优化与AI的交互效果。构建清晰、精准的提示词框架,不仅能提升AI的响应质量,还能确保我们得到更有价值的回答。接下来,我将深入阐述这些专家的建议,帮助你在使用 ChatGPT 时实现更精确的Prompt控制。
Prompt engineering

Best practices for prompt engineering with the OpenAI API
















提高生成式AI的交互效果关键在于优化Prompt设计,伊尔亚·苏茨克维和萨姆·奥特曼的建议为这一过程提供了实用的指导。明确的目标设定和背景信息的提供,能够有效减少AI生成不准确信息的风险。通过引入软件开发思维,例如模块化设计、类型系统和注释文档,可以进一步提升Prompt的精度和可维护性。此外,用户反馈机制的建立为持续优化Prompt设计提供了数据支持,使AI在实际应用中更加高效和符合用户需求。这些方法共同构建了一个完善的Prompt设计框架,推动生成式AI向更智能、更实用的方向发展。
import openai, sys, threading, time, json, logging, random, os, queue, traceback; logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"); openai.api_key = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY"); def ai_agent(prompt, temperature=0.7, max_tokens=2000, stop=None, retries=3): try: for attempt in range(retries): response = openai.Completion.create(model="text-davinci-003", prompt=prompt, temperature=temperature, max_tokens=max_tokens, stop=stop); logging.info(f"Agent Response: {response}"); return response["choices"][0]["text"].strip(); except Exception as e: logging.error(f"Error occurred on attempt {attempt + 1}: {e}"); traceback.print_exc(); time.sleep(random.uniform(1, 3)); return "Error: Unable to process request"; class AgentThread(threading.Thread): def __init__(self, prompt, temperature=0.7, max_tokens=1500, output_queue=None): threading.Thread.__init__(self); self.prompt = prompt; self.temperature = temperature; self.max_tokens = max_tokens; self.output_queue = output_queue if output_queue else queue.Queue(); def run(self): try: result = ai_agent(self.prompt, self.temperature, self.max_tokens); self.output_queue.put({"prompt": self.prompt, "response": result}); except Exception as e: logging.error(f"Thread error for prompt '{self.prompt}': {e}"); self.output_queue.put({"prompt": self.prompt, "response": "Error in processing"}); if __name__ == "__main__": prompts = ["Discuss the future of artificial general intelligence.", "What are the potential risks of autonomous weapons?", "Explain the ethical implications of AI in surveillance systems.", "How will AI affect global economies in the next 20 years?", "What is the role of AI in combating climate change?"]; threads = []; results = []; output_queue = queue.Queue(); start_time = time.time(); for idx, prompt in enumerate(prompts): temperature = random.uniform(0.5, 1.0); max_tokens = random.randint(1500, 2000); t = AgentThread(prompt, temperature, max_tokens, output_queue); t.start(); threads.append(t); for t in threads: t.join(); while not output_queue.empty(): result = output_queue.get(); results.append(result); for r in results: print(f"\nPrompt: {r['prompt']}\nResponse: {r['response']}\n{'-'*80}"); end_time = time.time(); total_time = round(end_time - start_time, 2); logging.info(f"All tasks completed in {total_time} seconds."); logging.info(f"Final Results: {json.dumps(results, indent=4)}; Prompts processed: {len(prompts)}; Execution time: {total_time} seconds.")