将OpenAI API接入Zapier时出现语法错误问题排查
Zapier邮件摘要转WhatsApp代码语法错误修复
开发Zap实现邮件摘要通过WhatsApp发送时,两段代码分别触发语法错误(第一段第8行、第二段第9行),核心问题及修复方案如下:
错误核心原因
两段代码均使用了Jupyter Notebook专属的!pip install openai命令,这并非标准Python语法,在Zapier的Code by Zapier环境中会直接触发语法错误。此外Zapier环境已预安装常用第三方库,无需手动执行安装命令。
修正后的第一段代码
import openai openai.api_key = '你的API密钥' def summarize_text(text): try: response = openai.Completion.create( engine="text-davinci-002", prompt=f"Summarize this email content: {text}", max_tokens=150 ) return response.choices[0].text.strip() except Exception as e: return f"Error: {e}" if 'input_data' in locals() and 'email_content' in input_data: email_content = input_data['email_content'] summarized_text = summarize_text(email_content) return {'summarized_text': summarized_text} else: return {'error': 'No email content provided'}
修改点:
- 移除非法的
!pip install openai命令 - 优化prompt表述,明确要求模型对邮件内容生成摘要(原prompt直接传入原始文本易导致模型理解偏差)
修正后的第二段代码
import openai openai.api_key = "你的API密钥" # 从Zapier输入中获取邮件内容 if 'input_data' in locals() and 'email_content' in input_data: email_content = input_data['email_content'] prompt = f"Summarize the email content: {email_content}" response = openai.Completion.create( engine="davinci", prompt=prompt, max_tokens=100, n=1, stop=None ) output_text = response.choices[0].text.strip() return {"output_text": output_text} else: return {"error": "No email content provided"}
修改点:
- 移除非法的
!pip install openai命令 - 添加Zapier输入数据的判断与获取逻辑(原代码未接入实际邮件内容,无法生成有效摘要)
- 对返回的摘要文本做去空格处理,优化输出格式
- 补充异常场景的返回逻辑,避免无输入时出错
内容的提问来源于stack exchange,提问作者Shr Sup
相关产品推荐
相关产品推荐

