如何修改OpenAI提示词生成函数适配自定义英文-N1QL查询CSV数据集
解决方案
要利用你的queries.csv数据集构建适配的提示词,核心是通过少样本学习让模型从数据集中的示例掌握英文查询与N1QL语句的对应逻辑。以下是具体修改步骤和完整代码:
1. 读取CSV数据集
先用Python内置的csv模块读取queries.csv中的示例对,将其转化为提示词可直接使用的格式。
2. 重构generate_prompt函数
把CSV中的多组英文查询-N1QL对应示例拼接进提示词模板,最后引导模型针对用户输入生成对应的N1QL语句。
完整修改后的代码
import openai import csv import config # 假设你的API_KEY存储在该配置文件中 def load_csv_examples(csv_path): # 读取CSV中的英文查询与N1QL对应示例 examples = [] with open(csv_path, 'r', encoding='utf-8') as f: reader = csv.reader(f) next(reader) # 跳过CSV表头(若无表头则注释此行) for english_query, n1ql_query in reader: examples.append(f"English Query: {english_query}\nN1QL Query: {n1ql_query}") return "\n\n".join(examples) def generate_prompt(english_query, csv_examples): # 构建提示词:先给出示例,再引导模型生成目标N1QL prompt_template = """Convert the following English natural language queries into N1QL queries following the examples below: {} English Query: {} N1QL Query:""" return prompt_template.format(csv_examples, english_query) def query_openai_api(english_query): openai.api_key = config.OPENAI_API_KEY # 加载CSV中的示例数据 csv_examples = load_csv_examples("queries.csv") response = openai.Completion.create( model="text-davinci-003", prompt=generate_prompt(english_query, csv_examples), temperature=0.1, # 调低温度保证结构化查询的精准性 max_tokens=200, # 根据实际N1QL语句长度调整 stop=["\n"] # 避免模型生成多余内容 ) # 清理并输出结果 n1ql_result = response.choices[0].text.strip() print(n1ql_result) return n1ql_result # 测试调用 query_openai_api("你的英文查询示例")
关键说明
load_csv_examples函数:负责将CSV每行的查询对转化为统一格式的字符串,方便直接拼接进提示词。如果你的CSV没有表头,记得注释掉next(reader)。- 提示词逻辑:先明确任务目标,再给出多组示例让模型学习对应规则,最后输入用户查询并引导输出N1QL。
- 参数优化:
temperature调低到0.1是因为结构化查询需要精准输出,避免模型生成发散内容;max_tokens和stop参数可根据实际场景调整。
内容的提问来源于stack exchange,提问作者Aadhi Verma
相关产品推荐
相关产品推荐

