kkAIGC/SQLBot
0
1import os2import openai3import pandas as pd4import random5 6# 构建leetcode题目文件的路径7leetcode_path = os.path.join("data", "leetcode_questions.xlsx")8 9#读取leetcode题目10leetcode_df = pd.read_excel(leetcode_path)11 12#SQL产生函数13def answer_evaluation(14 user_input,15 all_messages,16 question,17 answer,18 model="gpt-3.5-turbo-16k",19 temperature=0,20 max_tokens=3000,21 ):22 23 system_message = f"""24 根据下面的问题(使用<>符号分隔),结合答案(使用####分割符分隔)判断用户的回答是否正确,并给出改进建议25 问题如下:<{question}>26 答案如下:####{answer}####27 28 请使用中文回复29 """30 31 history_prompt = []32 33 for turn in all_messages:34 user_message, bot_message = turn35 history_prompt += [36 {'role': 'user', 'content':user_message},37 {'role': 'assistant', 'content': bot_message}38 ]39 messages = [40 {'role':'system', 'content': system_message}] \41 + history_prompt + \42 [{'role':'user', 'content': user_input},43 ]44 45 response = openai.ChatCompletion.create(46 model=model,47 messages=messages,48 temperature=temperature,49 max_tokens=max_tokens,50 )51 52 final_response = response.choices[0].message["content"]53 54 all_messages+= [(user_input,final_response)]55 56 return "", all_messages # 返回最终回复和所有消息57 58#根据难度随机选择题目59def question_choice(difficulty = '简单'):60 simple_records = leetcode_df[leetcode_df['难度'] == difficulty]61 random_simple_record = simple_records.sample(n=1, random_state=random.seed())62 63 title = random_simple_record['题目标题'].values[0]64 question_url = random_simple_record['题目地址'].values[0]65 question = random_simple_record['题目'].values[0]66 example = random_simple_record['示例'].values[0]67 answer = random_simple_record['答案'].values[0]68 answer_explain = random_simple_record['可参考解析'].values[0]69 70 title_url = f"""### 本题链接:[{title}]({question_url})"""71 answer_explain = f"""### 答案解析见:[{title}]({answer_explain})"""72 73 return title_url, question, example, answer, answer_explain74 