如何修改Python实现的OpenAI API,仅响应广告生成与问候请求?
如何限制OpenAI API仅处理广告生成和问候类请求?
要实现仅处理指定类型请求的功能,你需要在现有代码中添加请求分类判断和分支处理逻辑,具体实现如下:
核心思路
- 识别请求类型:通过关键词匹配区分「问候类」「广告生成类」和「无关请求」
- 分支处理:
- 问候类:调用OpenAI生成友好回复
- 广告生成类:构造对应prompt并调用API生成广告文案
- 无关请求:直接返回固定提示语「I'm not suitable for tasks like this」
完整更新代码
import os import openai # 初始化OpenAI API密钥 openai.api_key = os.getenv("OPENAI_API_KEY") def process_user_request(user_input): # 定义关键词集合,用于快速判断请求类型 greeting_keywords = {"你好", "hi", "hello", "早上好", "下午好", "晚上好"} ad_generation_keywords = {"生成广告", "写广告", "广告文案", "产品广告"} # 判断是否为问候类请求 if any(keyword in user_input.lower() for keyword in greeting_keywords): prompt = f"请用友好的语气回复用户的问候:{user_input}" response = openai.Completion.create( model="text-davinci-003", prompt=prompt, temperature=0.7, max_tokens=50 ) return response.choices[0].text.strip() # 判断是否为广告生成类请求 elif any(keyword in user_input.lower() for keyword in ad_generation_keywords): # 提取用户输入中的产品描述(可根据实际需求调整提取逻辑) product_desc = user_input.split("为")[-1].split("生成")[0].strip() prompt = f"Write a creative ad for the following product to run on Facebook aimed at parents:\n\nProduct: {product_desc}" response = openai.Completion.create( model="text-davinci-003", prompt=prompt, temperature=0.5, max_tokens=100, top_p=1.0, frequency_penalty=0.0, presence_penalty=0.0 ) return response.choices[0].text.strip() # 处理无关请求 else: return "I'm not suitable for tasks like this" # 示例交互逻辑 if __name__ == "__main__": user_request = input("请输入你的请求:") result = process_user_request(user_request) print(result)
代码说明
- 请求分类:采用关键词匹配实现快速分类,若需要更精准的语义识别,可替换为OpenAI分类API或微调模型
- 动态Prompt:针对不同请求类型生成对应prompt,保证API输出符合需求
- 逻辑封装:通过函数封装处理逻辑,便于后续集成到对话系统或其他业务场景
内容的提问来源于stack exchange,提问作者Zeyad Tarek
相关产品推荐
相关产品推荐

