import requests import json # 解析JSON def extract_content(data_string): try: data = json.loads(data_string) # 提取content字段 content = data["choices"][0]["message"].get("content", "") print(content) return content except json.JSONDecodeError: print("Invalid JSON") return None def message_task_json(prompt, content): # 设置Authorization和URL authorization = "46a5674a-e978-491b-a810-5d54605f2c36" # 请替换为真实的Authorization token url = 'http://127.0.0.1:8080/v1/chat/completions' data = { # "stream": True, "model": "windsurf/gpt4o", "messages": [ { "role": "system", "content": f"{prompt}" }, { "role": "user", "content": f"{content}" } ] } # 设置请求头 headers = { "Content-Type": "application/json; charset=utf-8", "Authorization": authorization } # 发送POST请求 response = requests.post(url, headers=headers, data=json.dumps(data), ) response.encoding = 'utf-8' # 输出响应内容 print(response.status_code) print(response.text) return json.loads(extract_content(response.text)) def game_question_json(question): prompt = """请根据以下要求,随机生成一个问题,确保每次提问都涉及不同的领域,并且每个问题都互不相关: 本次的问题请充满乐趣,请确保问题足够简洁且容易理解,适合百科类知识问答。 每个问题都应当独立,问题之间不应具有连贯性或延续性。 避免重复提问或相似问题,确保每个问题都是全新的。 ,问题需要有一定的难度,回答完毕之后用户能有所收获,并且对问题进行打分,同时根据问题难度告知答对之后给多少分(1-10)请只返回JSON格式的内容: 格式要求如下(请不要加上markdown 的符号):{\"question\": \"哪个国家最早将玫瑰与爱情联系起来?\", \"score\":\"1\", \"answer\": \"波斯\",\"description\":\"描述问题答案的原因\"} """ return message_task_json(prompt, question) def game_answer_json(answar): prompt = "你是一个益智百科问答大师,可以根据用户回答的答案进行判断,并且对问题(question)答案(answer)进行打分,打分时请参考最高分要求(top_score),告知用户能获得多少分,请在description中描述打分理由,请只返回JSON格式的内容:格式要求如下(请不要加上markdown 的符号):{\"question\": \"哪个国家最早将玫瑰与爱情联系起来?\", \"score\":\"1\", \"answer\": \"波斯\",\"description\":\"描述问题答案的原因\"}" return message_task_json(prompt, answar) if __name__ == '__main__': print(game_question_json('请从不同的学科领域(历史学:古代历史、近现代史、战争与政治、文化遗产与考古学;生物学:进化论、动植物学、基因与遗传学、生态学;化学:有机化学、无机化学、生物化学、环境化学;地理学:人文地理、自然地理、地质学、气候变化;文学:古典文学、现代文学、小说与戏剧、诗歌与散文;艺术:美术、音乐、戏剧与舞蹈、电影与媒体;哲学:西方哲学、东方哲学、道德与伦理学、逻辑与认识论;社会学:人类学、心理学、政治学、经济学;计算机科学:编程语言、人工智能、数据科学、网络与安全;工程学:机械工程、电气工程、化学工程、土木工程;医学:解剖学、生理学、临床医学、药学与护理;体育:球类运动、奥林匹克运动、运动心理学、健身与营养;宗教与神话:世界宗教、神话与民间故事、宗教哲学;语言学:语法与词汇、语言习得、方言与语言变异;经济学:宏观经济学、微观经济学、国际贸易、金融与投资;法律:民法与刑法、国际法、知识产权法、环境法)生成一个全新问题。')) # print(game_answer_json('question:哪个国家的节日与裸体狂欢有关?,answer:古罗马,top_score:3'))